有關(guān)paypal支付的常見問題解答。

來源:CSDN
作者:禾田八久
時(shí)間:2020-07-24
6048
本文介紹了在paypal支付接入心得,避免后來者重復(fù)踩坑。

近在做對接paypal支付的項(xiàng)目。項(xiàng)目的開發(fā)時(shí)間緊,但paypal開發(fā)者文檔內(nèi)容又很多,并且是英文的,這無疑增加了開發(fā)難度。有句古話,欲速則不達(dá)。因?yàn)閷﹂_發(fā)者文檔理解不夠,浪費(fèi)了不少時(shí)間。接入心得總結(jié)如下,避免后來者重復(fù)踩坑。

首先,需要確定采用paypal支付的何種方式?paypal提供了多種支付方式,如標(biāo)準(zhǔn)支付和快速支付,其中標(biāo)準(zhǔn)支付譽(yù)為最佳實(shí)踐。標(biāo)準(zhǔn)支付主要特點(diǎn)是只需要集成paypal按鈕,所有的付款流程由paypal控制,接入方不需要關(guān)心支付細(xì)節(jié)。當(dāng)用戶完成支付后,paypal會通過同步PDT或者異步IPN機(jī)制來通知接入方,這種方式比較輕量級,對接難度最小,而且對借入方的入侵較小。而快速支付相對復(fù)雜,支付過程由接入方控制,通過調(diào)用3個(gè)接口來實(shí)現(xiàn)。從接入方網(wǎng)頁跳轉(zhuǎn)到paypal支付頁面前,第一個(gè)接口觸發(fā),用于向paypal申請支付token。接著用戶進(jìn)入paypal支付頁面,并進(jìn)行支付授權(quán),授權(quán)接口中會提交上一步獲取的支付token,這個(gè)過程由paypal控制,并且沒有進(jìn)行實(shí)際支付,接著接入方調(diào)用第二個(gè)接口,用于獲取用戶的授權(quán)信息,包括支付金額,支付產(chǎn)品等信息,這些基礎(chǔ)信息核對無誤后,調(diào)用第三個(gè)接口,進(jìn)行實(shí)際付費(fèi)扣款,扣款成功后,paypal同樣會進(jìn)行同步PDT和異步IPN通知,這種方式很靈活,控制力強(qiáng),但編碼復(fù)雜度較高,入侵性較大。從實(shí)際情況考慮,我們選擇了采標(biāo)標(biāo)準(zhǔn)支付方式接入paypal支付。

第二步,需要了解paypal支付的IPN和PDT兩種通知方式,IPN異步通知,可能會有時(shí)延,但可靠性高,當(dāng)接入方主機(jī)不可達(dá)時(shí),有重試機(jī)制保證IPN通知盡量抵達(dá)接入方服務(wù)器。接入方收到IPN通知后,需要對其確認(rèn)。確認(rèn)方法為,把接收到的IPN通知原封不動的作為請求體,調(diào)用IPN確認(rèn)接口。PDT通知是是實(shí)時(shí)的,但可靠性不高,因?yàn)橹粫ㄖ淮?,沒有重試機(jī)制,一旦接入方出現(xiàn)主機(jī)不可達(dá),這樣的消息將會被丟失。官方推薦,IPN通知和PDT通知最好混合使用,以滿足時(shí)效性和可靠性的保證。我們采用了IPN和PDT兩種通知機(jī)制。

第三步,在對paypal支付方式和付款通知機(jī)制了解以后,就可以進(jìn)入到開發(fā)階段。開發(fā)完成后,最重要的是如何進(jìn)行paypal支付的沙盒測試。我在這一步困頓了很久,在這里需要重點(diǎn)說明一下,paypal的賬號體系。通過https://www.paypal.com注冊的賬號是真實(shí)賬號。如果僅用于測試,那么這個(gè)真實(shí)賬號既可以是個(gè)人賬號,又可以是企業(yè)賬號。緊接著利用這個(gè)真實(shí)賬號登錄https://developer.paypal.com,登錄之后點(diǎn)擊右上角的Dashboard,接著點(diǎn)擊左側(cè)Sandbox下面的Accounts如下圖所示,

20170429130030825.png

這時(shí),你看到已經(jīng)默認(rèn)創(chuàng)建好的兩個(gè)沙盒賬號,一個(gè)是Busness商家沙盒賬號,另一個(gè)是personal買家沙盒賬號,這兩個(gè)賬號就是用于沙盒環(huán)境測試的兩個(gè)賬號?,F(xiàn)在這兩個(gè)沙盒賬號,并沒有與測試賬號進(jìn)行關(guān)聯(lián),如果不關(guān)聯(lián)的話,利用這個(gè)沙盒賬號并不能收到IPN通知和PDT通知。如何做關(guān)聯(lián)呢?點(diǎn)擊上圖中藍(lán)色鏈接log in with PayPal,這個(gè)鏈接會跳轉(zhuǎn)到一個(gè)頁面,在這個(gè)頁面,你需要用你的沙盒賬號進(jìn)行登錄,沙盒賬號的登錄密碼,可以通過選中沙盒賬號,這時(shí)會出現(xiàn)profile,點(diǎn)擊profile進(jìn)行更改設(shè)置。當(dāng)?shù)卿洺晒σ院?,沙盒賬號就和測試賬號進(jìn)行關(guān)聯(lián)了,Business賬號和Personal賬號都需要做這樣的關(guān)聯(lián)。沙盒Business賬號作為服務(wù)端使用,沙盒Personal賬號作為支付賬號。這樣就可以順利的接收到IPN通知,并且驗(yàn)證通過。PDT通知還需要單獨(dú)設(shè)置,設(shè)置過程如下,利用沙盒Business賬號登錄https://www.sandbox.paypal.com/home,登錄之后,點(diǎn)擊銷售工具,如下圖,

20170429130120076.png

接著點(diǎn)擊網(wǎng)站習(xí)慣設(shè)定中的更新按鈕,如下圖

20170429130159722.png

只需調(diào)整自動返回和付款數(shù)據(jù)傳輸兩項(xiàng)設(shè)置,并設(shè)置為開啟,另外返回URL填入PDT回調(diào)的通知接口,需要能夠被外網(wǎng)訪問到。設(shè)置完成后,點(diǎn)擊下面的保存按鈕,這時(shí)會返回到上一層頁面。當(dāng)再次以同樣的方式打開這個(gè)頁面,就會在付款數(shù)據(jù)傳輸這一欄下面顯示身份標(biāo)識,這個(gè)身份標(biāo)識用于PDT通知校驗(yàn)的token。到此,PDT通知機(jī)制已經(jīng)配置完成。

總之,paypal支付集成最大的困難不是開發(fā)本身,而是弄清楚paypal支付方式,IPN和PDT通知機(jī)制,以及沙盒賬號的創(chuàng)建,并如何把沙盒賬號與測試賬號進(jìn)行關(guān)聯(lián)。搞清楚這些,開發(fā)就很簡單了。

原文鏈接:點(diǎn)擊前往 >
版權(quán)說明:本文內(nèi)容來自于CSDN,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對觀點(diǎn)贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
個(gè)人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家