一張二維碼同時集成微信、支付寶支付

此項目已開源歡迎Start、PR、發起Issues一塊兒討論交流共同進步
https://github.com/Javen205/IJPay
http://git.oschina.net/javen205/IJPaygit

解決方案是經過User-Agent 來判斷掃描的來源github

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

微信ide

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支付網站

記錄學習的點滴,以此勉勵不斷奮鬥的本身✌️✌️✌️ 若是對你有幫助記得點喜歡
源碼下載地址ui

相關文章
相關標籤/搜索