說明
線上聚合支付用於聚合UePay現有所有支付能力,實現一次打開頁面全通道支付。
目前支持的聚合支付通道
- UePay電子錢包。
- 微信公眾號支付。
- 支付寶MO。
功能
-
通過調起的參數進行金額和商戶通道判斷,傳遞了支付金額、支付商戶。
-
通過調起的參數進行商戶通道判斷,然後使用H5內嵌的安全鍵盤輸入支付金額,然後發起支付。
聚合支付業務流程
聚合支付流程因為是移動端HTML類型的線上支付,因此所有的入口都是實際上都是通過URL控制的。
信息流
聚合支付信息流首先無論商戶是使用線下靜態碼還是線上的頁面打開UePay聚合支付前端,所有的支付結果只能通過後台服務器之間來傳遞。前端的跳轉或展示僅用於向商戶進行展示。
- 步驟S1、S2:商戶前端通過商戶後臺向UePay系統提交預支付訂單。(此步驟僅用於綫上聚合支付)
- 步驟S3、S4:服務端生成根據提交的信息生成零時字符串。(此步驟僅用於綫上聚合支付)
- 步驟1A:商戶通過頁面跳轉到UePay線上聚合支付平台。
- 步驟1B:用戶通過終端(微信、支付寶MO、UePay電子錢包)掃商戶靜態碼打開UePay線上聚合支付平台。
- 步驟2:UePay根據商戶傳遞的數據(掃碼的Url數據)使用關聯通道進行發起支付。
- 步驟3:UePay的前後台開始執行對應通道的線上支付流程。(參考微信公眾號支付、UePay線上支付、澳門MO線上支付)。完成後通過商戶預設的URL通知商戶後台。
- 步驟4:完成之後後通知支付前端,前端更新為對應的狀態。實際上這一步會根據支付通道的不同,有幾個子步驟。大致過程是:
- UePay前端調後端提交預支付訂單。
- 後台下單後回傳訂單信息。
- 前端使用相關的訂單信息調用渠道JS-API接口發起源生支付。
- 源生支付完成後通知前端(某些通道同時還會通知後端)。
- 前端調用後端接口查單。
- 後端查單完成後通知商戶後台服務器,並返回結果給前端。
- 步驟5:前端得到支付結果信息,若指定了
back_url
則會攜帶參數信息回調商戶前端,若無指定不執行後續步驟。 - 步驟7:商戶告知商戶後台查詢訂單。
- 步驟8:商戶後台查詢UePay聚合支付後台。
- 步驟9:UePay聚合支付後台返回支付結果。
注意事項
1. 支付結果必須以後台查詢和通知的結果為準
2. 線上跳轉支付在UePay支付完成跳轉回商戶平時核驗支付訂單時,必須核對預支付訂單號、金額、返回地址是否與發起時一致,必須驗簽
域名&URL定義規則
入口域名規則:
首次打開頁面的域名路徑:
[domain]/[action]/[payway]/[patch]?ver=[ver]&content=[content]
, 其詳細定義如下:
域 | 描述 | 案例 | 限定長度 |
---|---|---|---|
domain | 主站域名 | https://online.uepay.mo | |
action | 表示動作功能 | payment | 10 |
payway | 支付方式 | qrcode\online | 10 |
patch | 頁面版本號 | serline | 10 |
ver | 加密計算版本號 | op-01 | 固定為5 |
content | 密文內容 | 128 |
重定向域名規則
某些支付類型需要進行重定向(微信公眾號支付),因此需要提供重定向域名以繼續功能,結構如下:
[domain]/[action]/[payway]/redirect/[patch]/[kit]?[*=*]
結構增加了redirect
路徑,用於對入口路徑加以區分。kit
路徑用於表示當前支付方式(微信、支付寶等)。因為不同的支付方式進行重定向返回的query參數是不一樣的,因此search部分需要根據每一個通道特殊處理。
接口過程説明
線下靜態QRcode聚合支付
靜態QRcode聚合支付是指將每個商戶的支付能力都生成為一個QRcode靜態碼,靜態碼會使用系統内部密鑰對標識功能字串進行加密。當打開一個頁面時會傳遞到後台進行還原,所有參數根據商戶號均由Uepay系統生成。
靜態QRcode的URL規則
當用戶使用終端掃描靜態QRcode之後,打開的就是一個固定的域名地址,其域名規則如下:
簽密URL:[domain]/payment/qrcode/{patch}?ver=?&content=?
URL參數説明:
參數 | 説明 | 案例 | 長度(字符) |
---|---|---|---|
patch | 指示當前QRcode的頁面版本號,用於升級頁面時的支持 | serline | 10 |
ver | 驗簽規則參數,取值a-zA-Z0-9 | 固定長度為5 | 5 |
content | QRcode標簽編碼内容,不同版本存儲的内容不同,取值a-zA-Z0-9 | 200 |
content説明
content此時記錄的就是數據庫中的SN號,用於標記參靜態碼字串信息的一個隨機數據。他生成之後會與數據庫表的信息一一對應。在數據庫中對應SN碼需要存儲的信息大致如下:
字段 | 説明 | 案例 | 長度(字符) |
---|---|---|---|
sn | 編碼字串 | 22 | |
merchantNo | 商戶編號 | 15 | |
merchantName | 商戶名稱 | 30 | |
merchantIcon | 商戶圖標,一個URL後綴 | [DOMAIN]/img/abcs.jpg | 50 |
cny | 支付幣種 | MOP | 5 |
靜態QRcode初始化過程
- 用戶使用終端掃描二維碼之後會進入對應的初始化頁面。
- 頁面獲取QRcode的sn信息然後調用服務器接口獲取商戶信息。
- 服務端返回商戶信息,頁面展示用戶信息,並進入金額輸入頁面等待用戶支付。
- 服務端不能返回真實的商戶號,所有的數據庫信息通過身份串對應表示。
- 用戶完成金額輸入,開始綫上支付。
線上網頁跳轉聚合支付(聚合收銀台)
線上網頁跳轉聚合支付是指商戶在線上完成某項業務之後(比如採購)跳轉(重定向)到UePay的聚合收銀台進行支付。支付與線下聚合碼類似都是打開一個聚合支付頁面。
由於此筆交易是商戶主動發起,因此需要商戶在跳轉(喚起)UePay收銀檯頁面時需要事先提交與支付訂單。預支付訂單通過POST方法調用UePay聚合支付平臺完成。
預支付訂單内容
參數名 | 說明 | 備註 | 最大長度(字符) |
---|---|---|---|
orderNo | 商戶訂單號 | 32 | |
merchantNo | 商戶編號 | 15 | |
amount | 支付金額(分) | 9999900 | 10 |
cny | 支付幣種 | 目前僅支持MOP | 5 |
detail | 商品詳情 | 2000 | |
notifyUrl | 支付完成後的重定向的頁面 | 100 | |
time | 發起時間戳 | ||
sign | 使用以上内容進行驗簽 |
detail參數說明:
{
"goods_detail":[
{
"goods_name":"iPhone6s 16G",
"quantity":1,
},
{
"goods_name":"iPhone6s 32G",
"quantity":1,
}]
}
描述 | ||
---|---|---|
goods_name | 商品名稱 | |
quantity | 計量個數 |
預支付訂單返回
參數名 | 說明 | 備註 | 最大長度(字符) |
---|---|---|---|
orderNo | 商戶預支付訂單號 | 22 | |
tradeNo | 聚合支付平臺交易標識號 | 32 | |
time | 發起時間戳 | ||
pay_url | 支付頁面,需要瀏覽器重定向 | 支付地址 | |
sign | 使用以上内容進行驗簽 |
支付pay_url
支付地址url:[domain]/payment/online/{patch}?ver=?&&content=?
參數 | 説明 | 備注 | 長度 |
---|---|---|---|
patch | 綫上支付頁面版本號 | 10 | |
ver | 簽密算法版本,取值a-zA-Z0-9 | 固定為5 | |
content | 簽密内容,在此對應“預支付信息”的編號,取值a-zA-Z0-9 | 200 |
微信公衆號支付過程
Uepay電子錢包綫上支付過程
支付寶支付過程
識別MO、CN、國際站接口?
其他操作
需要進行退款操作需要到商戶中心操作。
參考內容:
支付寶線上支付測試環境:https://gztest1.uepay.mo/
UePay電子錢包線上支付:http://192.168.0.22:13000/
网友评论