如何判断当前网站来路访问是来自于微信朋友圈的

heavylion 发布于4月前 阅读955次
0 条评论

分两步走:

首先判断是否来自于微信,这一点用user agent来判断就成,微信的user agent 里面必带 'micromessenger'。

其次,检查是否来自于朋友圈,这可以根据来路是否带有from这个url参数,并且值为'timeline',就能确定是来自于朋友圈。 当然,以上这些办法无法判断用户是否欺骗服务器。

附上代码:

 

public static function judgeWeixinCircle() {
        $userAgent = $_SERVER['HTTP_USER_AGENT'];
        if(stripos($userAgent, 'micromessenger') === false)
            return false;
        if(!empty($_GET['from']) && $_GET['from'] === 'timeline')
            return true;
        else
            return false;
    }

-------------------另一个------------------

$user_agent = $_SERVER['HTTP_USER_AGENT'];
if (strpos($user_agent, 'MicroMessenger') === false) {
    // 非微信浏览器禁止浏览
    echo "HTTP/1.1 401 Unauthorized";
} else {
    // 微信浏览器,允许访问
    echo "MicroMessenger";
    // 获取版本号
    preg_match('/.*?(MicroMessenger\/([0-9.]+))\s*/', $user_agent, $matches);
    echo '<br>Version:'.$matches[2];
}

共收到0条回复

需要 登录 后回复方可回复, 如果你还没有账号你可以 注册 一个帐号。