收藏
回答

在同一个账号,同一个主体下,微信网页登录和APP登录获取到的unionid不同?

在同一个账号,同一个主体下,微信网页登录和APP登录获取到的unionid不同

诡异的是 不是每次都会不同 ,大多数用户都是唯一的,少部分会出现不一致

重点来了~~~~~

不一致的值只差了一个字符

比如下面这样:(这个只是其中一个数据)


一个是:o_G3O5otl93ImXZqk4ffye1Zu__c

另一个是:o_G3O5otl93ImXZqk4ffye1Zu-_c

只差了 __c   -_c

头像 昵称都是一样的,重点不是所有的用户都这样 ,是部分数据会出现这种情况,有人有遇到吗

回答关注问题邀请回答
收藏

3 个回答

  • 学义
    学义
    2023-05-09

    使用微信登录的逻辑是通过 OAuth 认证从微信服务器拿到当前用户的 openid ,这个 openid 就是当前用户在微信的不同平台的唯一身份证。网站通过这个身份证来判断是哪个用户。


    既然每个用户公众号和小程序里面的 openid 都不一样,如何判断是同一个人呢?这里微信开放平台的作用就出来了,如果您开通了微信开放平台,并且关联了公众号和小程序,那么用户在请求openid的同时,会得到一个 UnionID,这个 UnionID 是微信全平台通用的,并且同一个用户在小程序、公众号、APP里面获取到的这个 UnionID 是唯一的,这样主题就可以通过 UnionID 来判断用户身份。


    一些站长没有开通开放平台,在发布了小程序,APP之后才开通的,那么之前通过网页微信登录的用户是没有 UnionID 的,这样程序会认为他是一个新用户,就出现了用户在网站、小程序和APP里面登录的账户不是同一个账户的情况。微信不支持通过 UnionID 反查不同平台的 openid,所以这个问题没有解决方法,只能网站里面重新解绑,然后重新绑定微信。


    如果您打算做小程序或者APP,并且需要微信登录,建议提前开通微信开放平台,并关联您的公众号。

    原文来源如下:

    https://7b2.com/circle/54408.html

    2023-05-09
    有用
    回复
  • 疯狂的小辣椒
    疯狂的小辣椒
    2019-09-10

    只要绑在一个开发者帐号下,即使主体不一样,也允许获取到统一的unionID。绑定同一个微信开放平台帐号下,同一个用户的unionID如果不同的,原因只能是开发者搞混openid。openid要对应所属的AppID,才会相同。 举个例子:
    1.
    小程序AppID:wxc104eb635b8cxxxx ——帐号A,
    公众号AppID:wx311a2a9a8e1dxxxx ——帐号B,

    2.核实帐号A和帐号B 绑定同一个微信开放平台帐号是:xxxxxx@sina.com ,所以用一个用户的unionID相同,

    3.而开发者所反馈的出现unionID不同,原因是:所提供的openid不属于帐号A,也不属于帐号B,而是属于帐号C或帐号D,而帐号C或帐号D并没有绑定在同一个微信开放平台帐号下,所以unionID不同

    2019-09-10
    有用
    回复 2
    • 糖醋兔子-Lusia
      糖醋兔子-Lusia
      2019-09-10
      这些我们上线前都确认绑定的是同一个开发者账号的,现在数据获取得到的大部分unionid都是一致,只有少部分,而且不一致的情况就是出现在下划线变成破折号
      2019-09-10
      回复
    • 疯狂的小辣椒
      疯狂的小辣椒
      2019-09-10回复糖醋兔子-Lusia

      按照上面的提示仔细核对下

      2019-09-10
      回复
  • 糖醋兔子-Lusia
    糖醋兔子-Lusia
    2019-09-10

    这个是另外一条数据


    数据库中 unionid 这个字段是做了唯一性的  所以同样的值是插入不了的,细心对比了之后才发现,只是不同了一个字符而已。。

    2019-09-10
    有用
    回复
登录 后发表内容
问题标签