2019年03月04日 08:14 · 阅读 26391
今天想介绍关于OpenID和UnionID这两个ID的理解方式。 用户唯一标识,请注意,在未关注公众号时,用户访问公众号的网页,也会产生一个用户和公众号唯一的OpenID 通过获取用户基本信息接口,开发者可通过OpenID来获取用户基本信息,而如果开发者拥有多个公众号,可使用以下办法通过UnionID机制来在多公众号之间进行用户帐号互通。只要是同一个微信开放平台帐号下的公众号,用户的UnionID是唯一的。换句话说,同一用户,对同一个微信开放平台帐号下的不同应用,UnionID是相同的。 我是一条华丽的分界线 假设微信号是我们作为微信用户的唯一标识,那么
用户 A 的微信号是 _1232sdasf ,用户 B 的微信号是 helloBBBBB 那我们在获取用户微信的时候,微信肯定不会返回具体的微信号给我们,对吧? 为什么不呢?如果返回微信号,那我们就可以根据微信号来加很多很多很多人啦~~~官网解释
OpenID
UnionID
理解方式
微信号
想想微信号落入了有心机的人手里,是件多麽可怕的事....
所以,在用户授权的信息中,是不会涉及到微信号的信息的。
那通过什么来识别用户呢?
请继续往下看 ↓↓↓↓↓↓↓
OpenID
申请公众号、小程序的时候,都有一个 APPID,这个是当前账号的标识。另外还有一个APPSERECT,用于解密数据使用。
OpenID就是用户在某一公众平台下的标识。
OpenID = 用户微信号 & 公众平台APPID(两个数据加密得到的字符串)
举个🌰
小明微信号是 T1928738ss,公众号 A 是 A商城,公众号 B 是 B商城。
此时进入 A 商城,则 A 商城获取到的小明的 openID 是 33487793847837734,
此时进入 B 商城,则 B 商城获取到的小明的 openID 是 48423948753248900,
小明在A和B商城之间拥有不同的身份标识,且身份标识是唯一的
也就是说,在一个公众号内,不管进入了多少次,还是一个 openID
同理,小明在进入小程序C、小程序D、公众号F ... 这些系统中,其实后台获取到的OpenID 都是不同的。
那么,如果一个商家,既想在公众号上做商城,也想在小程序端做一个商城,小明进入之后,会产生两个不同的OpenID,岂不是有两个小明用户?这十分奇怪吧... 简单想像一下,你从公众号里进入一个网页版的拼夕夕商城,账号里有10的拼豆,但是进入小程序版的拼夕夕商城,账号里只有1个拼豆,是不是很茫然?是谁模仿了我的帅.....
那么为了防止这样的“怪异”现象发生,我们要解决的问题是:要如何确定小明这个人在进入“同一个”商城中,是“同一个”用户呢?
请继续往下看 ↓↓↓↓↓↓↓
UnionID
先引出一个开放平台的概念
微信开放平台作为第三方移动程序提供接口,使用户可将第三方程序的内容发布给好友或分享至朋友圈,第三方内容借助微信平台获得更广泛的传播。从而形成了一种主流的线上线下微信互动营销方式。
结合UnionID 的解释
UnionID机制的作用说明:如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为同一用户,对同一个微信开放平台下的不同应用(移动应用、网站应用和公众帐号),unionid是相同的。
开放平台的功能有很多,不过我们今天的目标就是要把公众号和小程序连接在同一个开放平台下。
在申请开放平台的时候,也得到这个开放平台的 APPID 和 APPSERECT。
UnionID = 用户微信号 & 开放平台APPID(两个数据加密得到的字符串)
把公众号和小程序连接在同一个开放平台下之后,无论小明从小程序进入,还是从公众号进入,在后台获取信息中就会得到的openID和UnionID,OpenID是不同的,UnionID 是相同的,通过UnionID就可以明确知道是小明这一个人。
总结
- OpenID 是 微信号与公众平台APPID 加密后得到的用户标识。
- UnionID 是 微信号与开放平台APPID 加密后得到的用户唯一标识,前提是各个公众平台需要先绑定到同一个开放平台,才能从各平台中获取到同一个UnionID。
你的点赞和关注,是对我们最大的鼓励!
喜欢就关注我们吧!
作者简介:土拨鼠,芦苇科技web前端开发工程师,代表作品:飞花亭小程序、续航基因、YY表情红包、YY叠方块直播竞赛小游戏。擅长网站建设、公众号开发、微信小程序开发、小游戏、公众号开发,专注于前端框架、服务端渲染、SEO技术、交互设计、图像绘制、数据分析等研究,有兴趣的小伙伴来撩撩我们~
访问 www.talkmoney.cn 了解更多
荷花微笑
前言:开发小程序和微信公众号之前,一定要充分理解openID及unionID的区别,唯一标识很重要,免得后期填坑
一、公众号openID和小程序openID说明:
为了识别用户,每个用户针对每个公众号或小程序等应用会产生一个安全的OpenID
- 在小程序中,openID是小程序的普通用户的一个唯一的标识,只针对当前的小程序有效
- 同理在公众号中openID是公众号的普通用户的一个唯一的标识,只针对当前的公众号有效
同一个微信用户在小程序和公众号上的openid是不同的
二、UnionID 机制说明
微信的unionid机制说明:
如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的 UnionID 是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。
简而言之,unionid是用来说明多个应用下用户身份一致性的问题。相比较而言,由于在同一个应用下每个用户的openid是唯一的,因此openid也是也可以用来标记用户身份,但是仅限于在同一个应用中。对于不同的应用,每个用户的openid是不一样的,要想在不同应用间识别用户的唯一性只可以用unionid。
三、举例说明
微信开放平台帐号下小张有一个公众号A和小程序B,
用户小王访问公众号A生成openidA,openidA在公众号A应用中是唯一的,
小王同时访问小程序B,生成openidB,openidB在小程序B中是唯一的
如果我们现在要确定公众号A的用户小王与小程序B的用户小王是否为同一个用户小王,我们需要
用户的unionid来解决这个问题,即unionid是用来确定不同应用下用户的唯一性。
参看文档:UnionID 机制说明 | 微信开放文档微信开发者平台文档//developers.weixin.qq.com/miniprogram/dev/framework/open-ability/union-id.html