溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

詳解Vue項(xiàng)目接入Paypal實(shí)現(xiàn)

發(fā)布時(shí)間:2020-07-18 14:36:28 來(lái)源:億速云 閱讀:351 作者:小豬 欄目:web開(kāi)發(fā)

小編這次要給大家分享的是詳解Vue項(xiàng)目接入Paypal實(shí)現(xiàn),文章內(nèi)容豐富,感興趣的小伙伴可以來(lái)了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

一、支付流程

在paypal的官網(wǎng)上給出了這個(gè)按鈕內(nèi)部封裝的流程,整個(gè)流程只需要用戶點(diǎn)擊按鈕,觸發(fā)創(chuàng)建訂單事件,然后我們?cè)俦O(jiān)聽(tīng)用戶支付成功的回調(diào),拿到訂單id傳給后端,讓后端再進(jìn)行一次校驗(yàn)。

二、實(shí)現(xiàn)方案

接入方式優(yōu)點(diǎn)缺點(diǎn)相關(guān)資料
在html中插入paypal的script腳本實(shí)現(xiàn)方式比較簡(jiǎn)單1、安全性問(wèn)題:公司的client_id會(huì)暴露在代碼中
     2、引用的按鈕樣式比較難自定義
官方文檔:https://developer.paypal.com/docs/checkout/integrate/#
     更詳細(xì)的說(shuō)明:https://www.jb51.net/article/188049.htm
使用官方提供的npm包(有好幾個(gè))1、可以自定義,不需要使用官方給定的button,可以在自己的按鈕上綁定創(chuàng)建事件
     2、不會(huì)把client_id暴露出來(lái)
1、需要仔細(xì)閱讀文檔,開(kāi)發(fā)難度會(huì)大一點(diǎn)
     2、有的需要配合node一起開(kāi)發(fā)
github:https://github.com/paypal/paypal-checkout-components
     node-sdk:https://github.com/paypal/Pay...
使用別人封裝好的npm包1、使用起來(lái)方便
     2、文檔比較清晰
1、可能存在沒(méi)人維護(hù)的風(fēng)險(xiǎn)
     2、可自定義的部分不多
     3、使用的是Paypalv1版接口,官網(wǎng)上用的是v2接口,但是應(yīng)該不影響
github:https://github.com/khoanguyen96/vue-paypal-checkout

這是我目前總結(jié)的幾種實(shí)現(xiàn)方案,如果有更好的方案,歡迎在評(píng)論區(qū)告訴我~

三、項(xiàng)目中實(shí)現(xiàn)

由于我是在vue項(xiàng)目實(shí)現(xiàn),經(jīng)過(guò)考慮,別人封裝的vue-paypal-checkout庫(kù)可以滿足開(kāi)發(fā)需求,而且使用起來(lái)比較簡(jiǎn)單,所以暫時(shí)選擇采取這個(gè)方案,接下來(lái)我們看看代碼實(shí)現(xiàn)吧!

npm install vue-paypal-checkout
import PayPal from 'vue-paypal-checkout'

export default {
 data() {
  return {
   credentials: {
    sandbox: '填寫(xiě)沙箱環(huán)境client_id',
    production: '填寫(xiě)線上環(huán)境client_id'
   },
   
   buttonStyle: {
    label: 'pay',
    size: 'small',
    shape: 'rect',
    color: 'blue'
   }
  }
 },
 components: {
  PayPal
 },
 
 methods: {
  paymentAuthorized (data) {
   // 授權(quán)完成的回調(diào),可以拿到訂單id
   console.log(data);
  },

  paymentCompleted (data) {
   // 用戶支付完成的回調(diào),可以拿到訂單id
   console.log(data);
  },

  paymentCancelled (data) {
   // 用戶取消交易的回調(diào)
   console.log(data);
  }
 }
}
<PayPal
 amount="10.00" // 付款的錢數(shù)
 currency="USD" // 貨幣種類,默認(rèn)為美元
 :client="credentials" // client_id認(rèn)證信息
 env="sandbox" // 指定環(huán)境,默認(rèn)為線上,也就是production
 :button- // 自定義按鈕樣式
 @payment-authorized="paymentAuthorized"
 @payment-completed="paymentCompleted"
 @payment-cancelled="paymentCancelled"
>
</PayPal>

以上就是我的代碼實(shí)現(xiàn)過(guò)程,具體內(nèi)容可以根據(jù)業(yè)務(wù)來(lái)修改,實(shí)現(xiàn)起來(lái)還是蠻簡(jiǎn)單的,如果只是想嵌入Paypal的按鈕,完成基本的支付操作,這個(gè)還是完全可以支持的。

四、Paypal沙箱環(huán)境賬戶申請(qǐng)流程

注冊(cè)Paypal線上賬戶

(1)瀏覽器打開(kāi)https://www.paypal.com/

(2)注冊(cè)一個(gè)賬號(hào),個(gè)人和企業(yè)都行。推薦注冊(cè)個(gè)人賬戶,比企業(yè)賬戶要填的信息少,功能差別不大

(3)填寫(xiě)相關(guān)信息,銀行卡號(hào)暫時(shí)可以先不填,創(chuàng)建完成后就可以看到這個(gè)頁(yè)面,沙箱環(huán)境和這個(gè)頁(yè)面長(zhǎng)得很像,可以通過(guò)網(wǎng)頁(yè)地址進(jìn)行區(qū)分

注冊(cè)Paypal開(kāi)發(fā)者賬號(hào)

(1)瀏覽器打開(kāi)https://developer.paypal.com/ ,用剛剛創(chuàng)建的線上賬戶登錄一下(如果時(shí)間隔得很近,會(huì)默認(rèn)登錄),紅色框中是后面會(huì)重點(diǎn)用到的內(nèi)容

(2)進(jìn)入Accounts頁(yè)面,創(chuàng)建沙箱測(cè)試賬戶,默認(rèn)會(huì)創(chuàng)建兩個(gè)賬戶(1個(gè)企業(yè)賬戶,1個(gè)個(gè)人賬戶),我們也可以自己創(chuàng)建,最多可以創(chuàng)建5個(gè)

登錄沙箱環(huán)境

(1)用測(cè)試賬號(hào)登錄https://www.sandbox.paypal.com ,使用開(kāi)發(fā)者環(huán)境的測(cè)試賬號(hào)登錄

(2)用紅框中的賬號(hào)和密碼登錄沙箱環(huán)境,就可以看到一個(gè)和線上類似的頁(yè)面,初始資金默認(rèn)為$5000,可以自行修改

(3)在開(kāi)發(fā)環(huán)境下的My Apps & Credentials頁(yè)面下創(chuàng)建應(yīng)用,拿到Client ID和Secret去請(qǐng)求Access token

(4)拿Client ID和Secret去請(qǐng)求Access token

頁(yè)面操作按鈕進(jìn)行測(cè)試

(1)登錄剛剛沙盒環(huán)境的另外一個(gè)測(cè)試賬戶

(2)付款成功后,付款頁(yè)面會(huì)自動(dòng)關(guān)閉,可以去沙盒環(huán)境看一下扣款記錄

五、總結(jié)

雖然我這里給了很詳細(xì)的流程,但看官方文檔還是必要的,Paypal的文檔挺詳細(xì)的,只是全英文看起來(lái)可能比較有壓力,耐心一點(diǎn)會(huì)發(fā)現(xiàn)還是不錯(cuò)的。說(shuō)明一點(diǎn),如果在創(chuàng)建賬號(hào)的時(shí)候有和我不一樣的情況,不用驚訝,因?yàn)镻aypal就是這樣神秘的,哈哈哈!

看完這篇關(guān)于詳解Vue項(xiàng)目接入Paypal實(shí)現(xiàn)的文章,如果覺(jué)得文章內(nèi)容寫(xiě)得不錯(cuò)的話,可以把它分享出去給更多人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI