golang:1.23,wechatpay-go:2.20
代码如下:
var (
mchID string = "商户平台提供的" // 商户号
mchCertificateSerialNumber string = "商户api证书序列号,后台查看的" // 商户证书序列号
mchAPIv3Key string = "APIV3秘钥,32位字符串" // 商户APIv3密钥
)
path := "./cert/apiclient_key.pem"
// 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
mchPrivateKey, err := utils.LoadPrivateKeyWithPath(path)
if err != nil {
fmt.Println(err)
log.Fatal("load merchant private key error")
}
fmt.Println(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key)
// 使用商户私钥等初始化 client,并使它具有自动定时获取微信支付平台证书的能力
opts := []core.ClientOption{
option.WithWechatPayAutoAuthCipher(mchID, mchCertificateSerialNumber, mchPrivateKey, mchAPIv3Key),
}
fmt.Println(opts)
client, err := core.NewClient(c, opts...)
if err != nil {
log.Fatalf("new wechat pay client err:%s", err)
}
根据 https://github.com/wechatpay-apiv3/wechatpay-go/issues/135 文档进行APIV3秘钥重置,依然不能正常初始化客户端
option.WithWechatPayAutoAuthCipher()返回数据为“证书不存在”
重新生成了证书,更换了商户证书序列号,依然提示“证书不存在”
刚写完,看这里吧,新商户号不再签发平台证书了https://developers.weixin.qq.com/community/pay/article/doc/000ca894a20c983cad52242286b813