收藏
回答

jSAPI支付,大部分用户都可以正常掉起支付,小部分返回无效的opnid?

我的支付逻辑是这样设置的

首先进入页面先检测本地储存有没有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,问题也复现不了这是为什么问题截图如下

最后一次编辑于  12-08
回答关注问题邀请回答
收藏

3 个回答

  • 支付社区运营
    支付社区运营
    12-09

    这边需要你们那边自己校验下了,另外需要确认调用开平的获取openid接口是否实际有响应数据了,这里一般来说如果接口正常响应是不回返回null的

    12-09
    有用
    回复 2
    • 蘭初一。
      蘭初一。
      12-09
      有没有可能网络波动导致返回null的情况
      12-09
      回复
    • 蘭初一。
      蘭初一。
      12-09
      如果是null,我们这边再次立即跳转授权链接,会不会导致重复授权返回的openid错误,非常期待你的回复
      12-09
      回复
  • sun
    sun
    发表于小程序端
    12-08

    这能猜出啥呀,支付时报这个错肯定是拉起支付时传的openid不对呗,跟着日志查咯。没日志谁知道啥原因呀

    12-08
    有用 1
    回复 4
    • 蘭初一。
      蘭初一。
      12-09
      昨天排查了一下,微信返回的openid是个字符串'null',然后导致判断为真,本地储存了'null'去换微信签名
      12-09
      回复
    • sun
      sun
      发表于小程序端
      12-09回复蘭初一。

      那这只能新增代码逻辑判断了。

      12-09
      回复
    • 蘭初一。
      蘭初一。
      12-09回复sun
      好的感谢,但是还是有点想不通微信官方没事返回null干嘛,人麻了
      12-09
      回复
    • 蘭初一。
      蘭初一。
      12-09回复sun
      为null,再次去回调授权,但是又害怕多次回跳授权链接微信官方返回出错
      12-09
      回复
  • 蘭初一。
    蘭初一。
    12-09

    有哪位大神知道吗为什么openid会返回null

    12-09
    有用
    回复
登录 后发表内容