一、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以備稽核,稽核通過後即可進行代碼內建。
流程解釋:
-
- app攜帶支付資訊調用支付接口請求支付寶用戶端調起支付界面;
- 使用者操作,輸入密碼支付,支付成功;直接傳回取消支付;出現錯誤,支付失敗;進入支付界面,但輸入密碼支付,支付待确認;
- 支付寶用戶端将支付結果告訴app用戶端,商戶伺服器通知app伺服器支付結果;
- app用戶端處理支付結果;
- app伺服器處理支付結果。
1、開發前準備:在微信開放平台上申請開發者帳戶,申請移動應用,并且申請開通微信支付。經過一系列流程,開通會有郵件,得到對應的(1)開放平台APPID(2)商戶号MCHID(3)商戶密鑰key、下載下傳微信SDK開發包。
1. 用戶端請求訂單
2.認證商戶,擷取access_token
3、組裝生成預定單所需參數并簽名
4、調用微信統一下單接口并傳遞參數,得到預訂單号
5、對得到的預定單參數再次簽名
6、調起微信支付并驗證參數有效性
7、驗證通過,提示使用者輸入支付密碼
8、送出支付,異步傳回支付結果和訂單詳情
9、用戶端同步跳轉頁面。
③、銀聯支付接入:
1、開發前準備:商戶與銀聯簽約并支付費用,稽核通過之後擷取商戶ID和秘鑰、下載下傳銀聯接入Demo、下載下傳內建到APP中的SDK開發包 (https://open.unionpay.com/ajweb/help/file)。
(1)使用者在用戶端中點選購買商品,用戶端發起訂單生成請求到商戶背景;
(2)商戶背景收到訂單生成請求後,按照《手機控件支付産品接口規範》組織并推送訂單資訊至銀聯背景;
(3)銀聯背景接收訂單資訊并檢查通過後,生成對應交易流水号(即TN),并回複至商戶背景(應答要素:交易流水号等);
(4)商戶背景接收到交易流水号(TN),将交易流水号傳回至用戶端;
(5)用戶端通過交易流水号(TN)調用支付控件;
(6)使用者在支付控件中輸入相關支付資訊後,由支付控件向銀聯背景發起支付請求;
(7)支付成功後,銀聯背景将支付結果通知給商戶背景;