收藏
回答

UnionId到底该如何获取?

项目是微信小程序,本人后端开发。

目前获取方式:前端调用wx.login获取code传给后端,后端拿到code通过 code2Session 获取session_key openId 以及 unionId。

碰到的问题:今日测试时,发现某微信账号在登录时,code2Session 接口未返回 unionId。

通过查询文档以及求助社区后,找到 getUserinfo 获取用户信息,可以拿到 unionId。但是,但是,但是,它需要用户确认授权。。。那么是不是这个用户每次登录都需要授权才能拿到 unionId ?这样的交互是否过于不友好?还是说 这个用户 授权一次过后,以后登录 code2Session 就可以返回unionId了?

请教各位大佬,小程序获取 UnionId 的最佳方式到底是啥?

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

2 个回答

  • 拾忆
    拾忆
    2020-08-27

    你把这些条件研究透就行,不要授权的就是方法2,但是方法2需要用户关注过公众号。

    2020-08-27
    有用 1
    回复
  • 浪花骑士
    浪花骑士
    2020-08-27

    unionId获取方式有以下几种

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

    不管哪种方式,用户都不会是静默获取到unionId的,

    比如支付,比如关注公众号,比如授权登录公众号/移动app,还有就是你说的wx.getUserinfo,

    至于最佳方式,看你业务需求是啥,结合业务的方式才是最佳的方式,

    然后你说的"是不是这个用户每次登录都需要授权才能拿到 unionId "

    其实不用每次都调wx.getUserinfo,调过一次wx.getUserinfo成功之后,

    就能拿到openid和unionId,

    下次再静默调用wx.login之后得到openid能查到之前得到的unionId是什么了

    2020-08-27
    有用 1
    回复 2
    • 黄金大镖客🧧
      黄金大镖客🧧
      2020-08-27
      谢谢,有考虑过使用openid,但是我这不止是小程序,还有网页,以后可能会有多个小程序,确认用户唯一性只能通过unionId,,,目前考虑解决方案是延长用户凭证有效期,减少用户登录次数,降低授权频次
      2020-08-27
      回复
    • 浪花骑士
      浪花骑士
      2020-08-27回复黄金大镖客🧧
      如果有要求用户绑定手机号,
      那可以用手机号做为用户的关联
      2020-08-27
      回复
登录 后发表内容
问题标签