微信公众号支付遇到的坑
首先是获取code:
var Rurl = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxff29fd03e77dc2b5&redirect_uri='+REDIRECT_URI+'&response_type=code&scope=snsapi_userinfo&state=1111#wechat_redirect'
要找一个中间页面,随便你项目中的一个页面都可以 ,
比如:https://xxxxxxx.cn/payZhong
-------> 这个地址要经过 encodeURIComponent(https://xxxxxxx.cn/payZhong),REDIRECT_URI就是这个地址。
然后window.location.href = Rurl 跳转到这个页面去接code,this.$route.query.code
比如:https://xxxxxxx.cn/?code=081Gkdkjkdjsljslj0Kdwzh2UxqAh2GWgAr&state=1111 跳转过来的路径是这种形式,带有参数code。有的页面你打印出来的链接地址上并不会带有code,但是实际上是有code的,能接到。这个地方是个坑,找了很久以为没把code带过来,其实是带过来的了,只是链接地址里没有。
接下来拿code去获取openID,这一步操作不用说了,是调rd的一个接口。
拿到openID后是调接口获取到去调起微信支付的参数,这里微信开发文档是这样写的:
但是我用这种格式传字符串过去总抱这样的错:

检查过后 openID 并没有问题,各个参数都没有问题。后来尝试穿了一个对象过去: 
结果成功调起公众号支付,只能说开发文档太坑,这个部分的bug找了一整天,结果是参数格式的问题。

浙公网安备 33010602011771号