我的支付逻辑是这样设置的
首先进入页面先检测本地储存有没有opnid,没有的话去标签上获取,因为用的后端渲染,会把opnid渲染到标签上,然后如果标签上也没有就去回调授权,这个时候,从微信那边回到我们这边重复一次上述逻辑,这次标签上是有的,标签上有把它储存到本地loc里,然后拿到opnid去换支付签名拉起支付
代码如下:
回调地址为:https://open.weixin.qq.com/connect/oauth2/authorize?appid=${this.appId}&redirect_uri=${encodeURIComponent(local)}&response_type=code&scope=snsapi_base&state=123&connect_redirect=1#wechat_redirect
使用的是vue语法在mounted中获取服务端渲染参数
现在可以确保的是这些参数都有,openid也有,大部分机型都可以正常拉起支付,但是今天有个iphone的用户支付报错了一个无效的openid,问题也复现不了这是为什么问题截图如下
这边需要你们那边自己校验下了,另外需要确认调用开平的获取openid接口是否实际有响应数据了,这里一般来说如果接口正常响应是不回返回null的
这能猜出啥呀,支付时报这个错肯定是拉起支付时传的openid不对呗,跟着日志查咯。没日志谁知道啥原因呀
那这只能新增代码逻辑判断了。
有哪位大神知道吗为什么openid会返回null