前言
以前调微信支付,直接把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