收藏
回答

微信支付V3接口下载账单,私钥和证书序列号不匹配?

微信支付V3接口下载账单,和java对接:

本地使用nodejs,能正常请求接口并下载到账单,说明商户号和证书序列号以及私钥是匹配的。

但是,java那边拿到同样的配置去请求下载账单,就提示私钥和证书序列号不匹配。

区别就是,nodejs用的私钥是pkcs1格式的,将私钥转为pkcs8格式给到java那边,依然提示私钥和证书序列号不匹配。

问题:是否需要重新生成一个私钥,且格式为pkcs8?

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

1 个回答

  • 北望沣渭
    北望沣渭
    2021-09-16

    证书序列号不匹配 多半是验签逻辑提示的,账单下载是没有返回头数据签名的,需要java端同学排查下,是不是验签逻辑抛的异常。

    2021-09-16
    有用 1
    回复 3
    • 账号已注销此号是空号
      账号已注销此号是空号
      2021-09-16
      感谢回复~  header头里的Authorization是有要求签名的
      他用的是文档中的wechatpay-apache-httpclient库,按理说不会轻易出问题,这个序列号serialNo是跟着证书走的,私钥也是证书生成的,只是生成的私钥是pkcs1格式的 可以再转换成pkcs8格式,怀疑这个序列号是和pkcs1格式的私钥绑定对应了。
      2021-09-16
      回复
    • 北望沣渭
      北望沣渭
      2021-09-17回复账号已注销此号是空号
      程序抛的异常,分两类,1类是请求头authorizaiton不匹配;另外一类是返回response[Wechatpay-Serial]头验签,我推测是你们的验签逻辑异常了,建议debug看看
      2021-09-17
      回复
    • 账号已注销此号是空号
      账号已注销此号是空号
      2021-09-17
      好的 感谢~ 还是继续沟通Java同学去debug看看
      2021-09-17
      回复
登录 后发表内容