之前没做过退款操作,因为业务没有涉及到,并且退款比支付流程还要复杂。没有特别要求是不会去搞的。

但小程序平台是已经接好了微信退款操作,这个时候报错就得处理一下了。

[notice]只有退款的时候才需要 API 证书,这也是为什么退款比支付更加复杂且难调试的原因。[/notice]

申请(或更新)微信 API 证书

提示证书已过期,说明之前是已经存在这样的证书配置了,需要到 微信支付后台 重新申请。我的情况是,之前系统里配置的证书属于上一级开发者的,其他参数都更换过了,只有 API 证书(PHP 版本是一个 cert 和一个 key 两个文件)没有动过。

老板微信扫码登录到微信支付后台后,选择账户中心,在左侧的 API 安全菜单下有一 API证书,点击申请(或者更新)即可。之后会下载一个安全组件,主要是生成公钥、私钥证书,按照微信提示的流程走,最后会从微信支付后台自动下载一个证书压缩包。里面有一个 p12 证书(java 等非 PHP 语言使用), 一个 cert 和一个 key 证书。

安装和使用证书

装过 SSL 证书,大概需要配合应用程序读取证书内容,所以一般会和代码放在一起。我这边查看了一下源码,发现是在 小程序管理后台 配置的,直接将 cert 和 key 用文本格式打开,复制粘贴然后保存就好了。应用在保存后,会重新命名并生成 cert 和 key 文件,并且放置在 web 无法访问的目录地址。

附:微信支付退款文档 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_4