报错:"certificate[5F7BC6571008911F1FC610D44B0FF5DB5C6D1A60] not found in verifier"
现象:微信转账 ,成功后走设置的回调 ,回调中解析request报错,request 中的"Wechatpay-Serial" 是["5F7BC6571008911F1FC610D44B0FF5DB5C6D1A60"],并不是我生成client 时候传输的 serial 序列号。cert.pem 和 key.pem 进行公钥对比过了,一致的。
问题:返回的序列号哪里来的?怎么解决这个问题

首先你要区分证书相关概念
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"对应的平台证书对回调进行验签。
使用的Golang代码
验证签名使用的是平台证书,回调里面的Wechatpay-Serial是平台证书序列号,你配置错了