使用的pro3.0.3版本,起初后台配置的是微信支付接口类型为V2,商户API证书A,前端可以正常发起微信支付并付款,无任何问题。后续因为要用到《商家转账到零钱》接口,所有只能升级到V3的接口方式,诡异的问题出现:在微信商户平台设置完APIv3密钥后,继续使用原来的商户API证书A,一直提示“错误的签名,验签失败”,中间经过列表的排查:
1、更换新的APIv3密钥,失败
2、使用微信提供的验签工具,对比crmeb程序控制台捕获的签名,结果显示一致;
3、更新系统缓存,对比商户ID,证书序列号,秘钥文件等等,均与后台配置一致,依然提示签名错误;
4、使用postman调用微信官方的sdk测试,还是提示签名错误;
等作为第四步,网上很多人都说很大几率就是证书问题了(跟微信商户平台的证书不一致),因为就尝试重新申请了新的商户API证书B,然后把新的商户API证书B 配置到crmeb后台的微信V3支付,再测试,一切正常,问题解决了。
现在有点不明白的就是:如果商户API证书A是错误的,那么应该在V2方式下,无法调起微信支付,诡异的是V2方式下使用商户API证书A一切正常。有知道原因的可以分享一下。所以建议所有的动作都确认过没问题之后,重新创建一个新的证书试试,说不定一切都好了。