手機頁面如何接入支付寶

之前由于項目需要胜嗓,我所負責的產(chǎn)品有接入支付寶,今天抽出時間整理了出了與支付寶對接的流程或粮。文章大部分內(nèi)容都是直接引用的螞蟻金服開放平臺上的開發(fā)文檔幽歼,我只是做了一些整理朵锣。如果有興趣,可以點擊下面的網(wǎng)址閱讀詳細的開發(fā)文檔甸私。

(內(nèi)容來源:https://openhome.alipay.com/developmentDocument.htm

1诚些、想要接入支付寶,首先你必須滿足以下準入條件:

1.1皇型、必需是實名認證用戶诬烹;

1.2、企業(yè)或個體商戶申請弃鸦;

1.3绞吁、需提供真實有效的營業(yè)執(zhí)照,且支付寶賬戶名稱需與營業(yè)執(zhí)照主體一致寡键;

1.4掀泳、網(wǎng)站必須通過ICP備案;

2西轩、計費模式:

2.1员舵、費率按單筆計算;一般行業(yè)費率:0.6%藕畔;

2.2马僻、特殊行業(yè)費率:1.2%,特殊行業(yè)范圍包括:手機注服、通訊設(shè)備銷售韭邓;家用電器;數(shù)碼產(chǎn)品及配件溶弟;休閑游戲女淑;網(wǎng)絡(luò)游戲點卡、渠道代理辜御;游戲系統(tǒng)商鸭你;網(wǎng)游周邊服務(wù)、交易平臺擒权;網(wǎng)游運營商(含網(wǎng)頁游戲)袱巨。

3、使用螞蟻金服開放平臺服務(wù)端SDK快速接入手機網(wǎng)站支付產(chǎn)品碳抄,完成與支付寶對接:

3.1愉老、創(chuàng)建應(yīng)用并獲取APPID

登錄螞蟻金服開放平臺(open.alipay.com),登記個人應(yīng)用后剖效,審核通過將會得到應(yīng)用的唯一標識(APPID)嫉入。

3.2、配置密鑰

開發(fā)者調(diào)用接口前需要先生成RSA密鑰贱鄙,RSA密鑰包含應(yīng)用私鑰(APP_PRIVATE_KEY)劝贸、應(yīng)用公鑰(APP_PUBLIC_KEY)。

詳情見:https://doc.open.alipay.com/docs/doc.htm逗宁?treeId=291&articleId=105971&docType=1

3.3映九、搭建和配置開發(fā)環(huán)境

3.3.1、下載服務(wù)器端SDK

下載地址:https://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType=1

3.3.2瞎颗、接口調(diào)用配置

在使用SDK調(diào)用具體API前件甥,進行初始化,代碼如下:

3.4哼拔、調(diào)用接口

3.4.1引有、手機網(wǎng)站支付產(chǎn)品包含兩類API:

頁面跳轉(zhuǎn)類:需要從前端頁面以Form表單的形式發(fā)起請求,瀏覽器會自動跳轉(zhuǎn)至支付寶的相關(guān)頁面(一般是收銀臺或簽約頁面)倦逐,用戶在該頁面完成相關(guān)業(yè)務(wù)操作后再回跳到商戶指定頁面譬正。例如本產(chǎn)品中的手機網(wǎng)站支付接口alipay.trade.wap.pay

系統(tǒng)調(diào)用類:直接從服務(wù)端發(fā)起HTTP請求,支付寶會同步返回請求結(jié)果曾我。例如本產(chǎn)品中的交易查詢等配套API粉怕。

3.4.2、接口調(diào)用流程:

如上圖所示:

第一步:用戶在商戶的H5網(wǎng)站下單支付后抒巢,商戶系統(tǒng)按照手機網(wǎng)站支付接口alipay.trade.wap.payAPI的參數(shù)規(guī)范生成訂單數(shù)據(jù)贫贝。

第二步:然后在前端頁面通過Form表單的形式請求到支付寶。此時支付寶會自動將頁面跳轉(zhuǎn)至支付寶H5收銀臺頁面蛉谜,如果用戶手機上安裝了支付寶APP稚晚,則自動喚起支付寶APP。

第三步:

用戶在支付寶APP或H5收銀臺完成支付后型诚,會根據(jù)商戶在手機網(wǎng)站支付API中傳入的前臺回跳地址return_url自動跳轉(zhuǎn)回商戶頁面客燕,同時在URL請求中以Query String的形式附帶上支付結(jié)果參數(shù),詳細回跳參數(shù)見“手機網(wǎng)站支付接口alipay.trade.wap.pay”前臺回跳參數(shù)狰贯。

支付寶還會根據(jù)原始支付API中傳入的異步通知地址notify_url幸逆,通過POST請求的形式將支付結(jié)果作為參數(shù)通知到商戶系統(tǒng),詳情見支付結(jié)果異步通知暮现。

除了正向支付流程外还绘,支付寶也提供交易查詢、關(guān)閉栖袋、退款拍顷、退款查詢以及對賬等配套API。

特別注意:

由于前臺回跳的不可靠性塘幅,前臺回跳只能作為商戶支付結(jié)果頁的入口昔案,最終支付結(jié)果必須以異步通知或查詢接口返回為準,不能依賴前臺回跳电媳。商戶系統(tǒng)接收到異步通知以后踏揣,必須通過驗簽(驗證通知中的sign參數(shù))來確保支付通知是由支付寶發(fā)送的。

4匾乓、請求支付接口說明

詳情請看:《手機網(wǎng)站支付API列表》

5捞稿、手機網(wǎng)站支付結(jié)果異步通知:

5.1、服務(wù)器異步通知頁面特性

必須保證服務(wù)器異步通知頁面(notify_url)上無任何字符拼缝,如空格娱局、HTML標簽、開發(fā)系統(tǒng)自帶拋出的異常提示信息等咧七;

支付寶是用POST方式發(fā)送通知信息衰齐,因此該頁面中獲取參數(shù)的方式,如:request.Form(“out_trade_no”)继阻、$_POST[‘out_trade_no’]耻涛;

支付寶主動發(fā)起通知废酷,該方式才會被啟用;

只有在支付寶的交易管理中存在該筆交易抹缕,且發(fā)生了交易狀態(tài)的改變锦积,支付寶才會通過該方式發(fā)起服務(wù)器通知(即時到賬交易狀態(tài)為“等待買家付款”的狀態(tài)默認是不會發(fā)送通知的);

服務(wù)器間的交互歉嗓,不像頁面跳轉(zhuǎn)同步通知可以在頁面上顯示出來,這種交互方式是不可見的背蟆;

第一次交易狀態(tài)改變(即時到賬中此時交易狀態(tài)是交易完成)時鉴分,不僅會返回同步處理結(jié)果,而且服務(wù)器異步通知頁面也會收到支付寶發(fā)來的處理結(jié)果通知带膀;

程序執(zhí)行完后必須打印輸出“success”(不包含引號)志珍。如果商戶反饋給支付寶的字符不是success這7個字符,支付寶服務(wù)器會不斷重發(fā)通知垛叨,直到超過24小時22分鐘伦糯。一般情況下,25小時以內(nèi)完成8次通知(通知的間隔頻率一般是:4m,10m,10m,1h,2h,6h,15h)嗽元;

程序執(zhí)行完成后敛纲,該頁面不能執(zhí)行頁面跳轉(zhuǎn)。如果執(zhí)行頁面跳轉(zhuǎn)剂癌,支付寶會收不到success字符淤翔,會被支付寶服務(wù)器判定為該頁面程序運行出現(xiàn)異常,而重發(fā)處理結(jié)果通知佩谷;cookies旁壮、session等在此頁面會失效,即無法獲取這些數(shù)據(jù)谐檀;

該方式的調(diào)試與運行必須在服務(wù)器上抡谐,即互聯(lián)網(wǎng)上能訪問;

該方式的作用主要防止訂單丟失桐猬,即頁面跳轉(zhuǎn)同步通知沒有處理訂單更新麦撵,它則去處理;

當商戶收到服務(wù)器異步通知并打印出success時溃肪,服務(wù)器異步通知參數(shù)notify_id才會失效厦坛。也就是說在支付寶發(fā)送同一條異步通知時(包含商戶并未成功打印出success導致支付寶重發(fā)數(shù)次通知),服務(wù)器異步通知參數(shù)notify_id是不變的乍惊。

5.2杜秸、服務(wù)器異步通知頁面特性

某商戶設(shè)置的通知地址為https://api.xx.com/receive_notify.htm,對應(yīng)接收到通知的示例如下:

https://api.xx.com/receive_notify.htm?total_amount=2.00&buyer_id=2088102116773037&body=大樂透2.1&trade_no=2016071921001003030200089909&refund_fee=0.00?ify_time=2016-07-1914:10:49&subject=大樂透2.1&sign_type=RSA2&charset=utf-8?ify_type=trade_status_sync&out_trade_no=0719141034-6418&gmt_close=2016-07-19 14:10:46&gmt_payment=2016-07-19 14:10:47&trade_status=TRADE_SUCCESS&version=1.0&sign=kPbQIjX+xQc8F0/A6/AocELIjhhZnGbcBN6G4MM/HmfWL4ZiHM6fWl5NQhzXJusaklZ1LFuMo+lHQUELAYeugH8LYFvxnNajOvZhuxNFbN2LhF0l/KL8ANtj8oyPM4NN7Qft2kWJTDJUpQOzCzNnV9hDxh5AaT9FPqRS6ZKxnzM=&gmt_create=2016-07-19 14:10:44&app_id=2015102700040153&seller_id=2088102119685838?ify_id=4a91b7a78a503640467525113fb7d8bg8e

第一步:在通知返回參數(shù)列表中润绎,除去sign撬碟、sign_type兩個參數(shù)外诞挨,凡是通知返回回來的參數(shù)皆是待驗簽的參數(shù)。

第二步:將剩下參數(shù)進行url_decode, 然后進行字典排序呢蛤,組成字符串惶傻,得到待簽名字符串:

body=大樂透2.1&buyer_id=2088102116773037&charset=utf-8&gmt_close=2016-07-1914:10:46&gmt_payment=2016-07-1914:10:47?ify_time=2016-07-1914:10:49?ify_type=trade_status_sync&out_trade_no=0719141034-6418&refund_fee=0.00&subject=大樂透2.1&total_amount=2.00&trade_no=2016071921001003030200089909&trade_status=TRADE_SUCCESS&version=1.0

第三步:將簽名參數(shù)(sign)使用base64解碼為字節(jié)碼串。

第四步:使用RSA的驗簽方法其障,通過簽名字符串银室、簽名參數(shù)(經(jīng)過base64解碼)及支付寶公鑰驗證簽名。

第五步:需要嚴格按照如下描述校驗通知數(shù)據(jù)的正確性励翼。

1蜈敢、商戶需要驗證該通知數(shù)據(jù)中的out_trade_no是否為商戶系統(tǒng)中創(chuàng)建的訂單號,2汽抚、判斷total_amount是否確實為該訂單的實際金額(即商戶訂單創(chuàng)建時的金額)抓狭,3、校驗通知中的seller_id(或者seller_email) 是否為out_trade_no這筆單據(jù)的對應(yīng)的操作方(有的時候造烁,一個商戶可能有多個seller_id/seller_email)否过,4、驗證app_id是否為該商戶本身惭蟋。上述1苗桂、2、3告组、4有任何一個驗證不通過誉察,則表明本次通知是異常通知,務(wù)必忽略惹谐。在上述驗證通過后商戶必須根據(jù)支付寶不同類型的業(yè)務(wù)通知持偏,正確的進行不同的業(yè)務(wù)處理,并且過濾重復的通知結(jié)果數(shù)據(jù)氨肌。在支付寶的業(yè)務(wù)通知中鸿秆,只有交易通知狀態(tài)為TRADE_SUCCESS或TRADE_FINISHED時,支付寶才會認定為買家付款成功怎囚。

以上就是關(guān)于手機頁面接入支付寶的流程總結(jié)卿叽。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市恳守,隨后出現(xiàn)的幾起案子考婴,更是在濱河造成了極大的恐慌,老刑警劉巖催烘,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沥阱,死亡現(xiàn)場離奇詭異,居然都是意外死亡伊群,警方通過查閱死者的電腦和手機考杉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門策精,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人崇棠,你說我怎么就攤上這事咽袜。” “怎么了枕稀?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵询刹,是天一觀的道長。 經(jīng)常有香客問我萎坷,道長凹联,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任食铐,我火速辦了婚禮,結(jié)果婚禮上僧鲁,老公的妹妹穿的比我還像新娘虐呻。我一直安慰自己,他們只是感情好寞秃,可當我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布斟叼。 她就那樣靜靜地躺著,像睡著了一般春寿。 火紅的嫁衣襯著肌膚如雪朗涩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天绑改,我揣著相機與錄音谢床,去河邊找鬼。 笑死厘线,一個胖子當著我的面吹牛识腿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播造壮,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼渡讼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了耳璧?” 一聲冷哼從身側(cè)響起成箫,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎旨枯,沒想到半個月后蹬昌,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡攀隔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年凳厢,在試婚紗的時候發(fā)現(xiàn)自己被綠了账胧。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡先紫,死狀恐怖治泥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情遮精,我是刑警寧澤居夹,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站本冲,受9級特大地震影響准脂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜檬洞,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一狸膏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧添怔,春花似錦湾戳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至艾杏,卻和暖如春韧衣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背购桑。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工畅铭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像兴枯,于是被迫代替她去往敵國和親叹坦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內(nèi)容