收藏
回答

"certificate[xxxxxx]not found in verifier" ,密钥不匹配?

报错:"certificate[5F7BC6571008911F1FC610D44B0FF5DB5C6D1A60] not found in verifier"

现象:微信转账 ,成功后走设置的回调 ,回调中解析request报错,request 中的"Wechatpay-Serial" 是["5F7BC6571008911F1FC610D44B0FF5DB5C6D1A60"],并不是我生成client 时候传输的 serial 序列号。cert.pem 和 key.pem 进行公钥对比过了,一致的。

问题:返回的序列号哪里来的?怎么解决这个问题

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

3 个回答

  • 支付社区运营
    支付社区运营
    06-27

    首先你要区分证书相关概念

    1、商户API证书(2个pem文件1个P12文件)包含商户私钥/商户公钥对

    2、微信平台证书(用工具下载 或接口下载两种方式获取)-- ---可以获取到 【微信平台证书序列号】和和密文ciphertext,解密后可以得到平台证书内容。

    平台证书文件名类似于wechatpay_123456777B4A9CC78902B44B65E04B9751CE12.pem

    3、微信支付公钥,替代2的微信支付平台证书,商户后台申请下载。

    公钥id类似:PUB KEY ID 0117000800002025045698789500001779

    (2和3二选一用于回调和响应验签、敏感信息加解密)


    证书用途:

    你生成client 时候传输的 serial 序列号是1的商户API证书序列号。商户API证书主要用于生成请求签名。

    你回调中解析request"Wechatpay-Serial" 是2的微信平台证书序列号,是微信回调时带的,需要用"Wechatpay-Serial"对应的平台证书对回调进行验签




    06-27
    有用
    回复
  • 看海不看水
    看海不看水
    06-26

    使用的Golang代码

    06-26
    有用 1
    回复
  • Memory (私信不回复)
    Memory (私信不回复)
    06-27

    验证签名使用的是平台证书,回调里面的Wechatpay-Serial是平台证书序列号,你配置错了

    06-27
    有用
    回复 3
登录 后发表内容