一张二维码同时集成微信、支付宝支付

此项目已开源欢迎Start、PR、发起Issues一起讨论交流共同进步
https://github.com/Javen205/IJPay
http://git.oschina.net/javen205/IJPay

解决方案是通过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

具体实现

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

推荐阅读
Android版-微信APP支付
极速开发微信公众号之微信买单
极速开发微信公众号之公众号支付
极速开发微信公众号之扫码支付
极速开发微信公众号之刷卡支付
极速开发微信公众号之现金红包
Android版-支付宝APP支付支付宝Wap支付

记录学习的点滴,以此勉励不断奋斗的自己✌️✌️✌️ 如果对你有帮助记得点喜欢
源码下载地址

原文地址:https://www.cnblogs.com/zyw-205520/p/6347198.html