文章目录
- 1.什么是 OpenId 和 UnionId?
- 2.获取 OpenId 和 UnionId 的办法
- 3.备注
前言:最近开发小程序,需要通过用户登录的唯一值存储数据,查看手册发现要使用的是 “OpenId” 和 “UnionId”
1.什么是 OpenId 和 UnionId?
在微信的开发体系中,OpenID
和UnionID
是用于标识用户的两种重要机制,特别是在处理微信公众平台、小程序和开放平台的用户管理时。
OpenID
OpenID
是微信用户在某个微信公众号或小程序中的唯一标识。在不同的公众号或小程序中,同一个微信用户的 OpenID 是不同的。
UnionID
UnionID
是在微信开放平台中,统一识别用户的唯一标识。如果开发者拥有多个移动应用、网站应用和公众帐号,用户在这些应用中唯一的身份标识就是 UnionID
(个人理解是分享的时候标识的用户ID值)。
2.获取 OpenId 和 UnionId 的办法
使用wx.login
获取code
值,调用 code2Session 接口获取 OpenId(用户在当前小程序的唯一标识)
和 UnionId(微信开放平台账号下的唯一标识)
,实现代码:
async getUserInfo(){wx.login({success (res) {if (res.code) {console.log('code:', res.code)//发起网络请求wx.request({url: 'https://api.weixin.qq.com/sns/jscode2session',data: {appid:'xxxxxxxxx', // 见下解释secret:'xxxxxxxx', // 见下解释js_code:res.code,grant_type:'authorization_code' // 见下解释}})} else {console.log('登录失败!' + res.errMsg)}}})
}
appid
和secret
获取:
grant_type
是调用接口的参数,此处只需填写 authorization_code
接口返回数据
openid
和 session_key
3.备注
通过接口 code2Session 获取的用户登录凭证有效期为五分钟。
rid有几种错误码:
rid: 64407db4-787c85db-334c5ff0 --- code过期
rid: 64407db4-6cdf4a6f-6f3f7836 ---code重复使用
rid: 64407db4-6f6c2ac3-12a35a73 ---code错误