判定微信欣赏器是通过欣赏器的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判定是否为付出宝客户端代码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("其它欣赏器"); }