UnionID机制说明

如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。


我们系统都做了移动应用、网站应用、和公众帐号的微信登入,我们后端这边是有微信绑定账号功能的。所以需要在微信的给出的用户唯一的unionID判断该用户是否已绑定微信号。


微信小程序API详情的官方链接: https://developers.weixin.qq.com/miniprogram/dev/api/api-login.html#wxloginobject

微信官方的流程图:

1.png


前端调用wx.login获取code,然后将code返回给后台拿着code与appid,secret访问微信接口获取session_key、openid和 unionId


看一下拿code请求成功后,微信官方给出的返回结果:

2.png

我当时返回的结果就是不满足UnionID情况下的、此处我黑人问号三连???

再看看微信官方给出的解释、怎么才能满足UnionID的情况呢?

3.png

所以我就让前端同事改逻辑,前端需要调用完wx.login函数后获得code、紧接着前端再调用wx.authorize函数让用户授权同意再将刚刚调用完wx.login获取到的code请求后端接口(前端的这里调用函数貌似是有顺序的 wx.login ----> wx.authorize)


然后............................


还是只返回了session_key、openid  还是没有UnionID !!!!!麻蛋!


划重点、检查微信开放平台的管理中心的小程序是否添加绑定:

开发资质未认证的话,需要申请开发者资质认证(需要交资料and费用)

4.png

认证通过后、去管理中心、小程序、绑定小程序(小程序登入账号就是微信公众号的账号and密码)

5.png

绑定好后、再次访问小程序接口、就可以获取到UnionID了

6.png

------------------------------------------------------------------------性感分割线-------------------------------------------------------------------------------

7.png

----------------------------------------------------------------------------------------------------------------------------------------------

8.png



原文连接:https://www.cnblogs.com/yehuisir/p/10959165.html

欢迎留言