如何判断是否是微信访问 微信UA

如题所述

通过判断HTTP_USER_AGENT中是否有MicroMessenger即可判断是不是微信过来的请求:
if(strpos($_SERVER["HTTP_USER_AGENT"],"MicroMessager")){
echo "Welcome to wechat world!";
}else{
echo "('<span style="font-size:28px;">HTTP/1.1 401 UnAuthorized</span>')";
}

重要的是通过微信客户端获得tiket,确定用户的身份,如果获取不到tiket都不是微信浏览器,这个做法应该是最好的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-17
网上有例子,不过没有做实际的验证。
做微信站点的开发的时候,我们有需求只允许微信来访问网页。
可行的一种方法是按照浏览器UA来判断是否是微信。
下面是我抓取到的UA:

1

Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12A365 MicroMessenger/5.4.1 NetType/WIFI

我们可以通过MicroMessenger关键词来判断是否是微信了。
下面是js和php的方法示例:
JS:

1
2

function is_weixin(){
var ua = navigator.userAgent.toLowerCase(); if(ua.match(/MicroMessenger/i)=="micromessenger") { return true; } else { return false; }}

PHP:

1

function is_weixin(){ if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false ) { return true; } return false;}本回答被提问者和网友采纳
相似回答