收藏
回答

v3的提交申请单API证书序列号冲突

特约商户进件接口提交进件数据的时候报错: 微信支付V3

使用证书自带serial_no时报错:商户证书序列号有误。请使用签名私钥匹配的证书序列号;更改为接口下载证书serial_no时,报错商户证书序列号有误。请使用签名私钥匹配的证书序列号;

一个奇怪的现象:

从平台证书:https://api.mch.weixin.qq.com/v3/certificates 接口获取证书,和我们解析出来的证书不一致;

v3的提交申请单API调用时发送的证书序列号是 1AF73A340EB738B13213B1594B5495B946D0D74C,此证书是从微信的商户平台下载的。但是返回 平台证书序列号Wechatpay-Serial错误  ,

返回的   "Request-ID","value":"247x3o"   返回的验签序列号,"WechatpaySerial","value":"7DAECE20D45126AA26C9DECA84713D5FB2F69D02“   ,麻烦看一下这个问题,是因为证书冲突了吗?还是微信有具体什么控制逻辑?

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

3 个回答

  • 北望沣渭
    北望沣渭
    2020-08-10

    这个接口涉及俩证书序列号,其中:

    • 平台证书序列号要在请求头header[Wechatpay-Serial] 随请求一并发送(商户敏感信息加密,平台做敏感信息解密)
    • 商户证书序列号要在请求头header[Authrozation] 按v3文档做格式编码一并发送(即serial_no段)


    特别的 敏感信息商户侧加密是用的平台公钥证书,这个很容易不注意就用商户公钥证书了

    2020-08-10
    有用 1
    回复 5
    • 吴浩平 ོ《尤小曲》
      吴浩平 ོ《尤小曲》
      2020-08-10
      谢谢,太给力了,解决大问题了。
      2020-08-10
      回复
    • 阡陌风狸
      阡陌风狸
      2020-09-24
      请问下是不是说微信平台证书和我们在商户API安全看的证书序列号是不同的,后面的接口请求需要使用https://api.mch.weixin.qq.com/v3/certificates这个接口获取到的证书序列号,验证签名中序列号也是验证接口获取到的序列号嘛?
      2020-09-24
      回复
    • 北望沣渭
      北望沣渭
      2020-09-24回复阡陌风狸
      对,验签所用证书跟敏感信息加密用的证书是同一个,都是上述接口获得
      2020-09-24
      1
      回复
    • 阡陌风狸
      阡陌风狸
      2020-09-24
      好的,非常感谢
      2020-09-24
      回复
    • 我叫小河马
      我叫小河马
      2021-04-21
      我使用python调用解密平台证书的时候,一直告诉我说cryptography.exceptions.InvalidTag  我查了一下,说是apiv3key不匹配,让我看证书序列号和/v3/certificates接口返回的证书序列号是否一直,我看了不一致,这个您是怎么处理的?
      2021-04-21
      回复
  • 微信支付技术助手8
    微信支付技术助手8
    2020-08-10

    1,证书分为平台证书和商户证书。

    2,Wechatpay-Serial这里指的是通过接口获得的证书的序列号。

    https://wechatpay-api.gitbook.io/wechatpay-api-v3/chang-jian-wen-ti/zheng-shu-xiang-guan,参考一下这里

    2020-08-10
    有用
    回复 1
  • peng
    peng
    2020-08-10

    证书分平台证书与商家证书,你这里是不是弄错了,

    Wechatpay-Serial传的是接口获得的证书接口的序列号。


    2020-08-10
    有用
    回复 1
登录 后发表内容
问题标签