100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 脱离微信开放平台绑定公众号个数问题

脱离微信开放平台绑定公众号个数问题

时间:2022-08-25 14:34:38

相关推荐

脱离微信开放平台绑定公众号个数问题

背景

微信公众号数量太多,无法关联用户在各个公众号的身份

用户唯一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。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。