场景:同一个小程序
之前都好好的,最近用户报告他们没法看见他们对应的信息了,我查了数据库发现我们的用户很多都有2个openid 甚至有3个openid,但是按照我的算法是如果他使用了用户相关的功能,会授权然后我们就会拿到他们的微信的昵称啊头像啊啥的。。。然后给他们生成一个我们自己的用户号,这个用户号唯一并且和openid绑定。。。
什么情况下会有2个open id呢?我是按照正常的登陆流程来获取用户ID的
wxlogin 然后拿到code传到后台用我们的服务器再次请求然后得到返回值
然后把session_key+openid分别存好后,session_key+openid 再MD5后生成一个简单的third_session然后返还给用户
每次都看过期没有,如果过期了重新请求一次,如果没过期继续用
这个流程应该没什么问题可是数据库里面有很多是有多个openid 的,我放几张图
为什么同一个用户会有2个甚至3个openid呢
同一个用户对应同一个APP应用openID是唯一的,同一个用户对应不同的APP应用openID是不同的,你们是不是有多个应用。
测试环境中同样有这种情况,一个月内openId改了好几次了,怎么玩呢?
我直接不用openid了。。。。用自己的token。。要么你就用unionid
找腾讯客服吧