支付宝手机网页支付
本節(jié)主要描寫敘述支付寶手機(jī)站點(diǎn)支付,開(kāi)發(fā)網(wǎng)址:https://b.alipay.com/order/productDetail.htm?productId=2013080604609688,光找這個(gè)找了半天,呵呵
在網(wǎng)頁(yè)中部有四個(gè)標(biāo)簽頁(yè),選擇“技術(shù)集成”,下載集成開(kāi)發(fā)包,里面有相關(guān)的技術(shù)文檔和三種語(yǔ)言的代碼演示樣例。代碼演示樣例中差點(diǎn)兒集成了全部的代碼邏輯。client及服務(wù)端僅僅須要將代碼拷入自己的項(xiàng)目就可以。
手機(jī)網(wǎng)頁(yè)支付產(chǎn)品由手機(jī)網(wǎng)頁(yè)即時(shí)到賬授權(quán)接口(alipay.wap.trade.create.direct)、手機(jī)網(wǎng)頁(yè)即時(shí)到賬交易接口(alipay.wap.auth.authandexecute)兩個(gè)接口組成。
必須先調(diào)用手機(jī)網(wǎng)頁(yè)即時(shí)到賬授權(quán)接口(alipay.wap.trade.create.direct)獲得授權(quán)令牌。再調(diào)用手機(jī)網(wǎng)頁(yè)即時(shí)到賬交易接口(alipay.wap.auth.authandexecute)完畢付款。
在手機(jī)網(wǎng)頁(yè)即時(shí)到賬授權(quán)接口(alipay.wap.trade.create.direct)中,提交方式僅支持POST。在手機(jī)網(wǎng)頁(yè)即時(shí)到賬交易接口(alipay.wap.auth.authandexecute)中。提交方式僅支持GET,在webview中加載交易接口的url和請(qǐng)求參數(shù)即會(huì)轉(zhuǎn)入支付寶網(wǎng)頁(yè)的支付界面。具體接口和請(qǐng)求參數(shù)的說(shuō)明和使用在開(kāi)發(fā)文檔上已經(jīng)介紹的非常具體了。假設(shè)還有不明確的地方能夠直接參考代碼Demo,Java演示樣例能夠直接導(dǎo)入到Eclipse中執(zhí)行起來(lái),能夠直接演示整個(gè)支付流程。須要注意的地方就是,由于是手機(jī)端網(wǎng)頁(yè)接入,在電腦上用瀏覽器演示的時(shí)候,會(huì)提示"為保障用戶賬戶安全,禁止非手機(jī)訪問(wèn)",我用的是chrome瀏覽器。直接裝上改動(dòng)uagent的插件,更改為Android或其他clientua就可以使用。
支付寶處理完請(qǐng)求后,分兩種方式返回處理結(jié)果。
一種是頁(yè)面跳轉(zhuǎn)同步通知。一種為server異步通知。以下主要講一下這兩種方式的不同。
返回頁(yè)面(return_url文件)工作原理 (同步通知)
即:商戶系統(tǒng)請(qǐng)求/支付寶響應(yīng)交互模式?
1、?構(gòu)造請(qǐng)求數(shù)據(jù)?
商戶通過(guò)提供的接口代碼演示樣例,通過(guò)代碼演示樣例的規(guī)則,程序構(gòu)造與運(yùn)算得到sign加密結(jié)果以及構(gòu)造后的請(qǐng)求給支付寶的數(shù)據(jù)集合。GET方式下是URL地址鏈接,POST方式下是支付寶網(wǎng)關(guān)地址及參數(shù)集合。?
2、?發(fā)送請(qǐng)求數(shù)據(jù)?
把構(gòu)造完畢的數(shù)據(jù)集合。通過(guò)頁(yè)面鏈接跳轉(zhuǎn)或表單提交的方式傳遞給支付寶。?
3、?請(qǐng)求的交易?
支付寶得到這些集合后,會(huì)先做安全校驗(yàn)等驗(yàn)證。一系列驗(yàn)證通過(guò)后便會(huì)處理完畢這次發(fā)送過(guò)來(lái)的數(shù)據(jù)請(qǐng)求。?
4、?返回對(duì)應(yīng)數(shù)據(jù)?
支付寶對(duì)處理完畢的交易,程序上自己主動(dòng)進(jìn)行又一次構(gòu)造成URL地址鏈接,以自己主動(dòng)跳轉(zhuǎn)的方式跳回商家在請(qǐng)求時(shí)設(shè)定好的頁(yè)面路徑地址(參數(shù)return_url,商家沒(méi)設(shè)定。則不會(huì)跳回)。
?
5、?對(duì)對(duì)應(yīng)的數(shù)據(jù)進(jìn)行處理
商家的返回頁(yè)面(參數(shù)return_url指定頁(yè)面文件)得到支付寶返回的數(shù)據(jù)。把這些數(shù)據(jù)結(jié)合自身站點(diǎn)情況。進(jìn)行數(shù)據(jù)處理(如:訂單更新)。
?
返回頁(yè)面(notify_url文件)工作原理?(server異步通知)
即:支付寶主動(dòng)通知交互模式(支付寶反饋數(shù)據(jù))?
前提:若要支付寶能主動(dòng)通知。需商戶在請(qǐng)求時(shí)設(shè)定好通知的頁(yè)面路徑(參數(shù)notify_url),且該頁(yè)面文件全然空白。無(wú)不論什么字符。?
1、?發(fā)起通知?
一旦交易狀態(tài)發(fā)生變更(如:買家已付款,等待賣家發(fā)貨),支付寶便會(huì)依據(jù)自己主動(dòng)進(jìn)行數(shù)據(jù)處理,并主動(dòng)調(diào)用商戶在請(qǐng)求時(shí)設(shè)定好通知的頁(yè)面路徑(參數(shù)notify_url)?
2、?對(duì)通知數(shù)據(jù)進(jìn)行處理?
商戶站點(diǎn)收到支付寶發(fā)送過(guò)來(lái)的通知數(shù)據(jù)。把這些數(shù)據(jù)結(jié)合自身站點(diǎn)情況。進(jìn)行數(shù)據(jù)處理。如:處理返回頁(yè)(參數(shù)return_url)漏掉的訂單。做訂單更新,即補(bǔ)單措施。?
3、?在頁(yè)面上輸出success?
商戶站點(diǎn)處理完畢全部的數(shù)據(jù)處理以后,即程序執(zhí)行最后,返回寫頁(yè)面“success”這7個(gè)字符(頁(yè)面上僅僅同意輸出success),以表示自己已經(jīng)成功處理完畢自己的業(yè)務(wù)。?
4、?完畢處理該次通知,不再發(fā)送通知?
支付寶得到商戶反饋回來(lái)的“success”7個(gè)字符信息,進(jìn)行核對(duì)與驗(yàn)證,結(jié)束此次通知流程。?
注意:?
假設(shè)商戶反饋給支付寶的字符不是success這7個(gè)字符,支付寶server會(huì)不斷重發(fā)通知,直到超過(guò)24小時(shí)22分鐘。普通情況下?25?小時(shí)以內(nèi)完畢8?次通知(通知的間隔頻率通常是:2m,10m,10m,1h,2h,6h,15h)。
??
同步返回(return_url)和異步返回(notify_url)的差別【return_url和notify_url參數(shù)必須是兩個(gè)返回處理文件的絕對(duì)路徑】?
答:同步返回處理(return_url):是一種可視化的返回,瀏覽器頁(yè)面跳轉(zhuǎn)通知,僅僅要支付成功。支付寶通過(guò)get方式跳轉(zhuǎn)到這個(gè)地址,而且?guī)в袇?shù)給這個(gè)頁(yè)面。客戶獲取信息受到買家操作的影響。假設(shè)買家支付完
成后客戶server響應(yīng)比較慢,買家在顯示支付寶提示的“即時(shí)到賬支付成功“時(shí)關(guān)閉頁(yè)面,那么客戶站點(diǎn)是獲取不到信息,我們這邊稱為” 掉單“。
并且這個(gè)返回處理是一次性調(diào)取,即支付成功后才調(diào)取同步返回處理。
異步返回處理(notify_url):它的數(shù)據(jù)交互是通過(guò)server間進(jìn)行數(shù)據(jù)交互,必須將其放置在server上(公網(wǎng))測(cè)試,serverpost消息到異步返回處理頁(yè)面,須要客戶技術(shù)在異步返回處理頁(yè)面處理相關(guān)的數(shù)據(jù)處理
,然后每一步操作都要返回給支付寶success(不能包括其它的HTML腳本語(yǔ)言,不能夠做頁(yè)面跳轉(zhuǎn)。)這個(gè)返回處理假設(shè)集成OK。那么基本不會(huì)出現(xiàn)掉單,由于支付寶會(huì)在24小時(shí)之內(nèi)分6~10次將訂單信息返回
個(gè)給客戶站點(diǎn),直到支付寶捕獲success。
備注:同步返回處理則會(huì)受到買家操作的影響:
假如買家在操作的時(shí)候,支付寶完成進(jìn)入支付寶提示成功頁(yè)面,這個(gè)時(shí)候因?yàn)閟erver對(duì)應(yīng)比較慢。那么買家有可能會(huì)關(guān)閉這個(gè)頁(yè)面。這個(gè)時(shí)候您們就會(huì)接受不到支付寶返回的信息。還有有些網(wǎng)銀支付后也不會(huì)調(diào)取支付寶的同步返
回處理頁(yè)面。這樣您在同步做數(shù)據(jù)處理相同接受不到數(shù)據(jù)。
總結(jié)
- 上一篇: 座位被占 女子爬火车行李架睡觉:千万不要
- 下一篇: Renascence架构原理——最优化算