微信小程序_登录获取unionid

首先公司开发了小程序, 公众号网页和app等, 之前都是用的openid来区分用户, 但openid只能标识用户在当前小程序或公众号里唯一, 我们希望用户可以在公司各个产品(比如公众号, 小程序, app里的微信登录)之间, 可以保持用户的唯一性, 还好微信给出了unionid.

下面分两步介绍一下 微信小程序 获取unionid的过程.


1. 首先 在微信公众平台注册小程序 , 然后在小程序上模拟登录流程.

微信小程序_登录获取unionid_第1张图片
简单登录流程

注 : 这里只是简单登录流程, 实际中需要维护登录态, wx.checkSession() 可以检查此时的登录态是否过期. 若过期, 要再次调用 wx.login() , 否则调用 wx.getUserInfo() 会拿不到用户数据.

注 : 此时后台服务器接收到你发的 code, 再用appid和appSecret等请求微信可以拿到openid和session_key encrypted_data, iv 等数据, 通过appId, appSecret解密可以获得openid和其他信息. (此时解出来并没有unionid, 接下来看第二步)


2. 接下来到 微信开发平台去 绑定开发账号.

一开始我也是对开放平台, 公众平台什么的有点懵, 后来看到开发平台的管理中心才明白,  这些移动应用, 网站应用 或者公众号/小程序 能绑定同一个微信开发平台账号下, 则同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。

微信小程序_登录获取unionid_第2张图片
开发平台设置

大抵就是上图这样设置吧 , 立刻生效(有时也会过几分钟吧) ,然后后台就能解密出unionid了.

注 : 如果之前没有这么多小程序,公众号开发的话, 可能一直用的openid作为用户的唯一标识(就像我这样), 不过也不用麻烦替换之前的openid, 可以用unionid直接建立自己的用户系统, 其实就是一个unionid下多个openid或手机号(当然要提前绑定了), 这样用户每次登录, 后台多一次查询就ok了

当然了, 微信开发平台你要先认证才行....

微信小程序_登录获取unionid_第3张图片
认证了就是这样的

你可能感兴趣的:(微信小程序_登录获取unionid)