先来看一段微信小程序对于unionid介绍
如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。
同一个微信开放平台下的相同主体的App、公众号、小程序,如果用户已经关注公众号,或者曾经登录过App或公众号,则用户打开小程序时,开发者可以直接通过wx.login获取到该用户UnionID,无须用户再次授权。
第一步准备
微信开放平台绑定微信公众号和小程序
第二步准备
相同主体:
进入微信公众号点击右上角小人查看资料中 的帐号主体 需要和小程序微信公众平台 设置—>基本设置中的 帐号主体保持一致
第三步准备
公众号和小程序同时绑定开发者账号
第四部
最坑的一句话开发者可以直接通过wx.login获取到该用户UnionID
这句话根本就不是简单的使用wx.login就可以获取到 UnionID ,还是需要服务器端配合的 , ( 这文档写的有点让人误会 )
wx.login({success: res => {let JSCODE = res.code//获取微信codewx.request({url: 'https://XX.XXX.com.cn/XXXX',//项目服务器 ( 需要添加到小程序服务器一栏 )header: { 'content-type': 'application/x-www-form-urlencoded' },method: 'POST',data: {code: JSCODE, //将code传给服务器(因为需要服务器去拿openid和unionid)sign: 'XXXXX' //你自己需要的其他参数},success: function (respotion) {let res = respotion.data;if (res.status == 'ok'){console.log(res)console.log('获取数据成功')} else if (res.status == 'error'){console.log(res.data)}}})}})
第五步服务器获取 openid和unionid
https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
需要四个参数
返回结果