golang sdk v3 调用,沿用的示例代码
// 使用 utils 提供的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
mchPrivateKey, err := utils.LoadPrivateKeyWithPath(cfg.ApiKeyPerm)
if err != nil {
log.Print("load merchant private key error")
return nil, errwrap.Wrap(err, "load priviate key")
}
ctx := context.Background()
// 使用商户私钥等初始化 client,并使它具有自动定时获取微信支付平台证书的能力
opts := []core.ClientOption{
option.WithWechatPayAutoAuthCipher(
cfg.MerchantId,
cfg.ApiCertSerialNo, // openssl x509 -noout -serial -in apiclient_cert.pem 获取
mchPrivateKey, // apiclient_key.pem
cfg.ApiV3Key), //
}
cli, err := core.NewClient(ctx, opts...)
if err != nil {
// 此处报错
log.Printf("new wechat pay client err:%s", err)
return nil, errwrap.Wrap(err, "weichat pay new client")
}
尝试了重新申请证书(现在商户平台有2个证书有效)、确认了ApiV3Key没有问题、ApiCertSerialNo也确认与apiclient_cert.pem一致
用https://pay.weixin.qq.com/docs/merchant/sdk-tools/postman-signature-script.html 验证一下