相對(duì)來(lái)說(shuō)支付寶是三大常見支付方式里面,集成起來(lái)比較簡(jiǎn)單的,官方替程序員們考慮了很多,包括詳細(xì)的注釋,簡(jiǎn)單的流程。集成支付寶接口我們會(huì)遇到的情況只有下面兩種:
PC和WEB支付,場(chǎng)景是觸屏網(wǎng)站和PC網(wǎng)站,也稱作即時(shí)到帳接口
APP支付,場(chǎng)景是原生APP
PC和WEB支付之所以合并到一起是因?yàn)椋?strong>支付的過(guò)程全部發(fā)生在支付寶的頁(yè)面,我們只需要負(fù)責(zé)發(fā)起,只是發(fā)起時(shí)傳遞的參數(shù)不同罷了。這為我們后面寫通用支付類創(chuàng)造了很好的條件。是不是感覺很溫暖,點(diǎn)贊馬云爸爸。
APP支付相對(duì)復(fù)雜一些,主要是涉及到了公私鑰的問題,在講APP支付之前會(huì)先討論一下公私鑰,相信只要懂了原理,集成起來(lái)也不是什么難事。
讓我們開始。
PC和WEB支付
接口申請(qǐng)
申請(qǐng)地址是支付寶的官網(wǎng),然后我們需要一個(gè)商家賬戶,這個(gè)賬戶一般是客戶或者老板注冊(cè)之后給你的。在下面的地方申請(qǐng):
每一個(gè)接口的申請(qǐng)流程都給出了直觀的圖解:
認(rèn)證的流程也相對(duì)微信沒有那么復(fù)雜,如果你先集成了微信支付再來(lái)看支付寶,是不是覺得很舒服呢。
我們把電腦網(wǎng)站支付和手機(jī)網(wǎng)站支付都申請(qǐng)了。
申請(qǐng)流程到集成上線這一步的時(shí)候,我們會(huì)看到一個(gè)前往商家管理的按鈕,點(diǎn)擊它。
集成這個(gè)接口我們只需要兩個(gè)參數(shù),點(diǎn)擊查看PID、Key:
partner,合作者身份ID,和seller_id是同一個(gè)值
key,加密方式為md5,用于簽名
集成流程
配置好上面那些參數(shù),引入必要的文件
構(gòu)造請(qǐng)求函數(shù)
構(gòu)造表單和按鈕放到頁(yè)面上準(zhǔn)備提交
支付成功后的回調(diào)驗(yàn)簽名
WEB支付集成方式是相同的,只是配置參數(shù)中的產(chǎn)品類型(service)不同,PC支付的產(chǎn)品類型為create_direct_pay_by_user,WEB支付的產(chǎn)品類型為alipay.wap.create.direct.pay.by.user。
集成過(guò)程中幾乎沒踩過(guò)什么坑,所以如果你的客戶急著要項(xiàng)目的話,可以先快速的把支付寶集成好,讓整個(gè)項(xiàng)目可以正常運(yùn)行,之后再增加微信支付。
總結(jié)
我們已經(jīng)看了5種支付方式,分別是微信家的三個(gè),和支付寶家的兩個(gè)。不難總結(jié)出下面這樣的模式:
通常來(lái)說(shuō),無(wú)論何種支付方式,你發(fā)起支付需要下面幾個(gè)參數(shù):
1. 訂單號(hào)
2. 訂單名稱
3. 支付金額
4. 前臺(tái)回調(diào)地址
5. 后臺(tái)回調(diào)地址
6. 穿透數(shù)據(jù)
通常來(lái)說(shuō),無(wú)論何種支付方式,支付成功后你會(huì)收到下面的信息:
1. 你的訂單號(hào)
2. 支付接口的訂單號(hào)
3. 支付時(shí)間
4. 支付金額
5. 支付方式
6. 穿透數(shù)據(jù)
這個(gè)模式對(duì)我們以后寫通用支付類很重要,因?yàn)橄胍獙?shí)現(xiàn)簡(jiǎn)單集成,拿來(lái)則用,最關(guān)鍵的思想就是要把口子扎緊了,也就是把盡量少的變化留給外部,盡量實(shí)現(xiàn)解耦。
上面的模式也就是整個(gè)支付模塊和外部交流的模板,約定好輸入和輸出參數(shù)之后,你甚至可以換一套支付模塊,也不會(huì)影響到項(xiàng)目的其他部分。同樣的,一個(gè)項(xiàng)目里面如果出現(xiàn)了多個(gè)支付頁(yè)面,也可以使用同一個(gè)模塊調(diào)起支付,降低維護(hù)成本。
后面還剩下支付寶APP支付和銀聯(lián)支付需要納入我們的模塊中來(lái),他們有個(gè)共同點(diǎn)就是,都需要配置公鑰和私鑰,所以后面我們就需要研究一下公私鑰原理了。
以上內(nèi)容屬于作者原創(chuàng),特此聲明,如需轉(zhuǎn)載,請(qǐng)留言取得同意