1. 程式人生 > >通過user-agent判斷使用者的請求是用QQ、微信還是支付寶

通過user-agent判斷使用者的請求是用QQ、微信還是支付寶

通過user-agent判斷使用者是用QQ、微信還是支付寶開啟連結或二維碼

 

function is_weixn_qq(){
var ua = navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i)=="micromessenger") {
    return "weixin";
} else if (ua.match(/QQ/i) == "qq") {
    return "QQ";
}else if(ua.match(/AlipayClient/i) == 'alipayclient'){
    return "Alipay";
}else{
    ...
}

 以上就是javascript判斷請求來源的程式碼,我們也可以在後臺程式碼中判斷請求來源

簡單的說就只要從httpServerletRequest中獲得user-agent就可以了

String userAgent = req.getHeader("user-agent"); 
  if (userAgent != null && userAgent.contains("AlipayClient")) { 
    return "支付寶"; 
  }else if (userAgent != null && userAgent.contains("MicroMessenger")) { 
    return "微信"; 
  }else{ 
    return "其它"; 
  } 

這是通過微信和支付寶請求一個介面,後臺從httpServerletRequest的user-agent取得的值。例如聚合支付,後臺服務通過獲得請求端的瀏覽器來確定是微信端還是支付寶還是其它支付APP

Mozilla/5.0 (iPhone; CPU iPhone OS 11_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E302 MicroMessenger/6.6.6 NetType/WIFI Language/zh_CN

 

Mozilla/5.0 (iPhone; CPU iPhone OS 11_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E302 NebulaSDK/1.8.100112 Nebula PSDType(1) AlipayDefined(nt:WIFI,ws:375|603|2.0) AliApp(AP/10.1.25.370) AlipayClient/10.1.25.370 Alipay Language/zh-Hans