微信小程序接入登录获得用户 OpenID 和公众号不一样,查资料后发现需要 UnionID,但我们公众号网页登录没有用 snsapi scope,拿不到 UnionID,导致很多用户重复注册,有解吗?被用户投诉了好几次几万元余额没了

101 天前
 drymonfidelia
原本这个公众号是纯面向批发商的客服公众号,扫码关注就完成绑定,零售和网页是后加的,所以大量存量用户都没有获取 UnionID 的权限。最近新上了一个小程序(网页套壳),领导说必须要小程序这个流量入口。非常多用户重复注册导致登录错误账号,之前的余额没了。提示用户如果已有账号必须先绑定不现实,99% 用户不懂什么意思。
4947 次点击
所在节点    程序员
60 条回复
laoertongzhi
101 天前
微信小程序和公众号 都挂在 一个开发者账号下。
drymonfidelia
101 天前
@laoertongzhi 都挂在一个开发者账号下获取到的 OpenID 也是不一致。主体都是同一个公司的
laoertongzhi
101 天前
gmyxds
101 天前
1.在机制上,然后用户手动绑定,比如小程序和公众号授权之后,都要求用户绑定手机号,以手机号为账号判定一个用户。或者想办法把小程序和微信公众号关联起来。比如小程序登录之后生成一个 hashkey ,然后让用户把这个 hash-key 发给公众号,然后公众号接受 key 去绑定用户

2.花钱,在微信开放平台开认证,然后创建一个应用,把你的小程序和公众号关联起来。就能拿到统一的 unionid 了。不是网页拿不拿到 unionid 问题,你没绑定就是拿不到的
BeforeTooLate
101 天前
用户存量多吗,不多那就改方案用 UnionID 。
应该没有通过 OpenID 获取 UnionID 方式吧,如果有倒是简单了转化下即可。
存量用户先用手机号当作用户唯一标识,后期用户用 UnionID ,存量用户再登录的时候也存入 UnionID 。
被用户投诉了好几次几万元余额没了,这个是什么意思?
laoertongzhi
101 天前
@drymonfidelia

你得先理解 OpenID 和 UnionID 。

用户在不同的公众号、小程序(不管是不是同一个主体)下,其 OpenID 就是不一样的。

但如果公众号、小程序 都是挂在一个微信开发平台账号下,那么同一个用户,其 UnionID 就是一样的。
gmyxds
101 天前
@drymonfidelia 不同产品的 OpenID 不可能一样,一样的只可能是 UnionID
drymonfidelia
101 天前
@BeforeTooLate 因为用户进入小程序又创建了一个用户,登录了新用户导致看不到余额。我们平台为了用户操作方便,绑定了微信就不要求绑定手机号
laoertongzhi
101 天前
@gmyxds #7

嗯嗯,我的本意是让他用 UnionID 。
laoertongzhi
101 天前
这种问题找你们的产品经理啊
BeforeTooLate
101 天前
@drymonfidelia
#7 那麻烦了,这种情况下你们拿的 openid 已经不具备用户标识属性了。
drymonfidelia
101 天前
@laoertongzhi 我尝试过这个接口,不知道为什么很多用户没有 unionid 字段
@gmyxds 是的,我已经查到要用 unionid 了,来提问是因为获取不到
drymonfidelia
101 天前
@drymonfidelia 不知道是不是因为没有 snsapi 的权限的问题
BeforeTooLate
101 天前
@drymonfidelia 把小程序和公众号都绑定再一个开发平台了吗?
laoertongzhi
101 天前
@drymonfidelia #12

看官方的接口啊
yiqiao
101 天前
@BeforeTooLate 用户多也可以用 unionID
#3 楼贴出的方法可以根据用户的 openid 获取 UnionID ,再通过小程序在注册的过程中合并账号。除非,他当时没有把 UnionID 合并起来。
顺便问下,出现这种问题算谁的?产品?测试?还是开发?
BeforeTooLate
101 天前
@yiqiao 看情况前面存量用户压根没有考虑到 UnionID ,现在改用 UnionID 方案,除非保证存量用户在登录小程序前,能在公众号网页页面再登录一次不然获取不到 UnionID 并存入,进而导致这部分直接去小程序登录的人无法判断是否已经注册了。
blessyou
101 天前
@drymonfidelia #12 印象中用户没有实名认证绑定银行卡是没有 UnionID 的
RandomJoke
101 天前
微信保证主体下唯一的办法就是 unionId ,要么就自己用手机号。有余额之类的东西,竟然不用手机号做唯一标识啊。。你要是只保存了 openid ,就很麻烦了,赶紧想办法把 unionId 补全,要么就让用户通过手机号关联,不然你的账户体系一定是通不了的,重复注册我理解问题不大,你只要做好唯一关联后,让他的 unionId 能关联上正确的自己的账号那么下次登录就对了
BeforeTooLate
101 天前
@drymonfidelia
>我尝试过这个接口,不知道为什么很多用户没有 unionid 字段
需要这些用户重新进入授权页面获取的吧,是不是存在缓存。不可能部分用户获取不到 unionid 字段

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1059988

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX