在paypal的官網上給出了這個按鈕內部封裝的流程,整個流程只須要用戶點擊按鈕,觸發建立訂單事件,而後咱們再監聽用戶支付成功的回調,拿到訂單id傳給後端,讓後端再進行一次校驗。
html
接入方式 | 優勢 | 缺點 | 相關資料 |
---|---|---|---|
在html中插入paypal的script腳本 | 實現方式比較簡單 | 一、安全性問題:公司的client_id會暴露在代碼中 二、引用的按鈕樣式比較難自定義 |
官方文檔:https://developer.paypal.com/docs/checkout/integrate/# 更詳細的說明:https://segmentfault.com/a/1190000021366504 |
使用官方提供的npm包(有好幾個) | 一、能夠自定義,不須要使用官方給定的button,能夠在本身的按鈕上綁定建立事件 二、不會把client_id暴露出來 |
一、須要仔細閱讀文檔,開發難度會大一點 二、有的須要配合node一塊兒開發 |
github:https://github.com/paypal/paypal-checkout-components node-sdk:https://github.com/paypal/Pay... |
使用別人封裝好的npm包 | 一、使用起來方便 二、文檔比較清晰 |
一、可能存在沒人維護的風險 二、可自定義的部分很少 三、使用的是Paypalv1版接口,官網上用的是v2接口,可是應該不影響 |
github:https://github.com/khoanguyen96/vue-paypal-checkout |
這是我目前總結的幾種實現方案,若是有更好的方案,歡迎在評論區告訴我~vue
因爲我是在vue項目實現,通過考慮,別人封裝的vue-paypal-checkout庫能夠知足開發需求,並且使用起來比較簡單,因此暫時選擇採起這個方案,接下來咱們看看代碼實現吧!node
npm install vue-paypal-checkout
import PayPal from 'vue-paypal-checkout' export default { data() { return { credentials: { sandbox: '填寫沙箱環境client_id', production: '填寫線上環境client_id' }, buttonStyle: { label: 'pay', size: 'small', shape: 'rect', color: 'blue' } } }, components: { PayPal }, methods: { paymentAuthorized (data) { // 受權完成的回調,能夠拿到訂單id console.log(data); }, paymentCompleted (data) { // 用戶支付完成的回調,能夠拿到訂單id console.log(data); }, paymentCancelled (data) { // 用戶取消交易的回調 console.log(data); } } }
<PayPal amount="10.00" // 付款的錢數 currency="USD" // 貨幣種類,默認爲美圓 :client="credentials" // client_id認證信息 env="sandbox" // 指定環境,默認爲線上,也就是production :button-style="buttonStyle" // 自定義按鈕樣式 @payment-authorized="paymentAuthorized" @payment-completed="paymentCompleted" @payment-cancelled="paymentCancelled" > </PayPal>
以上就是個人代碼實現過程,具體內容能夠根據業務來修改,實現起來仍是蠻簡單的,若是隻是想嵌入Paypal的按鈕,完成基本的支付操做,這個仍是徹底能夠支持的。git
(1)瀏覽器打開https://www.paypal.com/github
(2)註冊一個帳號,我的和企業都行。推薦註冊我的帳戶,比企業帳戶要填的信息少,功能差異不大
npm
(3)填寫相關信息,銀行卡號暫時能夠先不填,建立完成後就能夠看到這個頁面,沙箱環境和這個頁面長得很像,能夠經過網頁地址進行區分
segmentfault
(1)瀏覽器打開https://developer.paypal.com/ ,用剛剛建立的線上帳戶登陸一下(若是時間隔得很近,會默認登陸),紅色框中是後面會重點用到的內容後端
(2)進入Accounts頁面,建立沙箱測試帳戶,默認會建立兩個帳戶(1個企業帳戶,1個我的帳戶),咱們也能夠本身建立,最多能夠建立5個瀏覽器
(1)用測試帳號登陸https://www.sandbox.paypal.com ,使用開發者環境的測試帳號登陸安全
(2)用紅框中的帳號和密碼登陸沙箱環境,就能夠看到一個和線上相似的頁面,初始資金默認爲$5000,能夠自行修改
(3)在開發環境下的My Apps & Credentials頁面下建立應用,拿到Client ID和Secret去請求Access token
(4)拿Client ID和Secret去請求Access token
(1)登陸剛剛沙盒環境的另一個測試帳戶
(2)付款成功後,付款頁面會自動關閉,能夠去沙盒環境看一下扣款記錄
雖然我這裏給了很詳細的流程,但看官方文檔仍是必要的,Paypal的文檔挺詳細的,只是全英文看起來可能比較有壓力,耐心一點會發現仍是不錯的。說明一點,若是在建立帳號的時候有和我不同的狀況,不用驚訝,由於Paypal就是這樣神祕的,哈哈哈!好了,若是以爲本文對你有幫助的話,就請給我一個👍吧,感謝你們~