PayPal是什么
PayPal是目前全球最大的在線支付工具,就像國內的支付寶一樣,是一個基于買賣雙方的第三方平臺。買家只需知道你的PayPal賬號,即可在線直接把錢匯入你的賬戶,即時到賬,簡單方便快捷。
對接前言
在對接PayPal的時候,發(fā)現網上好多對接文章已經是兩年前的文章了,PayPal官網頁面也發(fā)生了一些變化,導致浪費了許多時間在官網上找東西。實際上2020年對接變得更加簡單了。
注冊PayPal正式賬號
首先去官網https://www.paypal.com注冊一個自己的PayPal賬號,由于一開始只是為了測試,所以我們只能先注冊一個個人賬戶。不過個人的開發(fā)者賬戶中也可以創(chuàng)建沙箱測試環(huán)境和賬號。所以不用擔心后續(xù)無法操作。
PayPal開發(fā)者平臺
瀏覽器輸入以下地址:
https://developer.paypal.com
點擊右上角“Log into Dashboard”,進入開發(fā)者平臺(使用剛才自己注冊的正式賬號登陸開發(fā)者平臺)。一開始的頁面為如下,我們可以看到系統(tǒng)為我們自動創(chuàng)建了default application沙箱測試app,我們也可以自己在sandbox下點擊create app來創(chuàng)建自己的沙箱app。
然后點擊default application之后,我們就會找到PayPal支付必要的參數,clientId和secret,對接過微信支付的小伙伴就知道,類似于appid和pay secret。
我們可以看到左側菜單欄里有個sandbox欄目,下邊有個Account菜單,這里就是存儲沙箱賬戶信息的地方。
點擊accounts,出現如下頁面,里面有兩個系統(tǒng)已經自動創(chuàng)建的買家和賣家信息,到付款的時候,我們就需要personal個人賬戶付款,然后去business商家賬戶查看余額變動。目前我們不需要登陸這兩個賬戶,如果想去登陸看一下賬戶信息,可以通過這個沙箱地址登陸(此處使用的是開發(fā)平臺創(chuàng)建的沙箱賬戶登陸)。
https://www.sandbox.paypal.com
開始使用java對接
通過以上步驟,我們已經獲取到了對接PayPal所需的基本測試環(huán)境與數據。接下來該通過引入第三方包用java對接了。
基本框架
springboot
maven依賴如下,網上大部分依賴都是1.4.2版本的,已經老的掉牙了。我后來換用1.13.1版本。
<!--PayPal依賴-->
<dependency>
<groupId>com.paypal.sdk</groupId>
<artifactId>rest-api-sdk</artifactId>
<version>1.13.1</version>
</dependency>
操作文檔
一開始,我按照網上的代碼操作,結果是一塌糊涂,各種爆紅,獲取信息超時,原因也沒來得及細究。后來還是老老實實的閱讀官方文檔,哈哈哈哈,結果一下子就搞定了。PayPal-Java-SDK的git地址為如下
https://github.com/paypal/PayPal-Java-SDK
直接滾動到最下邊,有個make your first call,我一開始點的run samples project,結果不會操作,還是老老實實點擊第一個就好了。
里面的步驟大概翻譯一下:
1.將剛才沙箱環(huán)境下某個app的clientId和secret拿過來
2.創(chuàng)建一個支付對象,然后發(fā)起請求,得到創(chuàng)建對象返回結果,從中獲取approval URL
3.然后請求這個approval URL,接下來的操作就和代碼無關了。
代碼部分
基本上是直接把官方代碼復制過來,其中有兩個地址,成功之后的跳轉地址,失敗后的跳轉地址,這個自己設定,可以自己寫個controller,添加兩個測試接口,success和cancel。測試過程中,returnUrl還是很有必要的,所以最好自己有這樣一個接口,將來要進行execute操作。
請求后的結果如下:
復制approval_url到瀏覽器,請求之后顯示如下(如果提前在瀏覽器登陸了賬戶,賬戶信息在有效期內,那么就不會彈出登陸頁面),然后該怎么操作,怎么操作。
到了這一步,基本上快完事了,最后還需要執(zhí)行execute接口,一開始測試的時候,我的接口寫在returnUrl里面,所以點完繼續(xù)后,會直接請求我提前寫好的success接口,大概如下:
支付結果
接下來我們去登陸沙箱測試賬號,商家賬戶信息如下: