前言

以前调微信支付,直接把demo粘过来改改,或者从老项目粘过来,这次接手一个一年之前的项目,说微信支付没调通,好吧,我就调吧

正文

1:之前的body写的是中文,改成英文

结果:失败(不过这一步很必要)

2:传递的xml编码换为UTF-8

结果:失败(编码应该为 ISO8859-1 )

3.前面不行,就去微信官方签名方式测试  https://pay.weixin.qq.com/wiki/tools/signverify/

结果:微信说我没有错,但就是运行的时候失败(可以自己验证一下,如果失败就说明签名算法错误)

4.没办法了,就去找人要微信支付商户的账号和密码,然后对比了appId,对比了商户id,重新设置了商户key

结果:还是不行(这一步整了tm一天)

5.最后搜了几篇论坛,从头看到尾,方法都试了,也不能用,点开了一篇推荐链接,说xml拼接的顺序也能影响结果(mmp)

https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1#    微信支付的参数页面

5.1按照上面页面里的给参数的顺序进行排序

结果:还是不行

5.2然后往下扒拉扒拉,发现有一个这个

然后我备份了一下之前的排序方式,按照这个来,多余的删,少的加,顺序一模一样

结果:成功了(竟然tmd成功了,wc就因为这个排序..........)

结论

腾讯跟阿里单就技术态度这一点差的不是一点半点

 

微信扫码支付:https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=6_5

微信签约支付:https://pay.weixin.qq.com/wiki/doc/api/pap.php?chapter=18_13&index=5

支付宝扫码支付:https://docs.open.alipay.com/270

支付宝签约支付:https://docs.alipay.com/pre-open/20170601105911096277/cmgtz2