美文网首页
微信UnionId、OpenId与wxopenid

微信UnionId、OpenId与wxopenid

作者: AC编程 | 来源:发表于2022-04-28 15:09 被阅读0次

一、概念解释

1.1 小程序OpenId

OpenId是一个用户对于一个小程序/公众号的标识,开发者可以通过这个标识识别出用户。类似wxopenid,同一个人,使用不同的小程序,会留下不同的小程序OpenId。获取小程序OpenId无需用户操作和授权。

1.2 UnionId

UnionId是一个用户对于同主体微信小程序/公众号/APP的标识,开发者需要在微信开放平台下绑定相同账号的主体。开发者可通过UnionId,实现多个小程序、公众号、甚至APP之间的数据互通。

正常情况下,微信生态中,UnionId是用户身份的唯一标识,(如果业务涉及不同主体,不一定)。所以,如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过UnionId来区分用户的唯一性。

1.3 公众号OpenId(简称 wxopenid)

同一个人,关注不同的公众号,会留下不同的wxopenid。大帐号、小帐号因为绑定在一起了,所以会是同一个wxopenid。

同一个用户,在同主体的小程序和公众号下,会有各自的OpenId,不相同,不能混用。

以上,所有ID均并不包含敏感信息,只是个普通的ID。

二、唯一性说明

一个人,在同主体的小程序、公众号等下面只有1个UnionId,有多个wxopenid和多个小程序OpenId。

UnionId是同主体应用下唯一身份证,可以查询对应的wxopenid和小程序OpenId。因此,UnionId 的覆盖率是最高的。当用户关注公众号、逛公众号下面H5时,可以同时获取UnionId、wxopenid。而逛小程序时,可以同时获取小程序UnionId、openid。不管逛哪都能拿到UnionId。

在单个小程序或公众号里,OpenId是唯一的。当同一个小程序主体下有多个小程序时,每个小程序有自己的OpenId,因此需要UnionId进行唯一身份标识,即:UnionId 是同个主体下不同小程序的用户唯一标识;

三、获取方式

3.1 wxopenid

查看:获取设备及用户信息

3.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.3 UinionId
3.3.1 前提条件:

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

3.3.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。

原文链接:https://blog.csdn.net/weixin_28917279/article/details/112539751

相关文章

网友评论

      本文标题:微信UnionId、OpenId与wxopenid

      本文链接:https://www.haomeiwen.com/subject/bbldyrtx.html