黑马程序员技术交流社区

标题: 【上海校区】一张二维码集成微信、支付宝支付 [打印本页]

作者: 不二晨    时间: 2018-9-3 10:06
标题: 【上海校区】一张二维码集成微信、支付宝支付
【转载】        https://blog.csdn.net/zyw_java/article/details/54630880

解决方案是通过User-Agent 来判断扫描的来源


Http Header之User-Agent

User 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);    }}



作者: 小影姐姐    时间: 2018-9-3 14:10

作者: 不二晨    时间: 2018-9-6 11:40
奈斯




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2