详解微信公众平台UnionID和OpenID的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了详解微信公众平台UnionID和OpenID的区别相关的知识,希望对你有一定的参考价值。

    OpenID: 普通用户的标识,对当前开发者帐号唯一。一个openid对应一个公众号。

    UnionID :用户统一标识。针对一个微信开放平台帐号下的应用,同一用户的unionid是唯一的。

微信的用户隐私策略:每个接入微信的应用(公众号、APP)就像一个独立的商场,用户使用这些应用就像逛商场,商场用会员卡识别用户,类似的,我们根据商场名字为每个用户生成了一张专属会员卡(openid),每张会员卡只能在对应的商场才能够使用,你不能拿着沃尔玛的会员卡去华润万家积分。这是一种安全的授权方式,如果没有这个会员卡,直接暴露微信号,就相当于拿着身份证去逛商场,丢失一个会员卡号远比丢失身份证号要安全。

那么问题来了,都是万达集团,万达大歌星与万达商场希望做到会员卡通用。微信在这里做了一个打通机制,对于同一个企业,在用户属性里面加了一个企业属性(UnionID),方便同一个企业在不同的产品中识别到同一个用户。

这个机制伴随着微信联合登录已经在微信开放平台(open.weixin.qq.com)推出了。获得了开放平台认证的企业,可以绑定10个手机应用、10个网站、10个公众号,他们对应的用户信息也可以互联互通。

强烈提示:对于开发团队而言,在接入微信登录之初,往往会忽视用户的UnionID,只记录了openid。这会导致后期账号打通时候,需要用户重新授权,运营成本增高,遇到此类问题的团队不在少数。

参考技术A openID是唯一的,公众号只有绑定在微信开发平台下面,才会有unionid,如果只有一个公众号,不用管unionid,只用openid,但是有多个应用,比如微信里面有,pc端也要微信扫码登录,尽早把公众号绑定到微信开发平台,然后使用unionid本回答被提问者采纳

微信小程序UnionID 和授权机制

参考技术A

如果开发者拥有多个移动应用,网站应用,公众号和小程序,可以通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开发平台账号下的移动应用,网站应用,公众号和小程序,用户的 UnionID 是唯一的。 换句话说,同一个用户,对同一个微信开发平台的不同应用,UnionID是唯一的。

获取完用户信息后通过 wx.login 获取用户的 code 临时登陆授权码,传给后台服务器调用 code2session 获取用户的 openid (用户的唯一表识,保存本地)。然后将openid 和用户信息录入用户表,回调之后前端拿到录入用户的生成的userId,保存到本地。保存到本地的openid和userId会在用户卸载小程序后失效。如果失效,用户需要重新授权。

开发者可通过OpenID来获取用户基本信息。请使用https协议。

参数:

公众号和小程序均可以使用 AppID 和 AppSecret 调用接口来获取 access_token 。 AppID 和 AppSecret 可在“微信公众平台-开发-基本配置”页中获得(需要已经成为开发者,且帐号没有异常状态)。调用接口时,请登录“微信公众平台-开发-基本配置”提前将服务器IP地址添加到IP白名单中,点击查看设置方法,否则将无法调用成功。小程序无需配置IP白名单。

以上是关于详解微信公众平台UnionID和OpenID的区别的主要内容,如果未能解决你的问题,请参考以下文章

OpenID 和 OAuth 有啥区别

微信 appid openid和UnionID

微信“unionid”是啥意思?

微信openid和UnionID (多公众号如何判断是否是同一人)

微信的openID、unionID等总结

微信公众平台 获取用户基本信息(UnionID机制)