收藏
回答

关于在未关注公众号情况下获取UnionID的解决方法?

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 需求 UnionID 客户端 7.0.3 2.5.1

目前项目的做法是:  app.js 中 通过 wx.login + code2Session方法获取 UnionID,获取到就登录成功,获取不到 ,通过 wx.getUserInfo(目前都是要做成 button的那个形式)方法获取,用户授权可以登录注册成功;

问题: 在未关注公众号的情况下,注册成功了, 第二次打开小程序的时候,仍然需要授权(因为默认是通过 code2Session获取的,此时获取不到unionID),这样就需要每次都授权登录,想问的问题是:有什么好的办法,解决这个每次都需要授权登录的问题(注:让每个用户都主动关注公众号不太现实)?谢谢大佬们


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

3 个回答

  • 轻兔小程序服务商
    轻兔小程序服务商
    2019-04-30

    getUserInfo里拿encryptedData

    后台去请求也能拿到unionid

    授权后的以后都是静默授权 能达到你的效果

    2019-04-30
    有用 2
    回复 1
    • 淘玉官方
      淘玉官方
      2019-05-05

      前提条件:未关注公众号的; 您的意思是:第一次授权通过后,我数据库存了unionid,第二次再来打开,就是静默授权了吗?

      2019-05-05
      回复
  • 老张
    老张
    2019-05-02

    我们的逻辑是:

    1、app.globalData.unionId = app.globalData.unionId || wx.getStorageSync('unionId')

    2、没有则wx.getUserInfo直到获得授权;

    3、云函数获得unionId,缓存

    4、没有则wx.login,wx.getUserInfo,将3个参数传入后台获得unionId,缓存。

    2019-05-02
    有用
    回复 3
    • 淘玉官方
      淘玉官方
      2019-05-05

      哦,你们是直接缓存到前台了,那要是删除小程序后或者清理了缓存,重新来登录时,是不是仍然需要授权?

      2019-05-05
      回复
    • 老张
      老张
      2019-05-05回复淘玉官方

      这是肯定的。但是为什么会有删除小程序或者清理全部缓存这样的需求?什么样的场景?

      2019-05-05
      回复
    • 淘玉官方
      淘玉官方
      2019-05-05回复老张

      这个倒是没有什么特定需求,只是想到这个地方了,

      2019-05-05
      回复
  • 铭锋科技
    铭锋科技
    2019-04-29

    仔细阅读下 unionid机制与获取途径


    https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/union-id.html

    2019-04-29
    有用
    回复 1
    • 淘玉官方
      淘玉官方
      2019-04-29

      已经读的快会背了,我就是想问下,不关注公众号的情况下,授权过一次后,再进入 ,大家都是如何操作的

      2019-04-29
      回复
登录 后发表内容