小程序 jscode2session 接口偶尔不返回 UnionId
发布于 6 年前 作者 chaosun 8211 次浏览 来自 问答

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

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

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

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

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

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

3 回复

我这个问题 首先我 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?

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

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

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

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

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

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

回到顶部