微信支付,签名失败
2018-12-25 本文已影响4人
前端黑板报
微信支付可能有毒,毒害很多开发的小伙伴,这里做下整理。
1.首先配置支付授权目录(https://pay.weixin.qq.com/wiki/doc/api/external/jsapi_sl.php?chapter=7_3)
我用的是Vuejs,路由是hash模式,授权支付目录配置的是域名,例如:http://xxx.com,也没有细化到二级三级目录。
授权支付目录需要到,微信商户平台(pay.weixin.qq.com)配置。
2.微信内调用支付
使用新版的chooseWXPay,其实JS-SDK里面这个方法也就是调用了getBrandWCPayRequest(源码地址:http://res2.wx.qq.com/open/js/jweixin-1.4.0.js)。
之后就是chooseWXPay里的参数:

注意这里的所有参数都是后端返回,前端拿到用就行。
大致流程:
后端调用微信服务器统一下单接口获取prepay_id,然后拿着上面红线画的参数生成paySign,然后返回前端chooseWXPay需要的参数。
但是这里有两个坑点:
1.生成paySign签名时timeStamp中的S是大写,并且是秒不是毫秒
2.生成paySign需要appId、timeStamp、nonceStr、package、signType

如果有问题联系我:

参考文章:
1.https://juejin.im/post/5c1849f7f265da61327f3c40#heading-1
2.https://www.jianshu.com/p/08db7aab6d88