为什么对于同样一个用户,openid会变啊
发布于 5 年前 作者 uyin 18335 次浏览 来自 问答

我听信了微信的改动,在一开始不请求userinfo了。然后我发生了这样一个情况。

用户在小程序端登录,发来code。

我解析code,只得到open_id。并未得到union_id。(但是我自己的手机发来code是可以得到union_id的,那个用户的微信版本是6.5.12)。

然后这个用户的这个open_id,和她以前的open_id不一样。然后我就在后台又生成了一个新用户。然后用户给了我userinfo授权之后,发现自己之前的资料都没了,我一查发现两个union_id一样,但是open_id不一样的用户。其实是同一个人。

会有情况会发生对于同一个用户,open_id变掉的吗?

7 回复

对的,我这个后台只给一个小程序用的。

然后文档里面不是说现在光用code就都能拿到union_id了吗?为什么我这些人都只能拿到open_id?

我现在后台有好几个人是有不同的openid但是相同的union_id的,要我提供吗?

直接获取unionId是有限制条件的,请参考 https://developers.weixin.qq.com/blogdetail?action=get_post_info&lang=zh_CN&token=304257714&docid=c45683ebfa39ce8fe71def0631fad26b

openId变化的问题请提供几个例子,周一我联系相关的技术人员看一下。

你好,我们这边查到的结果是你给的每个case的第一条的unionId和openId都不是同一个用户,第二条才是同一个用户。请检查服务端逻辑是否有误。

我能问下,获取openId和unionId这个接口请求域名需要在小程序公众平台中,设置–>请求合法域名中备案吗?我现在是小程序直接调用,告诉我合法域名校验出错,然后我在那个位置添加,系统又告诉我不能把这个域名添加上(我猜可能是微信小程序的域名特殊吧)

但是我自己的账号登录,是可以通过API来获得union_id的:

https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

但是我刚又叫这些用户试了下,我用这个api就是得不到这些用户的union_id。

好的。谢谢。

用户1:

open_id: ‘oqm_50MdGdWXFEumQwmN7vjzPB5I’

union_id: ‘o2ecNs2WcOkqRQOTmMwSeqrSh-_U’

同样的用户1:

open_id: ‘oqm_50BS5wllO3bj3cDzVY1jsltc’

union_id: ‘o2ecNs2WcOkqRQOTmMwSeqrSh-_U’

用户2:

open_id: ‘oqm_50I1iItWp06G4ze2VchGGOKI’

union_id: ‘o2ecNs3nzvvjGA3pr7T-yShRD5Ak’

同样的用户2:

open_id: ‘oqm_50DsUNIeg41Lg6phw2PsogG4’

union_id: ‘o2ecNs3nzvvjGA3pr7T-yShRD5Ak’

是否都是在同一个小程序中登录的用户?openId只在同一个appId下是唯一的。

回到顶部