如何检查微信用户是否关注了公众号

在基于微信公众号的开发中,经常遇到的一个问题就是,需要检查一个微信账号,是否关注了公众号号(因为之后的获取用户基本信息、发送消息等,都必须基于已关注的前提)。

一般的操作流程是:

在页面基类或入口类中,追加检查,即用公众号的网页授权接口(snsapi_base形式)获取微信账号的 openid,然后基于 openid 获取用户的基本信息。

实际操作过程中,发现一个问题:使用微信测试号的时候,如果调用网页授权接口,微信直接弹窗报错,提示必须关注公众号;使用已认证的服务号调用时,不会报错,并且可以正常获取到用户的 openid,之后根据 openid 获取用户是否关注的处理都可以正常使用。这是什么情况呢?!! wtf...

> 经过多方查找资料及测试,终于了解到这样一种情况: > >已认证的服务号,不管用户是否关注,在调用网页授权接口(snsapi_base形式)时,都能获取到用户的 openid,而测试号不行,会直接报错!