通过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