您当前的位置:踩坑首页 > 其它 > 返回首页

公众号授权登陆和网页微信扫码登陆openid不一致

浏览次数:

时间:2018-09-28
最近在做微信登陆时候,做了一个pc站扫码登陆,在微信公众平台注册的有pc站微信登陆和手机站微信登陆,pc站微信登陆比较简单,通过开发文档一步一步的调取接口填入参数就实现了,手机站就不一样了,文档介绍的是必须引入SDK,然后就卡在了第一步,我尝试不用SDK,用常用的网址访问通过回调获取code,失败了,返回的是10005错误,然后我就尝试通过公众号授权登陆手机站,一步一步下来之后成功了,但是问题出现了,pc站和手机站登陆完全是两个账号,而且openid也不一致,看开发文档明明说每个用户的openid是唯一的!!!
 
那么如何解决这个问题?这就牵扯到微信的UnionID机制。
 
关于UnionID机制:
 
1、请注意,网页授权获取用户基本信息也遵循UnionID机制。即如果开发者有在多个公众号,或在公众号、移动应用之间统一用户帐号的需求,需要前往微信开放平台(open.weixin.qq.com)绑定公众号后,才可利用UnionID机制来满足上述需求。 
 
2、UnionID机制的作用说明:如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为同一用户,对同一个微信开放平台下的不同应用(移动应用、网站应用和公众帐号),unionid是相同的。 
 
概括来说,就是同一微信用户,对同一个微信开放平台下的不同应用,真正唯一的是unionid。
 
openid虽然也是用户唯一标识,但是这个openid只针对微信开放平台下的当前应用,比如当前公众号,当前移动应用,当前网站应用。这样说来,微信用户的openid应该是对用户微信ID和公众号ID(或者网站应用、移动应用ID)进过某种算法加密计算出来的。
 

上一篇:条件注释判断浏览器<!--[if !IE]><!--[if IE]><!--[if l

下一篇:微信支付----微信内部浏览器