掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流
做過跨境電商或者在海外購物網(wǎng)站逛過的朋友都應該知道PayPal,類似于國內(nèi)流行的支付寶和微信支付,都屬于第三方支付平臺。在做外貿(mào)支付的時候不得不提到的就是PayPal了,畢竟它在國外的市場占有率擺在哪里,當然據(jù)做外貿(mào)的朋友介紹在東南亞某些國家和地區(qū)支付寶的市場份額反超了PayPal。
背景介紹
由于在國內(nèi),做的項目需要使用PayPal的并不多,就算有時候需要做外貿(mào)項目,很多選擇第四方集成。據(jù)做外貿(mào)的朋友介紹,之所以選擇第四方支付是因為雖然在海外PayPal的市場占有率是最高的,然而這種在線支付的普及率遠不如國內(nèi)。而如果分別對接各種第三方支付或者銀行支付,將需要對接很多平臺,開發(fā)成本太高;而做的項目服務不在乎多一點支付的手續(xù)費。比如PayPal的手續(xù)費是3.9%+0.3美元(每筆),而第四方的相對高個1%左右;從中也可以看得出雖然我們經(jīng)常吐槽支付寶和微信手續(xù)費是暴利,但從此看來國內(nèi)的支付公司很良心了。
好了,步入正題,對接PayPal支付有多種支付方式,比如按鈕支付之類的,而今天我們要跟大家介紹的就是基于PayPal官方提供的PayPal-PHP-SDK進行支付(也就是REST API Samples的方式)的簡潔版指南;希望幫助大家能花盡可能少的時間快速實現(xiàn)支付對接。
前期準備
其實跟微信支付寶類似,就是注冊帳號然后成為開發(fā)者;當然PayPal跟支付寶一樣有沙箱模式,因此在開發(fā)階段我們可以使用沙箱帳號來做開發(fā),這樣可以不用簽約也可以進行開發(fā)工作。主要步驟如下:
1、首先去官網(wǎng)注冊一個paypal賬號。
2、申請完畢并登錄,進入開發(fā)者中心(https://developer.paypal.com)??梢赃M入沙箱帳號:
即可看到你申請賬號自動配屬的兩個測試賬號,賬號類別分別是:賣家?guī)ぬ柡唾I家?guī)ぬ?,默認就有9999美元,不過跟支付寶一樣,都是虛擬的用于測試,也可以手工修改余額。
然后給兩個賬號設置密碼,點擊賬號展開,然后點擊Profile,會彈出賬號信息框,里面可以設置密碼等一堆屬性。
2、進入我的應用程序和證書(My Apps & Credentials)申請APP(不是app客戶端,意思是應用,跟支付寶開放平臺的應用概念類似)。
然后點擊REST API apps欄目下面的Create App按鈕,寫進一個APP名稱,然后選擇一個測試賬戶作為此APP綁定的賬號,如果你在上一步?jīng)]有申請新的測試賬號(也可以另外創(chuàng)建測試的賣家?guī)ぬ柡唾I家?guī)ぬ柕模热鐒?chuàng)建一個美國地區(qū)的賣家?guī)ぬ柡鸵粋€日本地區(qū)的買家?guī)ぬ枺?,那么這里默認就是選擇了賣家?guī)ぬ枴?/p>
3、然后打開創(chuàng)建的應用,可以看到應用的Client ID和Secret。
4、paypal的沙箱模式測試環(huán)境域名為sandbox.paypal.com,正式域名為www.paypal.com。如果是使用官方的SDK,那么直接設置mode為sandbox就是沙箱模式,而設置為live,也就是線上的意思。
5、官方提供了web開發(fā)的SDK,包括Java、.net、node、php、Python、Ruby等,也包含移動客戶端開發(fā)的ios和安卓的。這里的指南是以php為例。
官方SDK地址為:https://developer.paypal.com/docs/api/rest-sdks/。這個地址包含所有SDK的下載入口,都是托管到github上面的。
6、設置異步通知地址,推薦的方式是在獲取應用的Client ID和Secret的頁面下面部分可以設置回調(diào)通知的url,如圖所示。也可以在賣家?guī)ぬ栔性O置PIN的url,經(jīng)過測試,如果設置了這個就以PIN為準,而且兩個地方paypal異步通知的數(shù)據(jù)包參數(shù)并不一樣。關于paypal異步通知設置后續(xù)如果有機會跟大家詳細介紹。
對接過程
1、創(chuàng)建一個支付,發(fā)送到paypal服務端以獲取用戶授權(quán)url。具體代碼我就不帖了,SDK的demo代碼中都有,下面的地址就是從paypal服務端獲取的用戶授權(quán)url,注意這并不是類似支付寶那樣的支付url,別掉這坑里了。
其中在發(fā)起支付的時候除了設置商品及金額信息外,還需要設置兩個url,一個是支付url,另外一個是取消支付的url。這里的url并不是類似支付寶支付的同步回調(diào)地址,支付寶的同步回調(diào)地址訪問前實際上支付已經(jīng)完成了,而這里是需要到達支付頁面完成支付的。
這個地方一定要注意了,這也是跟支付寶支付一個不太一樣的地方。支付寶的只要獲取支付url,然后去支付寶網(wǎng)站里面就可以完成支付,然后異步通知。而paypal首先去其官網(wǎng)僅僅是獲取用戶的授權(quán)而已,最終字符還是要回到自己的網(wǎng)站再一次請求paypal的支付接口。
2、使用以上paypal返回的url,進入paypal去登錄買家?guī)ぬ栠M行用戶授權(quán)。如果沒有帳號需要先登錄買家?guī)ぬ?,如果已?jīng)登錄了并且選擇支付類型(余額或者信用卡),就會顯示如下的界面(這個買家?guī)ぬ柺橇硗鈩?chuàng)建的沙箱買家?guī)ぬ枺毡镜貐^(qū)的所以顯示的是日文):
3、在上述步驟中點擊統(tǒng)一支付,這時候如果是支付寶是完成支付的,而在這里并沒有完成支付。而是跳轉(zhuǎn)到第一步中設置的ReturnUrl,也就是ExecutePayment.php?success=true。在這個url里面我們需要再一次請求paypal,來完成支付。支付后可以在買家和賣家?guī)ぬ栔锌吹浇灰子涗洠聢D問買家?guī)ぬ柕慕灰子涗洠?/p>
注意事項
paypal的支付流程跟國內(nèi)的支付寶支付還是有區(qū)別的,總體而言我感覺支付方式不管開發(fā)體驗還是使用體驗都不如國內(nèi)的支付寶和微信支付。下面把過程中幾個可能被大家誤解的地方說明下,防止大家入坑。
1、支付的基本流程是:創(chuàng)建一個支付,發(fā)送到paypal服務端并返回一個用戶授權(quán)地址(在客戶端,即我們自己的服務端,并設置一個支付)–>轉(zhuǎn)鏈到用戶授權(quán)地址(paypal網(wǎng)站)–>用戶授權(quán)用戶授權(quán)完畢(paypal網(wǎng)站,用戶登錄帳號并同意支付)–>paypal返回到客戶端設置的execute地址(這個地址是第一步設置的,在客戶端),付款實現(xiàn)。
2、在上述流程的第一步設置的url,并不是類似微信或支付寶那樣的回調(diào)url,而是后續(xù)返回到客戶端完成支付的url。
3、paypal貌似不支持人民幣支付,也就是在上述步驟中第一步創(chuàng)建支付的時候設置貨幣類型,可以設置美元等其他貨幣,但不能設置人民幣(CNY),因此如果是系統(tǒng)貨幣單位為人民幣需要在服務端轉(zhuǎn)化為美元然后再創(chuàng)建支付。據(jù)說是由于paypal在中國大陸地區(qū)沒有獲得支付牌照的原因。
我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流