paypal developer docs显示了如何在Vue.js中实现Paypal按钮,但我不理解代码。在这一点上,我甚至不确定这是vue 2
或vue 3
或angular??
代码。
1:在parent blade
中导入脚本:
<script src="https://www.paypal.com/sdk/js?client-id=YOUR_CLIENT_ID"></script>
2:在组件的script tag
中使用按钮?
paypal.Buttons.driver("vue", window.Vue);
3:这是我迷路的地方,在app.js
中使用这个??:
@ng.core.Component({
selector: 'my-app',
template:
<div id="app">
<paypal-buttons [props]="{
createOrder: createOrder,
onApprove: onApprove
}"></paypal-buttons>
</div>
,
})
class AppComponent {
createOrder(data, actions) {
return actions.order.create({
purchase_units: [{
amount: {
value: '0.01'
}
}]
});
}
onApprove(data, actions) {
return actions.order.capture();
}
}
@ng.core.NgModule({
imports: [
ng.platformBrowser.BrowserModule,
paypal.Buttons.driver('angular2', ng.core)
],
declarations: [
AppComponent
],
bootstrap: [
AppComponent
]
})
class AppModule {}
ng.platformBrowserDynamic
.platformBrowserDynamic()
.bootstrapModule(AppModule);
会不会这甚至不是vue code
,而是angular code
?
4:并将其放入vue component
??:
<div id="container">
<app></app>
</div>
<script>
const PayPalButton = paypal.Buttons.driver("vue", window.Vue);
Vue.component("app", {
// The style prop for the PayPal button should be passed in as `style-object` or `styleObject` to avoid conflict with Vue's `style` reserved prop.
template: `
<paypal-buttons :on-approve="onApprove" :create-order="createOrder" :on-shipping-change="onShippingChange" :on-error="onError" :style-object="style" />
`,
components: {
"paypal-buttons": PayPalButton,
},
computed: {
createOrder: function () {
return (data, actions) => {
return actions.order.create({
purchase_units: [
{
amount: {
value: "10",
},
},
],
});
}
},
onApprove: function () {
return (data, actions) => {
return actions.order.capture();
}
},
onShippingChange: function () {
return (data, actions) => {
if (data.shipping_address.country_code !== 'US') {
return actions.reject();
}
return actions.resolve();
}
},
onError: function () {
return (err) => {
console.error(err);
window.location.href = "/your-error-page-here";
}
},
style: function () {
return {
shape: 'pill',
color: 'gold',
layout: 'horizontal',
label: 'paypal',
tagline: false
}
},
},
});
const vm = new Vue({
el: "#container",
});
</script>
我的问题是,如何在Vue3的script setup
中创建一个简单的贝宝按钮?paypal cdn
是在父blade file
中导入的。
例如:
<script setup>
import {onMounted} from "vue";
onMounted(() => {
//create component from -> paypal.Buttons.driver("vue", window.Vue);
})
</script>
<template>
<div id="checkout" class="checkout">
<paypal-buttons></paypal-buttons>
</div>
</template>
2条答案
按热度按时间3gtaxfhh1#
我建议采取以下实施方式:
然后,您可以编写PaypalButtons组件,如下所示:
现在将其用作:
avwztpqn2#
Paypal文档是一个巨大的混乱。服务器集成似乎是这样工作的:
如果您使用
laravel
作为后端,请将此文件导入app.blade.php
/welcome.blade.php
文件:那么
vue component
就可以像这样:显示的付款方式是自动确定的,取决于您的IP(???)。您可以通过操作
script import
隐藏付款方式,如下所示: