经开发者反馈,由于同一公司下多个公众号之间需要用户帐号互通,微信开放平台提供了UnionID机制,来解决此问题。
通过获取用户基本信息接口,开发者可通过OpenID来获取用户基本信息,而如果开发者拥有多个公众号,可使用以下办法通过UnionID机制来在多公众号之间进行用户帐号互通。
1. 将多个公众号绑定到同一个微信开放平台(open.weixin.qq.com)帐号下,即同一个Union下
2. 通过获取用户基本信息接口中的UnionID来区分用户的唯一性,不过需要注意的是:公众号只有在被绑定到微信开放平台帐号下后,才会获取UnionID。只要是同一个微信开放平台帐号下的公众号,用户的UnionID是唯一的。换句话说, 同一用户,对同一个微信开放平台帐号下的不同应用,UnionID是相同的。
一、注册微信开放平台
过程略。
二、绑定微信公众号
点击顶部 “管理中心”,选择进入“公众号”,再点击“绑定公众号”
只有通过微信认证的公众号才能绑定。
三、获取用户基本信息
这是使用高级接口中的获取用户基本信息来实现,方法参考 微信公众平台开发获取用户基本信息
在第一个公众号下面获得的方倍的用户信息如下:
{ "subscribe": 1, "openid": "oLVPpjqs9BhvzwPj5A-vTYAX3GLc", "nickname": "方倍", "sex": 1, "language": "zh_CN", "city": "广东", "province": "深圳", "country": "中国", "headimgurl": "http://wx.qlogo.cn/mmopen/utpKYf69VAbCRDRlbUsPsdQN38DoibCkrU6SAMCSNx558eTaLVM8PyM6jlEGzOrH67hyZibIZPXu4BK1XNWzSXB3Cs4qpBBg18/0", "subscribe_time": 1375706487, "unionid": "oTBn-jt2RQSHdBoJQYFSdnZo8BBQ" }
在第一个公众号下面获得的方倍的用户信息如下:
{ "subscribe": 1, "openid": "ouBMEj6WFnUFBIUKe83VD7s7dft9", "nickname": "方倍", "sex": 1, "language": "zh_CN", "city": "广东", "province": "深圳", "country": "中国", "headimgurl": "http://wx.qlogo.cn/mmopen/utpKYf69VAbCRDRlbUsPsdQN38DoibCkrU6SAMCSNx558eTaLVM8PyM6jlEGzOrH67hyZibIZPXu4BK1XNWzSXB3Cs4qpBBg18/0", "subscribe_time": 1375726425, "unionid": "oTBn-jt2RQSHdBoJQYFSdnZo8BBQ" }
注意两个不同的用户信息
在不同的公众账号下openid是不一样的,而他们的unionid却是一样的。其他的信息不具有唯一性,没有比较意义。但基本信息是一致的。
这样就知道了关注两个公众账号的其实是同一个人。
四、UnionID的意义
对于拥有多个账号的企业来说,unionid可以帮助识别不同公众账号下的用户是否是同一个人。这样在不同账号下对该用户提供的服务可以连续起来了。
还可以去除重复关注的用户数,便于统计真实的关注用户总数。
更多微信公众平台开发UnionID相关文章请关注PHP中文网!