想给订阅号做一个网页,如果进入后发现没关注微信公众号就提示关注。但是微信对订阅号做了限制,无论是否认证都是不能网页授权获取用户信息的,这就给网页内直接判断用户是否关注该订阅号造成了困难。
解决这个问题通过另一个网站授权或认证的服务号间接完成以下以认证的服务号为例说明下如何在网页中判断订阅号是否被关注的具体思路:
1、在微信开放平台里面,将订阅号和作为中介的服务号添加进去。这是由于同一粉丝在不同公众号之间的openid是不一样的,添加进微信开放平台后,不同粉丝会有一个额外信息:unionid,这是一致的;
2、同步订阅号的粉丝数据到数据库中,并且每次用户关注或取消订阅号时,数据库的粉丝数据都会被更新;
3、进入网页后通过服务号的网页授权获取用户信息,这时就获得了unionid,查询订阅号在数据库中是否有该unionid的粉丝,如果没有就提示关注;如果没有有该粉丝,但是没有关注(说明取消过关注),也提示关注。
这里有一个问题,不论是通过网站授权还是服务号授权获取用户信息,都会有如下的提示,而图标就是公众号的图标而不是订阅号的图标。这个细节是需要注意的。
本来是挺简单一件事,不过被微信平台的设计整得复杂了。