探討在線支付平台支付接口的設計


1.      支付接口.... 2

1.1.       支付請求參數... 2

1.2.       支付返回參數... 3

2.      退款接口.... 4

1.3.       退款請求參數... 4

1.4.       退款返回參數... 4

3.      查詢接口.... 5

1.5.       查詢請求參數... 5

1.6.       查詢返回參數... 5

 


1.      支付接口

1.1.      支付請求參數

基本參數說明,如下:

 

參數

名稱

說明

MerchantID

商戶編號

必填,由支付平台提供,如:100000

TransactionID

客戶端流水號

必填,40位長度,商戶提交的客戶端流水號必須唯一

OrderID

商戶訂單號

必填,50位長度

Amount

交易金額

必填,實際交易金額,正數(小數只能保留2位),如:1234.56

CurrencyCode

幣種代碼

必填,CNY人民幣/USD美元

ReturnUrl

支付完成跳轉地址

選填,200位長度

瀏覽器重定向到的頁面

NotifyUrl

后台通知的地址

選填,200位長度

支付成功,后台主動通知的地址

Description

商品描述

選填,500位長度

PaymentCatalog

支付類別

選填,500位長度,以“,”分隔,為空則顯示所有支付類別,按照設置的順序顯示,如“1,2,3”

PaymentWay

支付方式

選填,500位長度,以“,”分隔,為空則顯示所有支付方式,按照設置的順序顯示,如“ICBC,CCB,PayPal”

MerchantData

商戶私有信息

選填,500位長度,原樣返回

Language

語言

必填,ZH簡體中文,HK繁體中文,EN英文

UserID

用戶標識

必填,100位長度,用戶在商戶站點注冊的賬戶標識

UserName

用戶名稱

必填,100位長度,用戶在商戶站點注冊的賬戶名稱

Sign

簽名

必填,32位長度

 

生成簽名的步驟:

1)      使用&連接各參數名稱/值對,最終格式示例如下:

MerchantID=000001&TransactionID=1234567890&OrderID=1234567890

&Amount=1234.56&CurrencyCode=CNY

&ReturnUrl=http://xxx/MerchantDemo/PayReturn.aspx

&NotifyUrl=http://xxx/MerchantDemo/PayNotify.aspx

&Description=絢麗奪目的Retina 顯示屏&PaymentCatalog=1,2,3&PaymentWay=

&MerchantData=test&Language=ZH&UserID=testuser&UserName=測試用戶

2)      調用在線支付平台公共方法(.NET)SecurityUtil.CreateSign生成簽名

 

商戶站點以POST方式將支付請求發送到在線支付平台,FORM表單示例如下:

<form name="sendOrder" method="POST" action="http://xxx/Gateway/Pay.aspx">

<input type="hidden" name="MerchantID" value="000001"/>

<input type="hidden" name="TransactionID" value="1234567890"/>

<input type="hidden" name="OrderID" value="1234567890"/>

<input type="hidden" name="Amount" value="1234.56"/>

<input type="hidden" name="CurrencyCode" value="CNY"/>

<input type="hidden" name="ReturnUrl" value="http://xxx/MerchantDemo/PayReturn.aspx"/>

<input type="hidden" name="NotifyUrl" value="http://xxx/MerchantDemo/PayNotify.aspx"/>

<input type="hidden" name="Description" value="絢麗奪目的Retina 顯示屏"/>

<input type="hidden" name="PaymentCatalog" value="1,2,3"/>

<input type="hidden" name="PaymentWay" value=""/>

<input type="hidden" name="MerchantData" value="test"/>

<input type="hidden" name="Language" value="ZH"/>

<input type="hidden" name="UserID" value="testuser"/>

<input type="hidden" name="UserName" value="testuser"/>

<input type="hidden" name="Sign" value="FC8A5AA8D05A5DF5C7AB2C245212EB2C"/>

</form>

1.2.      支付返回參數

支付返回參數說明,如下:

 

參數

名稱

說明

MerchantID

商戶編號

原樣返回

TransactionID

客戶端流水號

原樣返回

OrderID

商戶訂單號

原樣返回

Amount

訂單金額

原樣返回

CurrencyCode

幣種代碼

原樣返回

PaymentRequestID

支付平台流水號

 

MerchantData

商戶私有信息

原樣返回

PaymentCatalog

支付類別

原樣返回

PaymentWay

支付方式

原樣返回

Status

支付狀態信息

Y(成功)/ N(失敗)

Result

結果描述

當失敗時,為失敗的描述信息

UserID

用戶標識

原樣返回

UserName

用戶名稱

原樣返回

Sign

簽名

必填,32位長度

支付結果信息會按照一定的規律發送到商戶站點指定的后台通知的地址(通過 POST 方式發送),直到達到指定次數或者商戶站點返回成功信息“Y”給在線支付平台。

 

使用&連接各返回參數名稱/值對,最終格式示例如下:

MerchantID=000001&TransactionID=1234567890&OrderID=1234567890&Amount=1234.56

&CurrencyCode=CNY&PaymentRequestID=000001101128093059000001

&MerchantData=test&PaymentCatalog=1,2,3&PaymentWay=&Status=Y

&Result=支付成功!&UserID=testuser&UserName=測試用戶

然后使用商戶密鑰進行簽名,並生成FORM表單。

 

在線支付平台通過POST方式發送支付結果信息到商戶站點,FORM表單示例如下:

<form name="sendOrder" method="POST" action="http://xxx/MerchantDemo/PayNotify.aspx”/>

<input type="hidden" name="MerchantID" value="000001”/>

<input type="hidden" name="TransactionID" value="1234567890”/>

<input type="hidden" name="OrderID" value="1234567890”/>

<input type="hidden" name="Amount" value="1234.56”/>

<input type="hidden" name="CurrencyCode" value="CNY”/>

<input type="hidden" name="PaymentRequestID" value="000001101128093059000001”/>

<input type="hidden" name="MerchantData" value="test”/>

<input type="hidden" name="PaymentCatalog" value="1,2,3”/>

<input type="hidden" name="PaymentWay" value="”/>

<input type="hidden" name="Status" value="Y”/>

<input type="hidden" name="Result" value="支付成功!”/>

<input type="hidden" name="UserID" value="testuser”/>

<input type="hidden" name="UserName" value="testuser"/>

<input type="hidden" name="Sign" value="8CCC53AD8FC4F376E1055A049AE2C87F”/>

</form>

商戶站點調用在線支付平台提供的方法(.NET)SecurityUtil.VerifySign驗證簽名,並檢查訂單號是否已處理,幣種、金額等是否與原始訂單一致等,然后進行后續處理。

2.      退款接口

1.3.      退款請求參數

參數

名稱

說明

MerchantID

商戶編號

 

TransactionID

客戶端流水號

 

RefundAmount

退款金額

 

CurrencyCode

幣種代碼

 

RefundReason

退款說明

 

Sign

簽名

 

1.4.      退款返回參數

回復正文一行一項,格式為參數名稱/值對(key=value),其中value 是 URL 編碼的字符串。需要對此回復數據進行適當解析,然后進行 URL解碼。

參數

名稱

說明

MerchantID

商戶編號

 

TransactionID

客戶端流水號

 

RefundAmount

退款金額

 

CurrencyCode

幣種代碼

 

Status

返回結果

0(失敗)/ 1(成功)

Result

結果描述

 

Sign

簽名

 

3.      查詢接口

有兩種方式進行查詢:按日期段查詢、按訂單號查詢。

1.5.      查詢請求參數

按日期段查詢參數,將對查詢結果進行分頁, 每頁50條記錄:

參數

名稱

說明

MerchantID

商戶編號

 

BeginDate

開始日期

 

EndDate

結束日期

 

PageIndex

當前頁

從0開始

Sign

簽名

 

 

按訂單號查詢參數:

參數

名稱

說明

MerchantID

商戶編號

 

TransactionID

客戶端流水號

 

Sign

簽名

 

1.6.      查詢返回參數

回復正文一行一項,格式為參數名稱/值對(key=value),其中value 是 URL 編碼的字符串。需要對此回復數據進行適當解析,然后進行 URL解碼。

 

按日期段查詢返回參數:

參數

名稱

說明

MerchantID

商戶編號

 

ResultData

結果數據

JSON格式

Sign

簽名

 

 

按訂單號查詢返回參數:

參數

名稱

說明

MerchantID

商戶編號

 

TransactionID

客戶端流水號

 

OrderID

商戶訂單號

 

Amount

訂單金額

 

CurrencyCode

幣種代碼

 

PaymentRequestID

支付平台流水號

 

Description

商品描述

 

PaymentCatalog

支付類別

 

PaymentWay

支付方式

 

MerchantData

商戶私有信息

 

Status

狀態

0(未支付)/ 1(已支付)

RefundAmount

已退款金額

 

UserID

用戶標識

 

UserName

用戶名稱

 

Sign

簽名

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM