脱离微信开放平台绑定公众号个数问题
背景
微信公众号数量太多,无法关联用户在各个公众号的身份
用户唯一ID 概念 与 实现原理
概念 unionid:被绑定到开发平台的公众号都能获取对应的unionid。
openid:各个公众号的 openid 都不一样。
简答可以理解为,unionid 为开放平台的用户唯一ID,openid 为公众号的用户唯一ID。
原理
剖析: 把开放平台也当成一个公众号,用户访问公众号就会被生成一个唯一ID,unionid;
公众号 A, 用户访问公众号A则会生成一个A 的唯一表示, openid;
unionid 与 openid 都为用户的唯一标识只是区分在不同的公众号;
公众号A绑入开放平台时,这时就会建立两个 标识之间的关系,unionid->openidA, 公众号B unionid->openidB。
总结: 把用户不同的唯一标识openid与用户的其中一个唯一标识openid绑定,或者创建一个新的唯一标识unionid同时绑定其他不同的唯一标识openid
实现 准备:两个公众号,一个作为授权并产生 unionid的公众号A,一个为业务公众号B。
流程:
1、用户B公众号;
2、授权得到 B 的b_openid;
3、带着b_openid 到公众号A授权;
4、A 检查是否存在 a_openid 绑定的 unionid,存在则添加一条 b_openid 绑定的记录,不存在则生成一个 unionid 同时绑上 A 和 B,就这样建立了 A 和 B 的关系。
【脱离微信开放平台绑定公众号个数问题】实现:
1、换取 B 公众号的 code,重定向至 redirect_url;
2、在 redirect_url 中请求获取 B公众号的 openid,判断 b_openid 有没有绑定 unionid,无则继续下面步骤;
3、得到b_openid 并拼接 a_redirect_url 把 b_openid 和最后再A授权完的重定向地址url,获取 A 公众号的code;
4、在 a_redirect_url 中获取A 的 a_openid,检查 a_openid是否已经绑定了unionid,没有则生成unionid 并绑定A;
5、获取 a_openid 对应的 unionid,并绑定 b_openid 与 unionid;
6、重定向至最终地址 url。
推荐阅读
- 基于微信小程序带后端ssm接口小区物业管理平台设计
- 员工的微信朋友圈是公司的宣传阵地吗()
- FBI怎么和恐怖分子谈判
- 分享!如何分分钟实现微信扫二维码调用外部浏览器打开指定页面的功能
- 微信小程序基础知识
- 使用Promise对微信小程序wx.request请求方法进行封装
- 15.Kafka
- 190403|190403 - Jmeter压测接口
- 茶事|茶事 | 单丛里的一泡奇葩
- 微信小程序请求接口格式