1.通过服务号A的微信网页授权
,以scope为snsapi_userinfo的模式,获得了用户基于服务号A的openid(A),unionid,以及其他包含用户信息的数据。
https://mp.weixin.qq.com/wiki...
2.现在希望在网页上,判断用户是否已经关注订阅号B
3.通过订阅号B的获取用户基本信息(UnionID机制)
,返回的json包中有一个参数subscribe
,是用户是否订阅该公众号标识,值为0时,代表此用户没有关注该公众号,拉取不到其余信息。
https://mp.weixin.qq.com/wiki...
4.请求订阅号B的获取用户基本信息(UnionID机制)
的json包,需要两个参数。
参数 | 是否必须 | 说明 |
---|---|---|
access_token | 是 | (基础access_token,并非网页授权access_token) |
openid | 是 | 普通用户的标识,对当前公众号唯一 |
5.订阅号没有权限通过网页授权的方式获得openid(https://mp.weixin.qq.com/wiki...)
。但是文档 在获取用户基本信息(UnionID机制)
中提到
在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID
但是在网页上,是未知用户是否已关注的,那么要如何获得用户基于订阅号B的 openid ?如何去判断用户是否已经关注订阅号B?
登录需要自己做一个JWT或者加密cookie来实现。
提供一个解决思路,要求用户关注之后回复关键字,此时即可获得关注者的openid(B),将其存入数据库,自己做若干不同公众号用户管理的表。
用户回复的关键字,将触发公众号自动回复,返回一个链接,让用户点击进入自己的一个登录链接,用户在网页上登录时,拿到openid(B)再跳到业务页面。
页面是基于服务号A的,通过JWT或者加密cookie来重新识别跳回业务页面的用户,然后拿着对应的openid(B)去判定是否关注。