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

支付寶即時到帳接口的集成和使用數組

若是商戶想在本身的網站上,集成支付寶的即時到帳接口,首先要申請該服務,申請地址:https://b.alipay.com/order/productDetail.htm?productId=2012051600355662安全

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

 

根據這個原理圖,咱們能夠把集成支付寶接口的步驟劃分以下:網絡

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

一.    請求函數

1. 構造請求數據post

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

Ø  選定參數加密

Ø  排序生成待簽名字符串url

對參數數組裏的每個值從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個字符。不然,支付寶會重發處理結果的通知。

相關文章
相關標籤/搜索