判断是否关注公众号

根据openid和access_token,用get方式来请求以下地址:

https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID

返回的json中subscribe=0就是没关注,subscribe=1就是已经关注
### 判断用户是否关注微信公众号的方法 为了实现这一功能,可以采用OAuth2.0授权机制来获取用户的OpenID以及其订阅状态。具体流程涉及两个主要阶段: #### 获取授权码 当用户访问应用时,需重定向至微信服务器并请求用户同意授权。此过程会返回一个临时的`code`参数作为授权凭证。 ```php $redirect_uri = urlencode("http://yourdomain.com/callback.php"); header("Location:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri={$redirect_uri}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect"); ``` #### 使用授权码换取Access Token 和 OpenID 一旦获得上述提到的`code`,便可以通过POST请求向微信API提交以交换`access_token`和`openid`。其中`openid`用于唯一标识一位用户。 ```php $url = "https://api.weixin.qq.com/servlet/access_token?grant_type=authorization_code&appid=APPID&secret=SECRET&code=CODE"; $response = file_get_contents($url); $data = json_decode($response, true); if (isset($data['errcode'])) { echo 'Error:' . $data['errmsg']; } else { $openid = $data['openid']; // 用户的唯一标识 } ``` #### 查询用户信息确认关注情况 最后一步是调用用户信息接口,传入得到的`openid`,以此查询该账号的具体资料,其中包括了`subscribe`字段用来表示用户是否已经订阅了公众账号[^1]。 ```php $user_info_url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=" . $data['access_token'] . "&openid=$openid&lang=zh_CN"; $user_response = file_get_contents($user_info_url); $user_data = json_decode($user_response, true); if ($user_data['subscribe']) { echo "The user has subscribed."; } else { echo "The user hasn't subscribed yet."; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值