搞过微信开发的同学肯定对微信支付不会陌生,想必也碰到了不少麻烦吧?到底有多坑,我们来说道说道。咳~咳,没有批评,存粹只是对知识的敬畏哦🙈

本文来细数一下微信支付的大坑,希望可以对后来的你有所帮助。

一、方式

两种方式JS SDK和JS API,这两种方式都是可用
JS SDK方式
http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
JS API方式
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7

二、关于异常fail_invalid_appid

检查商户平台证书,需要手动设置key
检查支付地址和支付测试目录问题
添加测试人微信号到白名单

目录最好只到2级,太深的话,也是会报错的
单独链接,单页应用#后无法识别,亦会报错

http://blog.sina.com.cn/s/blog_5fc3da040102vjm7.html

三、支付验证签名失败

get_brand_wcpay_request:fail
步骤一:
检测参数大小写和顺序问题
商户key必须拼写在字符串末尾
MD5算法后需转为大写

https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3

http://jingyan.baidu.com/article/59703552c3c9808fc1074072.html?st=2&os=0&bd_page_type=1&net_type=2

用在线签名验证工具去对比签名
https://pay.weixin.qq.com/wiki/tools/signverify/

步骤二:


paySign需要上图红圈中的5个参数进行签名,否则就会报错。

四、调用支付JSAPI缺少参数:$key0$

首先确定timeStamp必须是string类型;
其次检查参数名对应情况,必须与api参数列表完全一致;

五、相关补充

http://bbs.csdn.net/topics/390981338
http://www.cnblogs.com/deepleo/p/weixinjssdk.html

六、相关文档:

网页调起支付API
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7
安全规范(签名规则等)
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=4_3
调用请求参数
https://pay.weixin.qq.com/wiki/tools/signverify/
js sdk
http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
网页端掉起支付api
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7
统一下单:
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1
微信公众平台:
https://mp.weixin.qq.com/