Vue項(xiàng)目接入Paypal實(shí)現(xiàn)示例詳解
一、支付流程
在paypal的官網(wǎng)上給出了這個(gè)按鈕內(nèi)部封裝的流程,整個(gè)流程只需要用戶點(diǎn)擊按鈕,觸發(fā)創(chuàng)建訂單事件,然后我們?cè)俦O(jiān)聽用戶支付成功的回調(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ō)明:http://m.fzitv.net/article/188049.htm |
| 使用官方提供的npm包(有好幾個(gè)) | 1、可以自定義,不需要使用官方給定的button,可以在自己的按鈕上綁定創(chuàng)建事件 2、不會(huì)把client_id暴露出來(lái) |
1、需要仔細(xì)閱讀文檔,開發(fā)難度會(huì)大一點(diǎn) 2、有的需要配合node一起開發(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ù)可以滿足開發(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: '填寫沙箱環(huán)境client_id',
production: '填寫線上環(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-style="buttonStyle" // 自定義按鈕樣式 @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)瀏覽器打開https://www.paypal.com/
(2)注冊(cè)一個(gè)賬號(hào),個(gè)人和企業(yè)都行。推薦注冊(cè)個(gè)人賬戶,比企業(yè)賬戶要填的信息少,功能差別不大
(3)填寫相關(guān)信息,銀行卡號(hào)暫時(shí)可以先不填,創(chuàng)建完成后就可以看到這個(gè)頁(yè)面,沙箱環(huán)境和這個(gè)頁(yè)面長(zhǎng)得很像,可以通過(guò)網(wǎng)頁(yè)地址進(jìn)行區(qū)分
注冊(cè)Paypal開發(fā)者賬號(hào)
(1)瀏覽器打開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 ,使用開發(fā)者環(huán)境的測(cè)試賬號(hào)登錄
(2)用紅框中的賬號(hào)和密碼登錄沙箱環(huán)境,就可以看到一個(gè)和線上類似的頁(yè)面,初始資金默認(rèn)為$5000,可以自行修改
(3)在開發(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)示例詳解的文章就介紹到這了,更多相關(guān)Vue接入Paypal內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Paypal支付不完全指北
- Paypal實(shí)現(xiàn)循環(huán)扣款(訂閱)功能
- zen cart實(shí)現(xiàn)訂單中增加paypal中預(yù)留電話的方法
- PHP整合PayPal支付
- php實(shí)現(xiàn)paypal 授權(quán)登錄
- PHP中集成PayPal標(biāo)準(zhǔn)支付的實(shí)現(xiàn)方法分享
- php與paypal整合方法
- 網(wǎng)站用php實(shí)現(xiàn)paypal整合方法
- paypal即時(shí)到賬php實(shí)現(xiàn)代碼
- 解析PayPal支付接口的PHP開發(fā)方式
- php購(gòu)物網(wǎng)站支付paypal使用方法
相關(guān)文章
vue動(dòng)態(tài)綁定圖標(biāo)的完整步驟
動(dòng)態(tài)綁定是我們?nèi)粘i_發(fā)中經(jīng)常遇到的一個(gè)需求,下面這篇文章主要給大家介紹了關(guān)于vue動(dòng)態(tài)綁定圖標(biāo)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-05-05
詳解Vue路由History mode模式中頁(yè)面無(wú)法渲染的原因及解決
這篇文章主要介紹了詳解Vue路由History mode模式中頁(yè)面無(wú)法渲染的原因及解決,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-09-09
Element UI 上傳組件實(shí)現(xiàn)文件上傳并附帶額外參數(shù)功能
在使用 ElementUI 的上傳組件 el-upload 實(shí)現(xiàn)文件上傳功能時(shí),如果單文件上傳是比較簡(jiǎn)單的,但是在實(shí)際需求中,往往會(huì)在上傳文件時(shí)伴隨著一些其他參數(shù),怎么操作呢,下面通過(guò)示例代碼講解感興趣的朋友一起看看吧2023-08-08
詳解Vue 動(dòng)態(tài)組件與全局事件綁定總結(jié)
這篇文章主要介紹了詳解Vue 動(dòng)態(tài)組件與全局事件綁定總結(jié),從示例中發(fā)現(xiàn)并解決問(wèn)題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-11-11
vue實(shí)現(xiàn)仿淘寶結(jié)賬頁(yè)面實(shí)例代碼
本文是小編給大家分享的vue實(shí)現(xiàn)仿淘寶結(jié)賬頁(yè)面實(shí)例代碼,主要功能是仿照淘寶頁(yè)面的結(jié)算購(gòu)物車商品時(shí)自動(dòng)算出合計(jì)價(jià)格的頁(yè)面,具體實(shí)例代碼大家參考下本文2017-11-11
ElementPlus?Table表格實(shí)現(xiàn)可編輯單元格
本文主要介紹了ElementPlus?Table表格實(shí)現(xiàn)可編輯單元格,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-12-12
vue查詢數(shù)據(jù)el-table不更新數(shù)據(jù)的解決方案
這篇文章主要介紹了vue查詢數(shù)據(jù)el-table不更新數(shù)據(jù)的問(wèn)題及解決方案,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12

