<返回更多

微信账户体系科普:什么是UnionId、OpenId与wxopenid?

2020-04-15    
加入收藏

如果你对 UnionId、OpenId、wxopenid这三个概念傻傻分不清,那看这篇文章就对了。了解微信账户体系,能帮助你更好地做小程序设计

微信账户体系科普:什么是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 唯一性说明

 

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

前提条件:

  1. 微信开放平台帐号已完成开发者资质认证
  2. 微信开放平台绑定小程序

获取 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。
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>