UnionId到底该如何获取?
发布于 5 年前 作者 longping 6047 次浏览 来自 问答

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

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

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

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

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

2 回复

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

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是什么了

回到顶部