微信网页授权成功获取的openId与获取粉丝列表中对应的粉丝的openId不一致
我创建了一个微信网站应用,用于管理多个不同类型的公众号的授权登录,认证订阅号和认证服务号现在都可以授权登录了,但是为什么在授权成功后获取到的openId与实际上通过“同步粉丝信息”获取到的对应的粉丝的openId不一样?比如,粉丝a授权登录了公众号A,通过网页授权
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
拿到的openId为 1 ,但实际上通过
https://api.weixin.qq.com/sns/oauth2/access_token?grant_type=authorization_code
这个链接获取粉丝列表中对应的粉丝a的openId实际上是2,而在微信支付的时候,我传的是授权时拿到的openId,也即openId=1,导致了支付的时候报了“appId and openId not match”的错误,而当我改成实际的openId,也即openId=2,发现可以正常支付了,但是这样就不符合逻辑了,应该传的是openId=1才对啊!这他妈是微信的坑吗?望有热心网友帮忙指点下。谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
那不行的,除非你强制用户输入手机号完成注册,这样绑写openid和手机号。其实关键就是要找一个第三方的,大家都有的。用户输入的信息是不太好的,比较两个人叫一样的名字,微信这里获取不到用户账户的。
可是我的公众号可能有几百上千个,开放平台最多只能绑定10个,这个解决方法行不通啊,我现在想,在网页授权获取到的用户信息与已存表的粉丝信息对比,如果共有的字段的值一样,就判断是同一个粉丝,就是感觉这个不太靠谱。。
是这样咯,多个微信的话,要使用开发者账号,获取统一unionID,然后存表,然后通过unionid获取其它平台对应用openid就可以了
那这个该怎么处理?通过网页授权获取的unionId查询粉丝列表中对应的粉丝的openId吗?可是粉丝列表接口好像没有返回unionId这个字段啊
没遇到你说的问题
你没理解我的意思吧?我这边就一个公众号A
每一个公众号对应的用户openid都不一样
也就是同一个用户关注了公众号A和公众号B 在后台得到的openid都不一样