聚合支付二維碼生成原理

聚合支付二維碼生成原理

聚合支付平臺提供平臺支付URL,生成統一的支付二維碼。當消費者根據二維碼掃描時,聚合支付平臺根據掃描者瀏覽器類型判斷支付類型,並提交參數給聚合支付平臺支付處理接口處理。平臺支付處理接口根據支付類型和商戶ID,調用相應的支付渠道支付接口進行支付處理

在這裏插入圖片描述

1.商戶分別開通微信、支付寶、京東金融等支付渠道,各個平臺審覈通過後會生成微信商戶編碼,支付寶商戶編碼和京東金融商戶編碼
2.商戶將這些渠道的支付賬號配置到聚合平臺中,並分配給用戶一個聚合唯一用戶標識ID
3.聚合平臺通過微信、支付寶和京東金融第三方API調用形成具體支付過程(這個過程商戶不用關注),當其他消費者掃描帶有用戶標識的聚合平臺URL時,根據掃描者手機使用的內置UAG判斷是哪個支付平臺,前端獲取到後把商戶標識和支付方式傳遞給聚合支付平臺的支付API,
4.聚合平臺的支付API根據參數生成相應的平臺支付訂單
5.消費者確認支付完成
6.商戶定期在聚合支付後臺提現金額到對應賬號即可。

簡單的 demo

掃描二維碼本質上就是通過掃描得到一個網址,所以,我們要寫一個頁面。
支付寶的鏈接可以通過 js 直接跳轉;微信的不能直接跳轉到支付,只能通過微信的掃描接口喚起支付模塊,所以變通一下,讓微信的鏈接變成微信的支付二維碼,再掃描一次。

其實,像美團的二維碼是可以直接跳轉到微信的支付模塊的,並不用掃描第二次,筆者嘗試了很多方法仍然不能直接跳轉,推測是美團和微信有相關協議讓他們可以直接跳轉,如果有了解的讀者能賜教一二將不勝感激。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" />
    <title>jasonPayTestDemo</title>
</head>
<body>

<!-- 隱藏微信支付的二維碼,可以是個的也可以是企業的,如果做統一聚合一般都是做企業的,支付成功到企業賬戶後再轉給個人用戶或者個人用戶使用提現再轉到其個人微信或者其他賬戶中去 -->
<div class="container" id="wechat" style="display: none;">
   <div style="text-align: center;">
       <img src="http://qr.liantu.com/api.php?text=wxp://f2f0lGxS0y-AT4xJ9IIXI_nKcp3U2b2b_W0L">
       <h3>please use wechat, long presh and pay</h3>
   </div>
</div>
</body>
</html>
<script language="javascript">

    var ua = navigator.userAgent.toLowerCase();
    if(ua.match(/MicroMessenger/i)=="micromessenger") {
        goAndPayByWechat();
    } else if(ua.match(/AlipayClient/i)=="alipayclient"){
        goAndPayByAli();
    } else{
        alert("please use wechat or alipay");
    }

    function goAndPayByAli(){
         window.location.href="HTTPS://QR.ALIPAY.COM/FKX09508CLUZB0JA2UHC36";
    }

    function goAndPayByWechat(){
        document.getElementById("wechat").removeAttribute("style");
    }
</script>

參考資料

作者:Jason_M_Ho
鏈接:https://www.jianshu.com/p/ec23449820ba

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章