判斷掃碼的客戶端是微信還是支付寶


user-agent:判斷掃碼的客戶端是微信還是支付寶

User Agent格式

  User Agent中文名為用戶代理,簡稱 UA,它是一個特殊字符串頭,使得服務器能夠識別客戶使用的操作系統及版本、CPU 類型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語言、瀏覽器插件等。

  瀏覽器的 UA 字串 
    標准格式為: 瀏覽器標識 (操作系統標識; 加密等級標識; 瀏覽器語言) 渲染引擎標識 版本信息

微信APP:Mozilla/5.0 (iPhone; CPU iPhone OS 11_4_1 like Mac OS X) 
AppleWebKit/605.1.15 (KHTML, like Gecko) 
Mobile/15G77 MicroMessenger/6.7.2 NetType/4G Language/zh_CN
 
 
支付寶APP:Mozilla/5.0 (iPhone; CPU iPhone OS 11_4_1 like Mac OS X) 
AppleWebKit/605.1.15 (KHTML, like Gecko) 
Mobile/15G77 NebulaSDK/1.8.100112 Nebula PSDType(1) 
AlipayDefined(nt:4G,ws:320|504|2.0) AliApp(AP/10.1.32.600) 
AlipayClient/10.1.32.600 Alipay Language/zh-Hans
  • 獲取user-Agent 之后,
  • 通過識別MicroMessenger或者AlipayClient這樣的關鍵字應該就可以判斷是微信還是支付寶

判斷掃碼的客戶端是微信還是支付寶(JAVA方式)

@RestController
public class PaySourceController {
    @RequestMapping("/sweep")
    public String sweepCode(HttpServletRequest request) {
        String userAgent = request.getHeader("user-agent");
        if (userAgent != null && userAgent.contains("AlipayClient")) {
            return "來自支付寶";
        }else if (userAgent != null && userAgent.contains("MicroMessenger")) {
            return "來自微信";
        }else{
            return "未知來源";
        }
    }
}

 

判斷掃碼的客戶端是微信還是支付寶(JS方式)

function IsWeixinOrAlipay(){
    var ua = window.navigator.userAgent.toLowerCase();
    //判斷是不是微信
    if ( ua.match(/MicroMessenger/i) == 'micromessenger' ) {  
        return "WeiXIN";  
    }    
    //判斷是不是支付寶
    if (ua.match(/AlipayClient/i) == 'alipayclient') {
        return "Alipay";  
    }
    //哪個都不是
    return "false";
}

參考資料:https://blog.csdn.net/fly910905/article/details/82498813


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM