收藏
回答

小程序 jscode2session 接口偶尔不返回 UnionId

问题模块
API和组件

在开发小程序的过程出 出现 jscode2session 接口偶尔不会返回 unionId的问题


在文档中说明只要公众号绑定开放平台和开发者验证 就会返回 unionId 但还是有一部分用户不会返回

且在一段时间之后相同用户又会返回 unionId .


在一些帖子中表示 如果用户关注或之前登录过在 login 方法中会直接 返回 unionId

但jscode2session接口并非wx.login 也不属于小程序前台接口,想知道为何会出现啊偶尔不反悔 unionId的问题


且当程序使用 unionId作为表示注册用户标识时,第一次登录如果不返回unionId 那还要后期实现修改用户注册信息吗??

最后一次编辑于  2017-11-15  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

3 个回答

  • Band🕹
    Band🕹
    2017-11-15

    请注意文档当中unionId下发的条件:

    https://mp.weixin.qq.com/debug/wxadoc/dev/api/uinionID.html


    遇到没有下发unionid的case,就是微信用户没有满足对应条件导致。请自行检查哈


    2017-11-15
    赞同
    回复
  • Deanllv
    Deanllv
    2017-11-16

    我这个问题 首先我 unionId 不是在 wx.login中获取的

    我是在后台 通过jscode2session 接口获取并有时不返回 unionId


    按照文档所说只要用户授权 就一定会获取到 unionId ,但在用户授权后 使用 code 访问jscode2session接口依旧有时不会返回 unionId,不知道这是否就是 文档中说的 wx.login


    现在我们的执行逻辑 是 js调用  wx.login 和 userinfo 之后获取code等,code上传服务器 服务器通过 jscode2session接口获取 sessionKey,unionId等,这时接口应该返回 sessionKey,openId 以及 unionId


    现在出现了 jscode2session 无法返回unionId,造成的结果就是要使用openId登录,就算以后这个用户 通过开放平台下其他渠道登录

    能拿到 unionId,也无法和之前openId关联,我不知道这个是否就是现在的 "正确逻辑"呢


    那这样的话结论也就是说,只要用户没关注公众号,或者之前没登录过,就算通过接口(jscode2session)也只能拿到 openId而拿不到 unionId?



    2017-11-16
    赞同 1
    回复
  • Deanllv
    Deanllv
    2017-11-16

    也就是说如果用户直接进入小程序,无论如何也拿不到 unionId,只能使用 openId作为用户标识


    然后假如再使用 同样的账号登录了 APP 那么App中是能拿到 unionId的对么?但是这时 unionId没有对应用户,openId也是独立Id ,无法标识和登录小程序的为同一个账号??


    那现在有多少种 openId 的可能性呢??小程序一个,公众号一个,APPSDK一个??

    2017-11-16
    赞同
    回复