支付宝支付之扫码支付(电脑网站支付)、H5支付(手机网站支付)相关业务流程分析总结
前言
在上一篇文章《微信支付之掃碼支付、公眾號支付、H5支付、小程序支付相關(guān)業(yè)務(wù)流程分析總結(jié)》中,分析和總結(jié)了微信支付相關(guān)支付類型的業(yè)務(wù)流程,這里作為與微信支付平起平坐不相伯仲的支付寶支付,當(dāng)然也是每個公司少不了的第三方支付接入選擇。
因此,本篇文章主要分析和總結(jié)支付寶支付中的掃碼支付、H5支付相關(guān)業(yè)務(wù)流程。
概述
1.電腦網(wǎng)站支付
電腦網(wǎng)站支付,也稱掃碼支付,是專門針對電腦而開發(fā)的一種支付方式,既在網(wǎng)頁展示一個動態(tài)生成的支付二維碼,用戶通過手機支付寶掃碼以后可實現(xiàn)支付功能的一種支付方式。
2.手機網(wǎng)站支付
手機網(wǎng)站支付,是專門針對手機而開發(fā)的一種支付方式,跟掃碼支付不一樣的是,手機網(wǎng)站支付可以喚醒手機中安裝的支付寶APP,直接通過支付寶APP實現(xiàn)支付功能;如果手機中沒有安裝支付寶APP,則會通過手機網(wǎng)頁支付流程實現(xiàn)支付功能。
開發(fā)前準(zhǔn)備
1.電腦網(wǎng)站支付
電腦網(wǎng)站支付的流程目前分新老版本兩種,新版本開發(fā)文檔地址:
https://docs.open.alipay.com/270/105899/
老版本開發(fā)文檔地址:
https://docs.open.alipay.com/62/103566
因本人所在公司目前所用的電腦網(wǎng)站支付依舊用的是老版本的支付功能,因此文中會對老版本的業(yè)務(wù)流程做一定分析。
老版本:
登錄支付寶開放平臺后臺,查詢到合作伙伴身份(PID),然后根據(jù)開發(fā)文檔正確配置RSA密鑰。密鑰配置操作手冊:https://docs.open.alipay.com/common/104740
老版本的支付接口叫及時到賬接口,最原來的時候支付寶官方也是封裝了一套開發(fā)demo的,后來由于新版本的到來,老版本的demo就被屏蔽了,我找了好半天都沒能在官網(wǎng)文檔中找到,因此只好到其他網(wǎng)站去找,于是找到了這篇文章《支付寶即時到賬接口》,在這篇文章中找到了下載老版本demo的鏈接地址:
<a >下載DEMO</a>
如果鏈接失效,則請訪問我的百度網(wǎng)盤:https://pan.baidu.com/s/1scJRwAIhIfkXbhf8cegZkg;下載完畢后的demo結(jié)構(gòu)如下:
上圖中分別是MD5跟RSA兩中簽名版本的SDK,打開文件夾以后又分貝包含了C#、JAVA、PHP三個版本的內(nèi)容,這里選用C#版本,在往里打開就是具體的項目結(jié)構(gòu)了:
其中主要demo源碼就封裝在app_code中:
有了開發(fā)demo,再結(jié)合官方文檔的指導(dǎo),將文件夾app_code中的所有內(nèi)容復(fù)制粘貼到實際開發(fā)項目中,就可進(jìn)行實際開發(fā)應(yīng)用了。官方操作文檔:https://docs.open.alipay.com/62/104746/
新版本:
登錄支付寶開放平臺,在開發(fā)者中心登記應(yīng)用,獲得應(yīng)用唯一標(biāo)識(APPID),最后提交審核,待審核通過后該應(yīng)用可正式使用;
配置密鑰。操作手冊地址:https://docs.open.alipay.com/200/105310;
搭建和配置開發(fā)環(huán)境。電腦網(wǎng)站支付SDK與Demo:https://docs.open.alipay.com/270/106291/
新版本的demo下載到本地以后的項目目錄如下:
新版本的demo已經(jīng)將大部分內(nèi)容封裝成了DLL,只保留了一個需要開發(fā)者自己去配置的類文件config.cs;因此開發(fā)前需要將BIn目錄下的AopSdk.dll應(yīng)用到項目中,并且將config.cs復(fù)制到項目中。
其余事情則按官方開發(fā)文檔操作即可。
2.手機網(wǎng)站支付
1.登錄支付寶開放平臺,根據(jù)實際需要創(chuàng)建應(yīng)用,這里選擇手機網(wǎng)站支付類型;配置相關(guān)參數(shù)后提交審核,審核通過后即可使用;開發(fā)平臺操作手車URL:
https://docs.open.alipay.com/203/105910/
2. 搭建和配置開發(fā)環(huán)境。首先下載服務(wù)獨膽SDK,并將相關(guān)SDK內(nèi)容應(yīng)用到開發(fā)項目中;SDK下載地址:
https://docs.open.alipay.com/203/105910/
手機網(wǎng)站支付的SDK跟電腦網(wǎng)站支付的最新版SDK是一樣的,這里就不做重復(fù)介紹。
對于電腦網(wǎng)站支付、手機網(wǎng)站支付中都提到的密鑰配置,支付寶官方文檔提供了相應(yīng)的配置工具,但是僅針對與RSA簽名方式,RSA密鑰下載及操作文檔:https://docs.open.alipay.com/291/105971,下載了密鑰生成工具后,解壓壓縮包:
雙擊點擊RSA簽名驗簽工具.bat:
最后將商戶公鑰上傳至支付寶開放平臺,保留商戶私鑰給到自己,下面就可以進(jìn)行開發(fā)了。
業(yè)務(wù)流程
因公司項目接入的是支付寶電腦網(wǎng)站支付的老版本,所以這里會對新版本的業(yè)務(wù)流程做一個梳理。
1.電腦網(wǎng)站支付
老版本業(yè)務(wù)流程:
用戶在電腦下單,選擇支付寶支付;
商戶后臺生成訂單,并準(zhǔn)備和組合好調(diào)起支付寶支付所需的參數(shù),最終形成跳轉(zhuǎn)到支付寶網(wǎng)頁的URL鏈接。
商戶后臺跳轉(zhuǎn)至上一步形成的URL,既跳轉(zhuǎn)至支付寶網(wǎng)頁;
支付寶后臺接收請求并處理;
支付寶網(wǎng)頁展示支付二維碼;
用戶打開手機支付寶進(jìn)行掃碼支付;
支付寶后臺檢測到支付成功,跳轉(zhuǎn)至商戶回調(diào)頁面,并向商戶異步通知地址發(fā)送通知;
商戶在回調(diào)頁面獲取回調(diào)信息,并作相關(guān)業(yè)務(wù)邏輯處理,并根據(jù)成功或失敗的情況做跳轉(zhuǎn)到到支付成功或失敗頁面的處理;
商戶后臺異步通知地址收到支付寶的異步通知,并做相關(guān)業(yè)務(wù)邏輯處理,最終返回success或fail的標(biāo)識以告知支付寶商戶后臺已經(jīng)收到通知。
新版本業(yè)務(wù)流程:
用戶在電腦下單,選擇支付寶支付;
商戶后臺生成訂單,并準(zhǔn)備和組合好調(diào)起支付寶支付所需的參數(shù),調(diào)用統(tǒng)一下單接口;
支付寶返回前臺頁面請求需要的完整form表單的html(包含自動提交腳本),商戶直接輸出該HTML到前臺頁面,最終將支付二維碼展示給用戶;
用戶打開手機支付寶進(jìn)行掃碼支付;
支付寶后臺檢測到支付成功,跳轉(zhuǎn)至商戶回調(diào)頁面,并向商戶異步通知地址發(fā)送通知;
商戶在回調(diào)頁面獲取回調(diào)信息,并作相關(guān)業(yè)務(wù)邏輯處理,并根據(jù)成功或失敗的情況做跳轉(zhuǎn)到到支付成功或失敗頁面的處理;
商戶后臺異步通知地址收到支付寶的異步通知,并做相關(guān)業(yè)務(wù)邏輯處理,最終返回success或fail的標(biāo)識以告知支付寶商戶后臺已經(jīng)收到通知。
2.手機網(wǎng)站支付
支付寶的手機網(wǎng)站支付目前也分新老版本兩種,但由于惠庶網(wǎng)項目采用的是新版本支付,因此下面只介紹新版本的業(yè)務(wù)流程。
用戶在手機端下單,選擇支付寶支付;
商戶系統(tǒng)按照手機網(wǎng)站支付接口alipay.trade.wap.payAPI的參數(shù)規(guī)范生成訂單數(shù)據(jù),并以包含form表單的HTML形式輸出到前端頁面;
前端頁面通過form表單的形式請求到支付寶;
支付寶將頁面跳轉(zhuǎn)至支付寶收銀臺,如果用戶手機安裝了支付寶APP,則自動喚起支付寶APP,否則就調(diào)用支付寶網(wǎng)頁支付;
用戶輸入密碼進(jìn)行支付操作;
支付寶后臺檢測到支付成功,跳轉(zhuǎn)至商戶回調(diào)頁面,并向商戶異步通知地址發(fā)送通知;
商戶在回調(diào)頁面獲取回調(diào)信息,并作相關(guān)業(yè)務(wù)邏輯處理,并根據(jù)成功或失敗的情況做跳轉(zhuǎn)到到支付成功或失敗頁面的處理;
商戶后臺異步通知地址收到支付寶的異步通知,并做相關(guān)業(yè)務(wù)邏輯處理,最終返回success或fail的標(biāo)識以告知支付寶商戶后臺已經(jīng)收到通知。
分析和總結(jié)
1. 支付寶支付的新老版本電腦網(wǎng)站支付、手機網(wǎng)站支付支付接口的請求參數(shù)中都有兩個參數(shù)return_url和notify_url,return_url傳的是支付完成后支付寶要跳轉(zhuǎn)的同步回調(diào)地址,notify_url傳的是支付寶支付完成后要發(fā)送異步通知的地址;但是支付寶向這兩個地址發(fā)送請求的順序是不定的,因此在兩個地址的后臺都需要做針對支付完成后訂單業(yè)務(wù)邏輯處理的操作;區(qū)別在于return_url操作完成以后直接跳轉(zhuǎn)到支付成功或失敗頁面,而notify_url則是返回SUCCESS或FAIL給到支付寶;
2. 支付寶電腦網(wǎng)站支付的老版本demo在官方文檔已經(jīng)找不到,因此如果不是原來項目中已經(jīng)使用了老版本開發(fā)demo,都建議使用新版本demo進(jìn)行開發(fā);
3. 電腦網(wǎng)站支付新老版本、手機網(wǎng)站支付調(diào)起支付寶支付的區(qū)別:
電腦網(wǎng)站老版本:根據(jù)及時到賬接口提供的請求參數(shù)說明,調(diào)用SDK生成可以調(diào)起支付寶支付的URL,商戶后臺直接做Respopnse.Redirect(URL)操作,既可調(diào)起支付寶支付。
電腦網(wǎng)站新版本:商戶調(diào)用統(tǒng)一下單接口,統(tǒng)一下單接口返回完整form表單的HTML(HTML中包含自動提交表單的腳本),商戶后臺輸出該form表單,即可調(diào)起支付寶支付。
手機網(wǎng)站新版本:商戶后臺向支付寶api發(fā)起支付請求,支付寶api返回完整form表單的HTML(HTML中包含自動提交的腳本),商戶后臺輸出form表單。即可掉漆支付寶支付。
4. 對于手機網(wǎng)站支付,在用戶將有form表單的HTML字符串輸出后,自動提交腳本會向支付寶收銀臺發(fā)起請求,支付寶收銀臺會先判斷用戶手機上是否安裝了支付寶APP,如有安裝,則調(diào)起支付寶APP發(fā)起支付功能,如果沒有,則跳轉(zhuǎn)至網(wǎng)頁版支付寶支付,實現(xiàn)支付功能。
如有發(fā)現(xiàn)錯誤及解釋不當(dāng)之處,歡迎大家指正。
參考文檔
手機網(wǎng)站支付(新版):https://docs.open.alipay.com/203/105285/
電腦網(wǎng)站支付(老版):https://docs.open.alipay.com/62/104746/
電腦網(wǎng)站支付(新版):https://docs.open.alipay.com/270/105899/
轉(zhuǎn)載請注明本文出處:https://www.cnblogs.com/luckyyang/p/9517402.html
總結(jié)
以上是生活随笔為你收集整理的支付宝支付之扫码支付(电脑网站支付)、H5支付(手机网站支付)相关业务流程分析总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021年流行色(2021年流行色服装)
- 下一篇: 网游公会名字(网游名字大全霸气)