收藏
回答

求解:为什么无法获取unionid!!!

通过wx.login,后端通过code可以获取unionid。

关注过公众号的可以获取unionid,没关注公众号但在小程序里授权登录过的老用户获取不到unionid。


官网文档:

unionID获取途径

3.如果开发者帐号下存在同主体的公众号或移动应用,并且该用户已经授权登录过该公众号或移动应用。开发者也可以直接通过wx.login获取到该用户UnionID,无须用户再次授权。


问题:为什么授权登录过的老用户获取不到unionid?怎么解决?(不想通过getUserInfo授权解密,有没有其他的办法)

最后一次编辑于  2018-08-14  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

3 个回答

  • 唔该,加冰
    唔该,加冰
    2018-08-14

    这个你要去微信开发平台绑定就有了,要认真看文档

    2018-08-14
    赞同
    回复 4
    • cheny
      cheny
      2018-08-15

      微信开发平台已经绑定过了

      2018-08-15
      回复
    • 唔该,加冰
      唔该,加冰
      2018-08-15

      绑定就能获取得到了

      2018-08-15
      回复
    • cheny
      cheny
      2018-08-16回复唔该,加冰

      兄弟你再试试吧,公司这边我们已经验过了,我们公众号、app、小程序是同主体下绑定认证过的。


      同主体的公众号、app如果关注和授权过是可以在小程序wx.login后返回的,但是如果并非上面的条件,只是在小程序里授权登录过,再次进入小程序wx.login后,返回是没有unionid的。



      可以说官方文档“unionID获取途径”的第3条说的没问题,“已经授权登录过该公众号或移动应用”,并不包含小程序,所以即便授权过小程序也不满足unionID获取的条件,因为在微信管理平台上,移动应用和小程序是两个页签分类,我们最开始还以为app、小程序都属于移动应用呢。


      2018-08-16
      回复
    • 唔该,加冰
      唔该,加冰
      2018-08-16

      unionID是公众号和app、小程序这些唯一相同的id,这个是用来判断登录的问题,如果你在公众号登录成功了,再次进入小程序获取得到unionid用来检验是否登录过了,要不就是你们后端那边有没有解密那个,如果你前端还是满足要求都不能获取得到unionid的话,你跟后端那边要一起检验一下的

      2018-08-16
      回复
  • cheny
    cheny
    2018-08-15

    小程序一直都是绑定的,我们现在刻意想绕开getUserInfo来获取unionid,但是授权过的老用户通过wx.loginb获取不到unionid,如果关注过公众号的则可以。


    是否官方文档“unionID获取途径”的第3条中的描述并不包含小程序,该用户已经授权登录过该公众号或移动应用,但并没有说该用户已经授权登录过小程序,是否应该这样理解?


    官方的人看到希望能给与支持和答复,谢谢!


    2018-08-15
    赞同
    回复
  • 1璐U你
    1璐U你
    2018-08-22

    目前我这边是绑定在已认证的公众号下的小程序。通过获取用户信息的组件button来拿用户的敏感信息。在此之前后台已经通过code拿到了session_key和openid,但解密后的信息里面并没有包含unionid。通过UnionID机制第一条来讲,通过wx.getUserInfo 的接口用户授权后从加密信息里获取,但现在这个接口被组件的主动触发代替,主动触发授权后为什么反而拿不到unionid了?

    2018-08-22
    赞同
    回复 3
    • cheny
      cheny
      2018-08-22

      这个不应该的,我们之前就是用这种方式,wx.getUserInfo的方式没问题的,可以取到unionid和昵称头像等信息的。

      2018-08-22
      回复
    • cheny
      cheny
      2018-08-22

      如果你是通过wx.login返回的code来解密得到unionid,那就需要满足关注过同主体的公众号或者微信授权登录过同主体的APP,这样才能得到unionid,否则你只是认证过公众号小的小程序是没用的,就算geuserinfo授权过也没用,wx.login还是只能拿到openid,获取不到unionid。


      解决的方式就是这种通过wx.login获取不到unionid的,弹出getUserInfo授权,从getUserInfo的加密数据里面解密,这个肯定能得到unionid,我们公司做新用户和部分老用户的兼容,就是用的这个解决思路。

      2018-08-22
      回复
    • 1璐U你
      1璐U你
      2018-08-23

      但是现在那个授权框不会再自己弹出来了呀,必须用户自己点击button才会弹出来,可是就算是用户主动授权,我们后端解密出来的信息里仍没有unionid,感觉很奇怪。

      2018-08-23
      回复