如果你对UnionId、OpenId、wxopenid这三个概念很傻,那就看看这篇文章吧。了解微信账号体系可以帮助你更好的设计小程序。
01概念解释1。OpenIdOpenId是一个小程序/微信官方账号的用户标识,开发者可以通过这个标识来识别用户。类似wxopenid,同一个人用不同的小程序,会留下不同的小程序openid。获取applet OpenId不需要用户操作和授权。2.UnionIdUnionId是用户对同一主体微信/小程序/微信官方账号/app的标识。开发者需要在微信开放平台下绑定同一个账号主体。通过UnionId,开发者可以实现多个小程序、微信官方账号甚至app之间的数据交换。
一般情况下,在微信生态系统中,UnionId是用户身份的唯一标识,(如果业务涉及不同主体就不一定了)。
因此,如果一个开发者拥有多个移动应用、网站应用、公众账号(包括小程序),则可以通过UnionId来区分用户的唯一性。
3.微信官方账号OpenId(简称wxopenid)同一个人关注不同的微信官方账号,会留下不同的WX OpenId。大账号和小账号绑定在一起,所以会是同一个wxopenid。
同一个用户,在同一个小程序和微信官方账号下,都会有自己的OpenId,不一样,不能混用。
以上,所有的id都不包含敏感信息,只是普通的id。
02唯一性是指一个人在同一主题的小程序和微信官方账号下只有一个UnionId、多个wxopenid和多个小程序openid。UnionId是同一主题应用下的唯一身份证。可以查询对应的wxopenid和applet OpenId。所以UnionId的覆盖率是最高的。用户关注微信官方账号,访问微信官方账号下方的H5,可以同时获得UnionId和wxopenid。在浏览小程序的同时,可以同时获得小程序的UnionId和openid。无论你去哪里都可以得到UnionId。OpenId在单个小程序或微信官方账号中是唯一的。同一小程序体下有多个小程序时,每个小程序都有自己的OpenId,所以需要UnionId进行唯一标识,即UnionId是同一体下不同小程序的用户的唯一标识;
如何得到它?wxopenid视图:获取设备和用户信息。
2.OpenId通过调用wx.login获得临时登录凭证代码
app({ on launch:function { wx . log in({ success:function(RES){ if(RES . code){//发起网络请求// code:是登录证书(code)});}})前端获取代码后,传递给后端,后端调用接口获取session\_key和OpenId。界面如下:
3。UinionId先决条件:微信开放平台账号已完成开发者资格认证。微信开放平台绑定小程序获取UnionId流程:
调用接口wx.getUserInfo从解密的数据中获取UnionID。注意,这个接口需要用户授权。用户拒绝授权后,请开发者妥善处理。如果开发者账号下有相同题材的微信官方账号,且用户已关注该微信官方账号。开发者可以通过wx.login+ code2Session直接获取该用户的UnionID,无需用户再次授权。如果开发者账号下有相同主题的微信官方账号或移动应用,且用户已被授权登录微信官方账号或移动应用。开发者也可以通过wx.login+code2Session直接获取该用户的UnionID,无需用户再次授权。用户在小程序(暂不支持小游戏)中的支付完成后,开发者可以通过getPaidUnionId接口直接获取用户的UnionID,无需用户授权。注意:该界面仅在用户完成支付后5分钟内有效。请开发商妥善处理。小程序调用云函数时,如果开发者的账号下有相同主题的微信官方账号,并且用户已经关注了该微信官方账号,则可以通过云函数中的cloud.getWXContext获取UnionID。小程序调用云函数时,如果开发者的账号下有相同主题的微信官方账号或移动应用,且用户已被授权登录微信官方账号或移动应用,也可以通过云函数中的cloud.getWXContext获取UnionID。本文由@龙村厚生原创发布。每个人都是产品经理。未经许可,禁止复制。
来自Unsplash的图像,基于CC0协议。