解決方案是通過(guò)User-Agent 來(lái)判斷掃描的來(lái)源
Http Header之User-Agent
User Agent中文名為用戶(hù)代理,是Http協(xié)議中的一部分,屬于頭域的組成部分,User Agent也簡(jiǎn)稱(chēng)UA。它是一個(gè)特殊字符串頭,是一種向訪問(wèn)網(wǎng)站提供你所使用的瀏覽器類(lèi)型及版本、操作系統(tǒng)及版本、瀏覽器內(nèi)核、等信息的標(biāo)識(shí)。通過(guò)這個(gè)標(biāo) 識(shí),用戶(hù)所訪問(wèn)的網(wǎng)站可以顯示不同的排版從而為用戶(hù)提供更好的體驗(yàn)或者進(jìn)行信息統(tǒng)計(jì)。
幾個(gè)例子
Mozilla/5.0 (iPhone; CPU iPhone OS 8_4 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12H143 Safari/600.1.4
微信
Mozilla/5.0 (iPhone; CPU iPhone OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) Mobile/14C92 MicroMessenger/6.5.3 NetType/WIFI Language/zh_CN
支付寶
Mozilla/5.0 (iPhone; CPU iPhone OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) Mobile/14C92 ChannelId(3) Nebula PSDType(1) AlipayDefined(nt:WIFI,ws:375|647|2.0) AliApp(AP/10.0.1.123008) AlipayClient/10.0.1.123008 Alipay Language/zh-Hans
具體實(shí)現(xiàn)
public class AllPayController extends Controller {
protected final Log log = Log.getLog(getClass());
public void index(){
String userAgent = getRequest().getHeader("User-Agent");
log.info(userAgent);
int payWay = 0;
String agent = userAgent.toLowerCase();
if (agent.indexOf("micromessenger")>0) {
//用戶(hù)使用微信訪問(wèn)頁(yè)面
payWay = 1;
System.out.println("微信...");
}else if(agent.indexOf("alipayclient")>0){
//用戶(hù)使用支付寶訪問(wèn)頁(yè)面
payWay = 2;
System.out.println("支付寶...");
}
renderText(payWay+" userAgent:"+userAgent);
}
}
推薦閱讀
Android版-微信APP支付
極速開(kāi)發(fā)微信公眾號(hào)之微信買(mǎi)單
極速開(kāi)發(fā)微信公眾號(hào)之公眾號(hào)支付
極速開(kāi)發(fā)微信公眾號(hào)之掃碼支付
極速開(kāi)發(fā)微信公眾號(hào)之刷卡支付
極速開(kāi)發(fā)微信公眾號(hào)之現(xiàn)金紅包
Android版-支付寶APP支付支付寶Wap支付
記錄學(xué)習(xí)的點(diǎn)滴,以此勉勵(lì)不斷奮斗的自己?????? 如果對(duì)你有幫助記得點(diǎn)喜歡
源碼下載地址