php教程

微信关注公众号扫码登录功能php示例代码

我的站长站 2023-09-11 人阅读

PHP判断是否首次关注公众号,扫码关注公众号获取微信用户头像、openid和省市等信息源码。


第一步:获取关注二维码ticket,并且传参二维码qrcode表主键id

$sql = "INSERT INTO `qrcode` (`addtime`) VALUES ('" . time() . "')"; 
  
mysql_query($sql); 
$scene_id = mysql_insert_id(); 
  
$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . $appid . '&secret=' . $appsecret; 
$access_token_array = json_decode(curlGet($url), true); 
$access_token = $access_token_array['access_token']; 
//echo $access_token;exit;
$qrcode_url = 'https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=' . $access_token; 
  
$post_data = array(); 
$post_data['expire_seconds'] = 3600 * 24; //有效时间 
$post_data['action_name'] = 'QR_SCENE'; 
$post_data['action_info']['scene']['scene_id'] = $scene_id; //传参用户uid,微信端可获取 
$json = curlPost($qrcode_url, json_encode($post_data)); 
if (!$json['errcode']) { 
  
    $ticket = $json['ticket']; 
    $ticket_img = 'https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=' . urlencode($ticket); 
} else { 
    echo '发生错误:错误代码 ' . $json['errcode'] . ',微信返回错误信息:' . $json['errmsg']; 
    exit; 
}


第二步:微信服务端接受数据,并且用户登录信息

$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); 
$scene_id = str_replace("qrscene_", "", $postObj->EventKey); 
  
$openid = $postObj->FromUserName; //openid 
$ToUserName = $postObj->ToUserName;  //转换角色 
$Event = strtolower($postObj->Event); 
if ($Event == 'subscribe') {//首次关注 
    $is_first = 0; 
} elseif ($Event == 'scan') {//已关注 
    $is_first = 1; 
} 
$access_token = $this->getAccessToken(); 
  
$userinfo = $this->getUserinfo($openid, $access_token); 
$sql = "UPDATE `qrcode` SET `openid` = '" . $openid . "',logintime='" . time() . "',is_first=" . $is_first . ",nickname='" . $userinfo['nickname'] . "'" 
        . ",avatar='" . $userinfo['avatar'] . "',sex='" . $userinfo['sex'] . "',province='" . $userinfo['province'] . "',city='" . $userinfo['city'] . "',country='" . $userinfo['country'] . "' WHERE `id` =" . $scene_id . ""; 
  
mysql_query($sql);

 

第三步:每隔2秒检测是否关注微信公众号

<script> 
    check_login(); 
    function check_login() { 
        $.post("check_login.php", {scene_id: <?php echo $scene_id; ?>}, function(data) { 
            var attention = '首次关注'; 
            if (data.is_first == 1) { 
                attention = '已关注过'; 
            } 
            if (data.openid != null) { 
                alert("扫码成功,openid为" + data.openid + "nickname:" + data.nickname); 
                location.reload(); 
  
            } else { 
                setTimeout("check_login()", 2000); 
            } 
        }, "json"); 
    } 
</script>

通过微信openid和access_token获取微信用户信息,并存入表当中的信息如下:

<tr> 
    <th>openid</th> 
    <th>昵称</th> 
    <th>性别</th> 
    <th>国家</th> 
    <th>省份</th> 
    <th>城市</th> 
    <th>头像</th> 
    <th>是否关注过</th> 
    <th>登录时间</th> 
</tr>


相关推荐
  • 微信公众号
  • PC版批量取关微信公众号工具
    PC版批量取关微信公众号工具

    春节期间大家肯定关注了很多公众号领红包,但是公众号一多,每天都收到一堆垃圾推送消息,一一个的取关又太麻烦。我的站长站在网上找了这个可以批量取关微信公众号工具,非常好用,推荐给大家使用。...

    营销软件 256 3年前
  • 微信营销助手v1.0.9高级会员破解版
    微信营销助手v1.0.9高级会员破解版

    软件截图:微信营销助手v1.0.9高级会员破解版 免费所有功能群发消息清理好友经常使用微信难免要清理一下好友 一个一个的检测比较麻烦小编给大家分享一款:微信助手 该软件免费使用功能清理好友 群...

    营销软件 384 4年前
  • 微信营销专家会员版 3.4破解版
    微信营销专家会员版 3.4破解版

    我的站长站统一解压密码:www.wdzzz.com微信营销专家破解版适用于店铺推广、宝贝推广、产品推广、活动推广、广泛交友等,该软件支持自动打招呼、自动摇一摇、招呼摇验证、通讯录验证、自动漂流瓶、...

    营销软件 711 7年前
最新更新