php判断用户是否关注微信公众号

前端技术 2023/09/09 PHP

最近要做一个微信平台的投票活动,需要在关注公众号之后才能参与投票,那么,如何判断用户是否关注了公众号呢?

第一想法是,通过获取公众号的关注列表,然后搜索列表中是否有参与者的openid

但是马上发现一个问题,就是这种方法需要每次都要获取一下关注列表,而且,当公众号的粉丝比较多时,这种方法就比较吃力了。

下面使用php方法,判断用户是否关注了公众号:

<?php
    $access_token = \"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=XXXXXXXXXXXXXXXXXX&secret=XXXXXXXXXXXXXXXXXXXXXXXXXX\";
    $access_msg = json_decode(file_get_contents($access_token));
    $token = $access_msg->access_token;
    $subscribe_msg = \"https://api.weixin.qq.com/cgi-bin/user/info?access_token=$token&openid=$_GET[openid]\";
    $subscribe = json_decode(file_get_contents($subscribe_msg));
    $gzxx = $subscribe->subscribe;
    //
    if($gzxx === 1){
     echo \"已关注\";
    }else{
    echo \"未关注\";
    
 }

下面是第二个代码案例

< ? php

$access_token = $this - > _getAccessToken();
$subscribe_msg = \'https://api.weixin.qq.com/cgi-bin/user/info?access_token=\'.$access_token.\'&openid=\'.$_SESSION[\'wecha_id\'];
$subscribe = json_decode($this - > curlGet($subscribe_msg));
$zyxx = $subscribe - > subscribe;

if ($zyxx !== 1) {
 echo\'未关注!\';
}
private function _getAccessToken() {
 $where = array(\'token\' = > $this - > token);
 $this - > thisWxUser = M(\'Wxuser\') - > where($where) - > find();
 $url_get = \'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=\'.$this - > thisWxUser[\'appid\'].\'&secret=\'.$this - > thisWxUser[\'appsecret\'];
 $json = json_decode($this - > curlGet($url_get));
 if (!$json - > errmsg) {
 } else {
 $this - > error(\'获取access_token发生错误:错误代码\'.$json - > errcode.\',微信返回错误信息:\'.$json - > errmsg);
 }
 return $json - > access_token;
}
? >

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持phpstudy。

本文地址:https://www.stayed.cn/item/26022

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。