收藏
回答

为什么我获取的微信平台证书列表的证书序列号和支付回调给我的证书序列号没有匹配的?

场景:微信支付结果回调通知

我接口Http head 中收到的证书序列号:2490759DC30C4900C1459277D32508DE36B21EC0

我从微信平台证书列表接口获取的证书列表序列号(只返回一个微信支付平台证书):208745220879295502557047535950726145748226940608

我获取平台证书的链接:https://api.mch.weixin.qq.com/v3/certificates

两个证书序列号不匹配,没法验证签名,是我哪里弄错了吗?

以下是日志截图:

请求头证书序列号:

平台证书Map

最后一次编辑于  2021-05-29
回答关注问题邀请回答
收藏

3 个回答

  • leven
    leven
    2022-02-17

    要转成16进制

    serialNumer  =  xxxxxxx.toString(16).toUpperCase();
    



    2022-02-17
    有用
    回复
  • Frank
    Frank
    2021-05-29

    微信支付团队帮忙排除下什么原因导致的

    2021-05-29
    有用
    回复 1
    • Frank
      Frank
      2021-06-01
      这个问题解决了,算是自己的失误吧,那天和微信支付的技术支持联调了,他看日志确实返回给我的证书是对的,但是我解密证书得到序列号就是不一样,后来发现是我解析有问题,我应该把接口返回给我的json里的证书序列号直接拿来用,但是我没有,我先解密了证书密文,得到证书对象后,证书序列号直接用证书对象Get出来的,我以为这样和腾讯返回的json里的明文证书序列号是一致的,结果不是,证书对象Get出来的证书序列号是BigInteger类型,腾讯返回的序列号是有字母的字符串,所以这里导致证书序列号保存不正确,其他不深究了
      2021-06-01
      1
      回复
  • 难说
    难说
    2021-05-29

    您当前的支付平台证书不是最新版本的 请参考https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pages/zsgxguide.shtml

    进行更新

    2021-05-29
    有用
    回复 9
    • Frank
      Frank
      2021-05-29
      你的意思是我的商户证书不是最新的?需要更新?
      2021-05-29
      回复
    • Frank
      Frank
      2021-05-29
      我支付平台证书是惰性更新模式,只要没有,就会调用重新下载覆盖一次,不存在不是最新的问题
      2021-05-29
      回复
    • 难说
      难说
      2021-05-29回复Frank
      是的   您可以查询一下您当前的版本
      2021-05-29
      回复
    • 难说
      难说
      2021-05-29
      一个是商户证书  一个是平台证书,两个不一样的,通过微信接口https://wechatpay-api.gitbook.io/wechatpay-api-v3/jie-kou-wen-dang/ping-tai-zheng-shu
      获取最新的证书然后和你当前的平台证书对比是否是一致的  不一致就需要进行更新成最新的平台证书
      2021-05-29
      回复
    • Frank
      Frank
      2021-05-29
      不是你说的这个问题,我知道商户证书和平台证书的区别,我的平台证书是惰性加载的,没有会自动更新,商户证书刚查了要2026年才过期
      2021-05-29
      回复
    查看更多(4)
登录 后发表内容