收藏
回答

sdk下单返回Wechatpay-Serial 和 请求Wechatpay-Serial 不一致

请问我使用 sdk 调用的下单的时候,总是返回以下错误是怎么回事?publicKeyId[PUB_KEY_ID_0113214043012xxxxxxxxxxx] and serialNumber[7B77373C3A93AA83xxxxxxxxxxxxxxxxxx] are not equal

返回的 Wechatpay-Serial 应该是 publicKeyId 啊,使用下面方式的时候这里传的也是 publicKeyId

// 可以根据实际情况使用publicKeyFromPath或publicKey加载公钥
2 Config config =
3    new RSAPublicKeyConfig.Builder()
4        .merchantId("1900007291") //微信支付的商户号
5        .privateKeyFromPath("/Users/yourname/yourpath/apiclient_key.pem") // 商户API证书私钥的存放路径
6        .publicKeyFromPath("/Users/yourname/yourpath/pub_key.pem") //微信支付公钥的存放路径
7        .publicKeyId("PUB_KEY_ID_00000000000000000000000000000000") //微信支付公钥ID
8        .merchantSerialNumber("5157F09EFDC096DE15EBE81A47057A72********") //商户API证书序列号
9        .apiV3Key("F09E**") //APIv3密钥
10        .build();

为什么下单返回的header里的Wechatpay-Serial变成了序列号,什么原因?之前用的是v2,第一次用v3版本,按道理不会用到平台证书啊。


回答关注问题邀请回答
收藏

3 个回答

  • 微信支付质量运营助手
    微信支付质量运营助手
    06-18

    这个商户号目前还处在平台证书切换公钥的过程中,请参考指引  调v3接口时要在请求头传公钥ID,这样给你应答时就也会用公钥https://pay.weixin.qq.com/doc/v3/partner/4012925289

    06-18
    有用
    回复 1
    • 晓
      06-18
      我使用 sdk 调用的时候传了指定 publicKeyId 参数:PUB_KEY_ID_00000000000000000000000000000000 这个sdk在底层的时候就会在header里将这个公钥ID传过去啊,没问题啊。
      06-18
      回复
  • Realize
    Realize
    06-19

    你只是申请了公钥ID和文件,申请阶段公钥是不生效的,只有点击更换支付公钥按钮才会生效

    06-19
    有用 1
    回复
  • Memory
    Memory
    06-18

    平台证书切换微信支付公钥期间,需要同时配置平台证书和微信支付公钥

    06-18
    有用
    回复 4
    • 晓
      06-18
      之前用的是v2,没关心平台证书。第一次用v3,而且平台证书在3月份失效了,请问现在要怎么处理?
      06-18
      回复
    • Memory
      Memory
      06-18回复
      截图后台API安全页面给我看下
      06-18
      回复
    • 晓
      06-18
      06-18
      回复
    • Memory
      Memory
      06-18回复
      publicKeyId和serialNumber不匹配,你是不是搞错对应关系了?比如A的配置到B了
      06-18
      回复
登录 后发表内容