天天看點

wap站、手機APP 接入支付寶、微信、銀聯支付。

 一、wap站

 ①、支付寶接入

  1、開發前準備:申請一個通過實名認證的企業支付寶賬号,并申請開通手機WAP支付功能。

  2、流程

    參數準備:

    1. 企業支付寶賬号的PID(也叫ParnerID)和KEY,如果使用RSA簽名而不是MD5的話,還要把RSA私鑰準備好
    2. 支付時使用者看到的東西:商品名稱(subject)、支付總額(total_fee)、購買數量(通常都是1吧)
    3. 交易後的跳轉位址,交易成功後使用者可以手工點選,或頁面延遲自動跳轉到這個位址(return_url)
    4. 交易狀态異步通知位址,交易成功或交易關閉會把消息POST到這個位址(notify_url)

    流程圖:

    

wap站、手機APP 接入支付寶、微信、銀聯支付。

    流程解釋:     

    1. 使用者點選購買按鈕(或其他形式),向網站發起購買請求
    2. 網站建立訂單,指派一個唯一訂單号
    3. 網站把訂單号、企業支付寶賬号、交易金額、數量等資訊,用私鑰簽名發送給支付寶
    4. 支付寶建立一個交易訂單,傳回一個交易令牌(token)
    5. 網站按照指定要求,用token和自己的私鑰,構造一個重定向得到支付位址
    6. 網站把重定向位址傳回給浏覽器
    7. 浏覽器自動重定向到該位址,即包含了token、網站簽名的支付寶交易頁面
    8. 支付寶顯示目前交易金額、數量、賣家等資訊
    9. 使用者用自己的支付寶賬号支付這筆金額
    10. 支付寶把使用者支付成功(或失敗)這個消息和訂單号加上支付寶的簽名,使用HTTP POST的方式通知網站(失敗的話,會隔段時間重新發送)
    11. 網站處理交易後續邏輯(發貨、訂單狀态存儲之類的)
    12. 網站傳回"success"字元串給支付寶,表示該通知已經處理,不用再重發
    13. 支付寶顯示支付成功頁面給使用者(這一步和第10步是不分先後發生的)
    14. 支付成功頁面延遲自動跳轉,或使用者點選“傳回商戶頁面”,跳轉到網站的支付結束頁面(此時不一定成功處理支付寶發來的通知),但會在URL帶上目前的訂單号和狀态。

  3、總結:整個流程主要分三步:一是申請支付寶交易号(擷取token),這一步可以了解為,讓支付寶驗證網站的有效性、讓網站指定該交易要支付多少錢 二是使用者到支付寶頁面付款,這一步可以了解為,讓支付寶驗證使用者有效性,讓使用者在一個不受網站監視的環境下進行支付 三是使用者付款後,處理結果頁面告訴使用者支付成功(同步通知),另外異步通知網站伺服器該訂單已支付。

 ②、微信支付接入

  1、開發前準備:商戶在微信公衆平台(申請掃碼支付、公衆号支付)或開放平台(申請APP支付)按照相應提示,申請相應微信支付模式。微信支付從業人員稽核資料無誤後開通相應的微信支付權限。微信支付申請稽核通過後,商戶在申請資料填寫的郵箱中收取到由微信支付小助手發送的郵件,此郵件包含開發時需要使用的支付賬戶資訊。

  2、流程:

wap站、手機APP 接入支付寶、微信、銀聯支付。

    流程解釋

      1、使用者在商戶側完成下單,使用微信支付進行支付

      2、由商戶背景向微信支付發起下單請求(調用統一下單接口)注:交易類型trade_type=MWEB

      3、統一下單接口傳回支付相關參數給商戶背景,如支付跳轉url(參數名“mweb_url”),商戶通過mweb_url調起微信支付中間頁

      4、中間頁進行H5權限的校驗,安全性檢查。

      5、如支付成功,商戶背景會接收到微信側的異步通知

      6、使用者在微信支付收銀台完成支付或取消支付,傳回商戶頁面(預設為傳回支付發起頁面)

      7、商戶在展示頁面,引導使用者主動發起支付結果的查詢

      8,9、商戶背景判斷是否接到收微信側的支付結果通知,如沒有,背景調用我們的訂單查詢接口确認訂單狀态

      10、展示最終的訂單支付結果給使用者

③、銀聯接入

  1、開發前準備:商戶與銀聯簽約并支付費用,稽核通過之後擷取商戶ID和秘鑰、下載下傳銀聯接入Demo。

  2、流程圖:

wap站、手機APP 接入支付寶、微信、銀聯支付。

    流程圖解釋:

wap站、手機APP 接入支付寶、微信、銀聯支付。

二、手機APP

①、支付寶接入

  1、開發前準備:申請一個通過實名認證的企業支付寶賬号、下載下傳SDK開發包、提供APP apk以備稽核,稽核通過後即可進行代碼內建。

wap站、手機APP 接入支付寶、微信、銀聯支付。

    流程解釋:

    1. app攜帶支付資訊調用支付接口請求支付寶用戶端調起支付界面;
    2. 使用者操作,輸入密碼支付,支付成功;直接傳回取消支付;出現錯誤,支付失敗;進入支付界面,但輸入密碼支付,支付待确認;
    3. 支付寶用戶端将支付結果告訴app用戶端,商戶伺服器通知app伺服器支付結果;
    4. app用戶端處理支付結果;
    5. app伺服器處理支付結果。

  1、開發前準備:在微信開放平台上申請開發者帳戶,申請移動應用,并且申請開通微信支付。經過一系列流程,開通會有郵件,得到對應的(1)開放平台APPID(2)商戶号MCHID(3)商戶密鑰key、下載下傳微信SDK開發包。

wap站、手機APP 接入支付寶、微信、銀聯支付。

      1. 用戶端請求訂單

      2.認證商戶,擷取access_token

      3、組裝生成預定單所需參數并簽名

      4、調用微信統一下單接口并傳遞參數,得到預訂單号

      5、對得到的預定單參數再次簽名

      6、調起微信支付并驗證參數有效性

      7、驗證通過,提示使用者輸入支付密碼

      8、送出支付,異步傳回支付結果和訂單詳情

      9、用戶端同步跳轉頁面。

  

③、銀聯支付接入:

  1、開發前準備:商戶與銀聯簽約并支付費用,稽核通過之後擷取商戶ID和秘鑰、下載下傳銀聯接入Demo、下載下傳內建到APP中的SDK開發包                  (https://open.unionpay.com/ajweb/help/file)。

wap站、手機APP 接入支付寶、微信、銀聯支付。

      (1)使用者在用戶端中點選購買商品,用戶端發起訂單生成請求到商戶背景;

      (2)商戶背景收到訂單生成請求後,按照《手機控件支付産品接口規範》組織并推送訂單資訊至銀聯背景;

      (3)銀聯背景接收訂單資訊并檢查通過後,生成對應交易流水号(即TN),并回複至商戶背景(應答要素:交易流水号等);

      (4)商戶背景接收到交易流水号(TN),将交易流水号傳回至用戶端;

      (5)用戶端通過交易流水号(TN)調用支付控件;

      (6)使用者在支付控件中輸入相關支付資訊後,由支付控件向銀聯背景發起支付請求;

      (7)支付成功後,銀聯背景将支付結果通知給商戶背景;