微信支付 V3 提示验签失败

先说解决方法:使用官方SDK,同时一定要访问host(mch.weixin.qq.com),官网sdk会判断,如果是此host,会自动帮做签名,然后就成功了。

再说一下踩的坑:

我们使用了官方的sdk,官方sdk会先自动去下载平台证书,注意注意!平台证书不是你自己的证书!然后根据host签名后发送请求。

我们直接用nginx转发了微信退款的请求,结果从下载证书就一直提示验签失败,发现header里authorization为空,于是乎决定自己按规则自己做签名。

根据签名生成 - WechatPay-API-v3的指引,单元测试一跑,下载证书成功,但是退款请求迟迟不能验签通过,仔细比对官方指引,完全没有问题。搜索各处论坛没有答案。

最后仔细看代码,发现sdk里对apache的httpClient的封装,sdk判断访问host(mch.weixin.qq.com)时,会自动帮做签名。直接改成访问host,而非nginx的ip。成功!

比对了自己的签名和官方sdk签名的方式,一模一样,可是就是通不过,至今不明。不过能解决就好,网上还没看到此类文章,在此提出我自己的解决方法。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值