解决方案是通过User-Agent 来判断扫描的来源
Http Header之User-AgentUser Agent中文名为用户代理,是Http协议中的一部分,属于头域的组成部分,User Agent也简称UA。它是一个特殊字符串头,是一种向访问网站提供你所使用的浏览器类型及版本、操作系统及版本、浏览器内核、等信息的标识。通过这个标 识,用户所访问的网站可以显示不同的排版从而为用户提供更好的体验或者进行信息统计。
几个例子QQ
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具体实现
0) { //用户使用微信访问页面 payWay = 1; System.out.println("微信..."); }else if(agent.indexOf("alipayclient")>0){ //用户使用支付宝访问页面 payWay = 2; System.out.println("支付宝..."); } renderText(payWay+" userAgent:"+userAgent); }}" data-snippet-id="ext.297e9ae5278e5d5fb457c0fc8bffa2f9" data-snippet-saved="false" data-codota-status="done" name="code" style="box-sizing: border-box; outline: 0px; padding: 8px 16px 4px 56px; margin-bottom: 24px; position: relative; overflow-y: hidden; overflow-x: auto; font-family: Consolas, Inconsolata, Courier, monospace; color: rgb(0, 0, 0); word-break: break-all; border: none; background-color: rgb(246, 248, 250);">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) { //用户使用微信访问页面 payWay = 1; System.out.println("微信..."); }else if(agent.indexOf("alipayclient")>0){ //用户使用支付宝访问页面 payWay = 2; System.out.println("支付宝..."); } renderText(payWay+" userAgent:"+userAgent); }}