收藏
回答

商户证书序列号有误。请使用签名私钥匹配的证书序列号

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一致
最后一次编辑于  2023-11-03
回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容