一、wap站
①、支付寶接入
1、開發前准備:申請一個通過實名認證的企業支付寶賬號,並申請開通手機WAP支付功能。
2、流程
參數准備:
-
- 企業支付寶賬號的PID(也叫ParnerID)和KEY,如果使用RSA簽名而不是MD5的話,還要把RSA私鑰准備好
- 支付時用戶看到的東西:商品名稱(subject)、支付總額(total_fee)、購買數量(通常都是1吧)
- 交易后的跳轉地址,交易成功后用戶可以手工點擊,或頁面延遲自動跳轉到這個地址(return_url)
- 交易狀態異步通知地址,交易成功或交易關閉會把消息POST到這個地址(notify_url)
流程圖:
流程解釋:
-
- 用戶點擊購買按鈕(或其他形式),向網站發起購買請求
- 網站創建訂單,指派一個唯一訂單號
- 網站把訂單號、企業支付寶賬號、交易金額、數量等信息,用私鑰簽名發送給支付寶
- 支付寶創建一個交易訂單,返回一個交易令牌(token)
- 網站按照指定要求,用token和自己的私鑰,構造一個重定向得到支付地址
- 網站把重定向地址返回給瀏覽器
- 瀏覽器自動重定向到該地址,即包含了token、網站簽名的支付寶交易頁面
- 支付寶顯示當前交易金額、數量、賣家等信息
- 用戶用自己的支付寶賬號支付這筆金額
- 支付寶把用戶支付成功(或失敗)這個消息和訂單號加上支付寶的簽名,使用HTTP POST的方式通知網站(失敗的話,會隔段時間重新發送)
- 網站處理交易后續邏輯(發貨、訂單狀態存儲之類的)
- 網站返回"success"字符串給支付寶,表示該通知已經處理,不用再重發
- 支付寶顯示支付成功頁面給用戶(這一步和第10步是不分先后發生的)
- 支付成功頁面延遲自動跳轉,或用戶點擊“返回商戶頁面”,跳轉到網站的支付結束頁面(此時不一定成功處理支付寶發來的通知),但會在URL帶上當前的訂單號和狀態。
3、總結:整個流程主要分三步:一是申請支付寶交易號(獲取token),這一步可以理解為,讓支付寶驗證網站的有效性、讓網站指定該交易要支付多少錢 二是用戶到支付寶頁面付款,這一步可以理解為,讓支付寶驗證用戶有效性,讓用戶在一個不受網站監視的環境下進行支付 三是用戶付款后,處理結果頁面告訴用戶支付成功(同步通知),另外異步通知網站服務器該訂單已支付。
②、微信支付接入
1、開發前准備:商戶在微信公眾平台(申請掃碼支付、公眾號支付)或開放平台(申請APP支付)按照相應提示,申請相應微信支付模式。微信支付工作人員審核資料無誤后開通相應的微信支付權限。微信支付申請審核通過后,商戶在申請資料填寫的郵箱中收取到由微信支付小助手發送的郵件,此郵件包含開發時需要使用的支付賬戶信息。
2、流程:
流程解釋
1、用戶在商戶側完成下單,使用微信支付進行支付
2、由商戶后台向微信支付發起下單請求(調用統一下單接口)注:交易類型trade_type=MWEB
3、統一下單接口返回支付相關參數給商戶后台,如支付跳轉url(參數名“mweb_url”),商戶通過mweb_url調起微信支付中間頁
4、中間頁進行H5權限的校驗,安全性檢查。
5、如支付成功,商戶后台會接收到微信側的異步通知
6、用戶在微信支付收銀台完成支付或取消支付,返回商戶頁面(默認為返回支付發起頁面)
7、商戶在展示頁面,引導用戶主動發起支付結果的查詢
8,9、商戶后台判斷是否接到收微信側的支付結果通知,如沒有,后台調用我們的訂單查詢接口確認訂單狀態
10、展示最終的訂單支付結果給用戶
③、銀聯接入
1、開發前准備:商戶與銀聯簽約並支付費用,審核通過之后獲取商戶ID和秘鑰、下載銀聯接入Demo。
2、流程圖:
流程圖解釋:
二、手機APP
①、支付寶接入
1、開發前准備:申請一個通過實名認證的企業支付寶賬號、下載SDK開發包、提供APP apk以備審核,審核通過后即可進行代碼集成。
2、流程
流程圖:
流程解釋:
-
- app攜帶支付信息調用支付接口請求支付寶客戶端調起支付界面;
- 用戶操作,輸入密碼支付,支付成功;直接返回取消支付;出現錯誤,支付失敗;進入支付界面,但輸入密碼支付,支付待確認;
- 支付寶客戶端將支付結果告訴app客戶端,商戶服務器通知app服務器支付結果;
- app客戶端處理支付結果;
- app服務器處理支付結果。
②、微信支付接入
1、開發前准備:在微信開放平台上申請開發者帳戶,申請移動應用,並且申請開通微信支付。經過一系列流程,開通會有郵件,得到對應的(1)開放平台APPID(2)商戶號MCHID(3)商戶密鑰key、下載微信SDK開發包。
2、流程:
流程解釋:
1. 客戶端請求訂單
2.認證商戶,獲取access_token
3、組裝生成預定單所需參數並簽名
4、調用微信統一下單接口並傳遞參數,得到預訂單號
5、對得到的預定單參數再次簽名
6、調起微信支付並驗證參數有效性
7、驗證通過,提示用戶輸入支付密碼
8、提交支付,異步返回支付結果和訂單詳情
9、客戶端同步跳轉頁面。
③、銀聯支付接入:
1、開發前准備:商戶與銀聯簽約並支付費用,審核通過之后獲取商戶ID和秘鑰、下載銀聯接入Demo、下載集成到APP中的SDK開發包 (https://open.unionpay.com/ajweb/help/file)。
2、流程圖:
流程圖解釋:
(1)用戶在客戶端中點擊購買商品,客戶端發起訂單生成請求到商戶后台;
(2)商戶后台收到訂單生成請求后,按照《手機控件支付產品接口規范》組織並推送訂單信息至銀聯后台;
(3)銀聯后台接收訂單信息並檢查通過后,生成對應交易流水號(即TN),並回復至商戶后台(應答要素:交易流水號等);
(4)商戶后台接收到交易流水號(TN),將交易流水號返回至客戶端;
(5)客戶端通過交易流水號(TN)調用支付控件;
(6)用戶在支付控件中輸入相關支付信息后,由支付控件向銀聯后台發起支付請求;
(7)支付成功后,銀聯后台將支付結果通知給商戶后台;
(8)銀聯后台同時也將支付結果通知支付控件;
(9)支付控件顯示支付結果並將支付結果返回至客戶端;
此處備注:我們是通過后台獲取訂單,我們可以根據商品id等信息通過后台接口獲取訂單信息,對訂單支付流程的簽名加密過程后台完成。