我们有一个项目,是有PC端与移动端,之前累积了一些用户,这些用户都是用openID来进行标识的,我们PC端登录扫码是通过用户openID来进行登录的(当时并没有绑定微信开放平台),所以也没有存过用户的Union_ID,现在我们想开发一个小程序,碰到了以下的问题:
之前的老用户再用openID标识已经不行了,因为在小程序端是无法识别是否为注册用户的,老用户如果关注公众号我们是可以拿到Union_ID的,但是未关注的就拿不到,所以就想问一下大家有没有办法解决老用户的问题,就是怎么获取他们的Union_ID
先跑个脚本,通过公众号获取用户信息接口把老用户 unionid 补上
小程序这边,通过用户授权登陆,解密 encryptedData 拿到unionid即可
需要关注公众号?并不需要吧,我这边就是这么搞的
当然,小程序和公众号都要绑定到同一个开发者帐号下面
我之前确实是用的这个方案,但是我用程序跑完之后,发现有一半的用户没有获取到unionID,而这一半都是没有关注公众号或者取消关注的
微信并没有这样的限制,我们没有关注的也能拿到unionidhttps://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140839
确实拿不到啊,我还用我自己的openID试了好几次,没关注拿不到unionID
在网页授权的时候需要使用 snsapi_userinfo 这样,才能在后台获取到unionid,如果网页授权使用的是snsapi_base,那么在后台是无法获取到unionid的
这个说法,你可以验证下
我们用户都是 snsapi_userinfo 过的
微信公众号有获取用户列表(获取的列表包含openid)和用户详细信(详细信息包含uniond)的接口,需要针对openid补对应uniond的(只有openid是公众号的openid才可以),可以使用微信公众平台的用户管理,对应着openid去获取用户信息来补充unionid信息,获取用户详细具体规则如下图:
注意:只有公众号的openid才可以使用该方法获取用户信息,app的openid或者小程序的openid是无法用来直接获取用户信息的。
小程序,在用户未关注公众号的前提下,获取unionid方法:小程序端使用wx.getUserInfo()获取的用户加密数据,解密后可以获得。已关注公众号的情况下,直接通过code就可以获取到用户信息。
针对楼主说的,可以提示用户系统升级需要关注公众号,用户关注公众号的推送信息事件里,通过openid去获取用户信息拿unionid,之后建立对应关系。
求方案
同样的问题请问楼主解决了吗
没有官方的大佬出来一下吗?
注册后台 引导去关注公众号
可以拿openid获取用户的基本信息,里有unionid。
你说的是小程序吧,公众号没有关注拿不到
你仔细研究一下一楼说的,明白了就差不多解决了
有登陆功能的么 可以登陆按钮 变为授权登陆的按钮 授权后 可以拿到unionid了
我们的登录是扫码登录,是一个关注事件
文档里不是说了吗。从解密数据里获取
有详细的 解决方案吗?必有重谢!