此博客不更新好久了, 更新的文檔在這, 有興趣到這裏圍觀:node
---------------------------------------------------github
因項目須要,要增長支付寶手機網站支付功能,找了支付寶的樣例代碼和接口說明,折騰兩天搞定,謹以此文做爲這兩天摸索的總結。因爲公司有本身的支付接口,並不直接使用這個接口,因此晚些時候打算把測試代碼整理好放到Github上。瀏覽器
github上有兩個開源小項目(搜索 alipay
),但都沒有WAP支付功能,能夠拿來當參考,能夠認爲是示例代碼的js移植版,結構很相像。我原打算在其中一個項目基礎上繼續開發,看了代碼和接口文檔後,仍是決定從頭開發一個。由於原有代碼層次不夠清晰,有點過分設計的感受,並且支付寶的接口很簡單,重寫工做量不大。服務器
吐槽下: 官網的示例代碼真只是示例級(test)而已,跟產品級(production)還隔比較遠,感受還談不上SDK。接口文檔至關的坑爹,正因如此我才以爲有必要好好寫篇文章總結。異步
接口開發最重要的應該是理解數據交互流程了,流程弄清了,並理解爲什麼這麼設計,開發起來也是事半功倍測試
首先,要準備下面幾個參數:網站
a. 企業支付寶帳號的PID(也叫ParnerID)和KEY,若是使用RSA簽名而不是MD5的話,還要把RSA私鑰準備好url
b. 支付時用戶看到的東西:商品名稱(subject)、支付總額(total_fee)、購買數量(一般都是1吧)spa
c. 交易後的跳轉地址,交易成功後用戶能夠手工點擊,或頁面延遲自動跳轉到這個地址(return_url)
d. 交易狀態異步通知地址,交易成功或交易關閉會把消息POST到這個地址(notify_url)
而後,看這幅流程圖(不錯吧,推薦下這個網站:)
這個流程圖基本囊括了整個交互過程,下面是說明:
能夠發現,整個流程有點像OAuth(哎呀,以前那篇文章還沒寫完呢!),主要分三步:
一是申請支付寶交易號(獲取token),這一步能夠理解爲,讓支付寶驗證網站的有效性、讓網站指定該交易要支付多少錢 二是用戶到支付寶頁面付款,這一步能夠理解爲,讓支付寶驗證用戶有效性,讓用戶在一個不受網站監視的環境下進行支付 三是用戶付款後,處理結果頁面告訴用戶支付成功(同步通知),另外異步通知網站服務器該訂單已支付。
支付寶的接口文檔說只有兩個步驟,感受不是很好理解,三步仍是比較準確的(收錢確定要辦事的嘛)。
好睏,細節問題下期繼續。。。