小程序学习 —— unionid 和 openid 及它们的区别

本文详细解释了UnionID和OpenID的概念及其区别。OpenID是用户在一个应用中的唯一标识,而UnionID则是用户在同一微信开放平台账号下所有应用中的唯一标识。文中还举例说明了在公众号与小程序中两者的应用情况。

unionid 和 openid 分别代表什么?有什么区别?

openid:共28位。一个用户在一个应用中会有一个唯一的openid。

unionid:共29位。只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的unionid是唯一的。换句话说,同一用户,对应同一个微信开放平台下的不同应用,unionid是相同的。

总结:openid:同一用户对应同一应用唯一,unionid:同一用户对应同一个微信开发平台账号下的所有应用唯一。获取openid无需用户同意,获取用户基本信息需要用户授权同意。

比如你们公司有一个公众号,一个小程序。

用户在公众号中有一个唯一openid,在小程序中有一个唯一的openid,但他们的openid不同,而unionid相同。

 

unionid 的获取途径

 

 

### 微信小程序 AppID 应用 APP 使用相同 OpenID 的可能性 在微信生态体系内,OpenID 是用于标识用户的唯一身份识别码。对于不同类型的客户端(如微信小程序移动应用程序),即使这些应用归属于同一开发者账号下的不同项目,每个项目的用户数据是相互独立存储的。 具体来说: - **微信小程序** 中的 `openid` 是由微信公众平台分配给每一个通过该小程序登录的用户的唯一标识符[^1]。 - 对于普通的 **移动端应用** 或者其他形式的应用程序而言,其使用的 `openid` 则是由微信开放平台提供的 SDK 所生成,并且仅限于此特定应用内部有效[^2]。 因此,在大多数情况下,同一个用户在同一开发者名下的微信小程序其他原生应用之间不会共享相同的 `openid`。这是因为两者分别隶属于不同的业务逻辑技术框架之下,各自维护着一套独立的身份验证机制以及相应的数据库记录[^3]。 然而值得注意的是,如果希望实现跨平台统一用户管理体系,则可以通过引入更高层次的概念——`UnionID` 来达成目标。只要两个应用都绑定了同一个公众号或小程序主体,并且获得了用户的同意授权后,便能够获得一致性的 `unionid` 字段来表示这个唯一的自然人实体。 ```javascript // 示例代码展示如何调用微信API获取openId wx.login({ success(res) { if (res.code) { wx.request({ url: 'https://api.weixin.qq.com/sns/jscode2session', data: { appid: YOUR_MINI_PROGRAM_APP_ID, secret: YOUR_SECRET_KEY, js_code: res.code, grant_type: 'authorization_code' }, success(result){ console.log('Received openid:', result.data.openid); } }); } else { console.error('Login failed! ', res.errMsg); } } }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值