微信支付在调试中出现“验证支付签名失败”的解决方案

标题真应该改为:微信支付接口跳坑总结。

微信支付在调试中出现“验证支付签名失败”的解决方案:

  • JSSDK中的时间和随机字符串,在支付签名的时候,即在使用chooseWX()方法的时候,要和上面JSSDK中的两个参数保持一致。
  • JSSDK中,支付参数的timestamp是小写,但是在提请生成支付签名的时候,timestamp是要大写的。卧槽这个要坑多少人啊。
  • 在使用一部分框架开发的时候,可以省很多参数,但是要注意,几乎每次提交签名或验证的时候,一般都需要appId,注意appid的字母I的大小写。
  • 在获取openid的时候,切忌重复获取,获取一次存入变量重复使用最好。否则卡成shit。
  • 支付签名的规则是服务器端的支付签名规则,两者一样。
  • 支付签名中的key是微信商户中自行设置的key,而不是微信公众平台里面的密钥。
  • 剩下的都是些文档能检查出来的容易出错的问题了,不再岁岁念。