添加后台代理代码
This commit is contained in:
46
codes/agent/game/dlweb/api/document/微信开发判断用户是否已关注公众号.txt
Normal file
46
codes/agent/game/dlweb/api/document/微信开发判断用户是否已关注公众号.txt
Normal file
@@ -0,0 +1,46 @@
|
||||
在做微信开发时有时需要判断用户是否已关注公众号,以便于做出不同的回应,如提醒用户关注公众号等。
|
||||
|
||||
判断用户是否已关注公众号可能通过获取用户信息来操作。
|
||||
|
||||
如果已关注公众号,那么微信返回的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;
|
||||
}
|
||||
Reference in New Issue
Block a user