我们上一篇文章讲解了,如何判断微信客户端(判断微信浏览器),这一篇我们说说,如何判断支付宝的客户端。

判断微信浏览器是通过浏览器的userAgent来判断的,判断支付宝的客户端,同样也可以通过它来判断。

来自支付宝中的userAgent

示例1:

Mozilla/5.0 (Linux; U; Android 6.0.1; en-us; MI 5 Build/MXB48T) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 UCBrowser/1.0.0.100 U3/0.8.0 Mobile Safari/534.30 AlipayDefined(nt:WIFI,ws:360|640|3.0) AliApp(AP/9.9.2.090801) AlipayClient/9.9.2.090801 Language/en

示例2:

Mozilla/5.0 (Linux; U; Android 7.0; zh-cn; MI 5 Build/NRD90M) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 UCBrowser/1.0.0.100 U3/0.8.0 Mobile Safari/534.30 Nebula AlipayDefined(nt:NotReachable,ws:360|640|3.0null) AliApp(AP/10.0.5.022801) AlipayClient/10.0.5.022801 Language/zh-Hans useStatusBar/true

吐槽一下:来自支付宝浏览器的userAgent信息,直得让人头大。

通过上面的userAgent信息,可以发现其中包含了一个‘AlipayClient’字段。我们可以通过判断是否含有此字段的方式来判断是否为支付宝客户端。

PHP判断支付宝,PHP判断是否支付宝浏览器,JS判断支付宝浏览器,js判断来源支付宝

PHP判断是否为支付宝客户端

代码1:

//飞鸟慕鱼博客
function isInAlipayClient(){
    if( strpos($_SERVER['HTTP_USER_AGENT'], 'AlipayClient') !== false ) {
        return true;
    }
    return false;
}

注意:以上代码,是从支付宝的支付SDK中获取的。并加以修改,判断逻辑不变

代码2:

//飞鸟慕鱼博客
function isAliClient(){
    return strpos($_SERVER['HTTP_USER_AGENT'], 'Alipay') !== false;
}

JS判断是否为支付宝浏览器

代码1:

if (/AlipayClient/.test(window.navigator.userAgent)) { 
    alert('支付宝客户端');
} else {
    alert('其他浏览器');
}

代码2:

var browser = navigator.userAgent.toLowerCase();
if(browser.match(/Alipay/i)=="alipay"){
    console.log("支付宝app的浏览器");
}else if(browser.match(/MicroMessenger/i)=="micromessenger"){
    console.log("微信app的浏览器");
}else{
    console.log("其它浏览器");
}