步骤一:初始化微信支付框架
(一)、官方文档说明:
(二)、注意事项:
1.附录1红框中所说的access_token不是通过code获取的用户access_token,具体获取方式请点击对应链接;
2.jsapi_ticket必须缓存,不然客户端每访问一次就刷新一次的话,后一次返回之后,前一次使用的jsapi_ticket就失效了;
3.初始化方法中使用到的timestamp和nonceStr参数和后台调用统一下单接口中的参数需要一致,否则容易报“订单信息错误”异常;
4.signature签名生成中用到的url参数是完全URL地址(包含后面带的参数)。正常如http://URL/index.html?code=021dba33f98bec86933e96e2a80f115l&state=123。
步骤二:调用微信支付
(一)、官方文档说明:
(二)、注意事项:
1.prepay_id 通过微信支付统一下单接口拿到,统一下单接口中的openid参数(trade_type=JSAPI,此参数必传)需要公众号中跳转到业务页面时获取的code获取,并且通一下单接口中的生成签名用到的参数必须是非空参数;
2.paySign支付签名生成时,
参数名要写正确。本人当时误把红框中的参数写成appid导致一直提示“签名失败”;(补充:在对接APP模式的支付的时候,这些参数又必须是小写的。具体可参见https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=9_12)
3.联调的时候,在公众号平台配置测试地址和测试的微信号。
步骤三:处理支付通知
(一)、官方文档说明:
(二)、注意事项:
1.支付通知地址为“统一下单接口”中传的notify_url参数;
2.验签时注意参与签名的参数需要时非null和非空的参数。
参考文档:
1.http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html 微信JSSDK官方文档
2.https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1 微信支付统一下单等接口官方说明文档
3.http://blog.csdn.net/fuyifang/article/details/40707517 微信openid获取的几种方法介绍
4.http://www.cnblogs.com/txw1958/p/wxpayv3-jsapi.html 通过微信官方文档接口介绍对接步骤的文档
5.http://blog.csdn.net/molaifeng/article/details/42968673 微信支付可能遇到的一些坑
6.https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=9_1 微信APP支付官方文档