支付寶即時到賬接口的集成和使用


支付寶即時到賬接口的集成和使用

如果商戶想在自己的網站上,集成支付寶的即時到賬接口,首先要申請該服務,申請地址:https://b.alipay.com/order/productDetail.htm?productId=2012051600355662

商戶系統請求-支付寶響應交互模式,即支付寶接口集成及使用的工作原理:

 

根據這個原理圖,我們可以把集成支付寶接口的步驟划分如下:

產品參考:http://www.jinhusns.com/Products/Download/?type=xcj

一.    請求

1. 構造請求數據

商戶根據支付寶提供的接口規則,通過程序生成得到簽名結果及要傳輸給支付寶的數據集合。

Ø  選定參數

Ø  排序生成待簽名字符串

對參數數組里的每一個值從a到z的順序排序,若遇到相同首字母,則看第二個字母,以此類推。排序完成之后,再把所有數組值以“&”字符連接起來,

如:

_input_charset=gbk&out_trade_no=6741334835157966&partner=2088101568338364

&payment_type=1&return_url=http://www.test.com/alipay/return_url.asp&sell

er_email=alipay-test01@alipay.com&service=create_direct_pay_by_user&subje

ct=貝爾金護腕式&total_fee=100

需要注意的是,在請求參數列表中,除去sign、sign_type兩個參數外,其他需要使用到的參皆是要簽名的參數。(個別接口中參數sign_type也需要參與簽名。)

(1)使用冒泡排序對參數數組進行排序:

(2)用“&”字符連接參數組合成待簽名的字符串:


Ø  加密生成簽名

有三種簽名方式:MD5簽名、DSA簽名和RSA簽名。

MD5簽名: 需要把私鑰直接拼接到待簽名字符串后面,形成新的字符串,利用MD5的簽名函數對這個新的字符串進行簽名運算,從而得到32位簽名結果字符串。

DSA、 RSA簽名:把待簽名字符串與客戶的私鑰一同放入DSA或RSA的簽名函數中進行簽名運算,從而得到簽名結果字符串。

下面是用MD5簽名的代碼:


2. 發送請求數據

向支付寶發送請求數據有post和get兩種方式,建議使用post 方式,相對比較安全。

 

二.    通知

支付寶對商戶的請求數據處理完成后,會通過兩種方式通知商戶處理結果,一種是頁面跳轉同步通知(return_url),另一種是服務器異步通知(notify_url) 。

服務器異步通知(notify_url)是支付寶服務器主動向商戶發送的通知,只有當訂單的交易狀態改變時才會觸發,可以防止因網絡等原因引起的丟單問題。對同步通知和異步通知結果的處理步驟大致相同,只是處理完成后的返回值不同。

1.      驗證簽名

在通知返回參數列表中,除去sign、sign_type兩個參數外,凡是通知返回回來的參數皆是要簽名的參數,具體的簽名步驟與請求時相同。

如果新得到的簽名與支付寶返回的簽名相同,則簽名驗證成功。

2.      判斷是否是支付寶服務器發來的處理結果

為了防止某些人偽造支付寶發來的處理消息,還要驗證消息的合法性,有以下三個方法:

 

3.      判斷訂單的交易狀態及數據處理

當訂單的交易狀態為“TRADE_FINISHED”或者“TRADE_SUCCESS” ,即為交易成功,接下來就可以根據自己網站的實際情況,進行自己的處理了。在處理數據前一定要先判斷訂單狀態,是否已經處理過,防止重復操作。

4.      返回數據

同步通知(return_url):對返回值沒有要求,可以做任意操作。

異步通知(notify_url):程序處理成功后,該頁面不能執行頁面跳轉,且頁面上不能有任何字符,要返回“success”7個字符。否則,支付寶會重發處理結果的通知。


免責聲明!

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



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