首页 > 程序开发 > 微信开发 > 微信开发判断用户是否已关注公众号
网站建设、切图、企业建站、微信开发 联系QQ:404658186 tel:18716186715
2015
08-05

微信开发判断用户是否已关注公众号

在做微信开发时有时需要判断用户是否已关注公众号,以便于做出不同的回应,如提醒用户关注公众号等。

判断用户是否已关注公众号可能通过获取用户信息来操作。

  • 如果已关注公众号,那么微信返回的JSON数据包会包含”subscribe”: 1这样的信息。
  • 如果未关注公众号,那么微信返回的JSON数据包会包含”subscribe”: 0这样的信息。

开发者可通过OpenID到http GET请求方式调用接口来获取用户基本信息。

请求示例:

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

参数:

参数 是否必须 说明
access_token 调用接口凭证
openid 普通用户的标识,对当前公众号唯一
lang 返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语

以下是PHP来判断用户是否已关注公众号的示例

function verification($openid,$accestoken){

        $url = 'https://api.weixin.qq.com/cgi-bin/user/info?access_token='.$accestoken.'&openid='.$openid.'&lang=zh_CN';
        $json_Wxuser=json_decode(curlGet($url),true); 
        //获取用户信息后,判断subcribe == 0 那么就是未关注
        if(isset($json_Wxuser['subscribe']) && $json_Wxuser['subscribe'] == 0){
            //跳转到提示用户关注页面中
            $this->redirect('Guanzhu/index', array('id' => $id), 0, '页面跳转中...'); 
        }
    }

function curlGet($url){
 $ch = curl_init();
 $header = "Accept-Charset: utf-8";
 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
 curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
 curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
 curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 $temp = curl_exec($ch);
 return $temp;
}

本章需要掌握的知识点PHP CURL获取access_token,获取openid.

最后编辑:
作者:码农一号
这个作者貌似有点懒,什么都没有留下。
捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!

留下一个回复

你的email不会被公开。

*