当前位置:网站首页>微信账户体系科普:什么是UnionId、OpenId与wxopenid?
微信账户体系科普:什么是UnionId、OpenId与wxopenid?
2022-08-10 00:28:00 【郭子安不爱学编程】
如果你对 UnionId、OpenId、wxopenid这三个概念傻傻分不清,那看这篇文章就对了。了解微信账户体系,能帮助你更好地做小程序设计。
01 概念解释
1. 小程序OpenId
OpenId 是一个用户对于一个小程序/公众号的标识,开发者可以通过这个标识识别出用户。类似 wxopenid,同一个人,使用不同的小程序,会留下不同的小程序 OpenId 。获取小程序 OpenId 无需用户操作和授权。
2. UnionId
UnionId 是一个用户对于同主体微信小程序/公众号/APP的标识,开发者需要在微信开放平台下绑定相同账号的主体。开发者可通过 UnionId,实现多个小程序、公众号、甚至APP 之间的数据互通。
正常情况下,微信生态中,UnionId 是用户身份的唯一标识,(如果业务涉及不同主体,不一定)。
所以,如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过 UnionId 来区分用户的唯一性。
3. 公众号OpenId(简称 wxopenid)
同一个人,关注不同的公众号,会留下不同的wxopenid。大帐号、小帐号因为绑定在一起了,所以会是同一个wxopenid。
同一个用户,在同主体的小程序和公众号下,会有各自的 OpenId ,不相同,不能混用。
以上,所有 ID 均并不包含敏感信息,只是个普通的 ID。
02 唯一性说明
1、一个人,在同主体的小程序、公众号等下面只有 1 个 UnionId,有多个 wxopenid 和多个小程序OpenId 。
2、UnionId是同主体应用下唯一身份证,可以查询对应的wxopenid和小程序OpenId。因此,UnionId 的覆盖率是最高的。当用户关注公众号、逛公众号下面H5时,可以同时获取 UnionId、wxopenid。而逛小程序时,可以同时获取小程序 UnionId、openid。不管逛哪都能拿到 UnionId。
3、在单个小程序或公众号里,OpenId 是唯一的。当同一个小程序主体下有多个小程序时,每个小程序有自己的 OpenId,因此需要 UnionId 进行唯一身份标识,即:UnionId 是同个主体下不同小程序的用户唯一标识;
03 获取方式
1. wxopenid
查看:获取设备及用户信息
2. OpenId
通过调用 wx.login() ,获取临时登录凭证凭证 code
App({
onLaunch: function() {
wx.login({
success: function(res) {
if (res.code) {
//发起网络请求
// code: 就是登录凭证(code)
}
}
});
}
})
前端获取到 code 后,将 code 传给后端,后端调用接口获取 session_key 和 OpenId ,接口如下:
https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
3. UinionId
前提条件:
微信开放平台帐号已完成开发者资质认证
微信开放平台绑定小程序
获取 UnionId 流程:
1、调用接口 wx.getUserInfo ,从解密数据中获取 UnionID。注意本接口需要用户授权,请开发者妥善处理用户拒绝授权后的情况。
2、如果开发者帐号下存在同主体的公众号,并且该用户已经关注了该公众号。开发者可以直接通过 wx.login + code2Session 获取到该用户 UnionID,无须用户再次授权。
3、如果开发者帐号下存在同主体的公众号或移动应用,并且该用户已经授权登录过该公众号或移动应用。开发者也可以直接通过 wx.login + code2Session 获取到该用户 UnionID ,无须用户再次授权。
4、用户在小程序(暂不支持小游戏)中支付完成后,开发者可以直接通过 getPaidUnionId 接口获取该用户的 UnionID,无需用户授权。注意:本接口仅在用户支付完成后的5分钟内有效,请开发者妥善处理。
5、小程序端调用 云函数 时,如果开发者帐号下存在同主体的公众号,并且该用户已经关注了该公众号,可在云函数中通过 cloud.getWXContext 获取 UnionID。
6、小程序端调用 云函数 时,如果开发者帐号下存在同主体的公众号或移动应用,并且该用户已经授权登录过该公众号或移动应用,也可在云函数中通过 cloud.getWXContext 获取 UnionID。
边栏推荐
猜你喜欢

DALL·E-2是如何工作的以及部署自己的DALL·E模型

生物素叠氮化物中的(CAS:1527486-16-3TAMRA-azide-PEG3-Biotin)反应的特点!

02|运算符

What should I do if there is no sound after reinstalling the system in win10?

【CAS:41994-02-9 |Biotinyl tyramide】Biotinyl tyramide price

嵌入式Qt-实现两个窗口的切换

【kali-密码攻击】(5.1.2)密码在线破解:Medusa

c语言指针练习题

Biotin-Cy2 Conjugate, Biotin-Cy2 Conjugate_Cy2 Biotin Conjugate

使用 GoogleTest 框架对 C 代码进行单元测试
随机推荐
基于Web的疫情隔离区订餐系统
Penetration Testing and Offensive and Defense Confrontation - Vulnerability Scanning & Logic Vulnerability (Part1)
分析 20 个 veToken 生态系统协议 这种代币模型为何受欢迎?
生物素叠氮化物中的(CAS:1527486-16-3TAMRA-azide-PEG3-Biotin)反应的特点!
c语言文件基本操作总结
365天挑战LeetCode1000题——Day 052 逐步求和得到正数的最小值 贪心
地雷数量求解
什么是一网统管?终于有人讲明白了
Redisson 分布式锁
assert利用蚁剑登录
【ROS2原理10】Interface数据的规定
开发IM即时通讯容易吗?需要什么技术
Character Statistics Histogram
Koa中间件next实现
技术分享 | 接口自动化测试如何处理 Header cookie
XSS高级 svg 复现一个循环问题以及两个循环问题
基于SSM实现手机销售商城系统
足不出户也能看星空
3.9 - 正规表达式和正规集 3.10 - 有限自动机
FITC标记生物素(FITC-生物素|CAS:134759-22-1)有哪些知识了?