PayPal按钮与多种货币使用反应贝宝js



尝试更改我的货币,但当我使用currency_code:'EUR'时,我会收到以下错误:

错误:意外货币:EUR已传递给order.create。请确保您正在传递/sdk/js?currency=paypal脚本标记中的EUR。

当我只使用货币:initialOptions中的"EUR"并将其从PayPalButtons中删除时,它将使用美元金额并将其更改为欧元。但并非所有货币都是欧元。

const initialOptions = {
'client-id': 'test',
currency: 'EUR',
intent: 'capture',
};
<PayPalScriptProvider options={initialOptions}>
<PayPalButtons
createOrder={(data, actions) => {
return actions.order.create({
purchase_units: [{
description:
'Rechnung ' +
dayjs(date, 'MM/YYYY').format('MMMM YYYY'),
amount: {
currency_code: 'EUR',
value: 2
}]


/>
</PayPalScriptProvider>

但并不是所有东西都是欧元。

在当前的JS SDK设计中,不同货币的渲染按钮需要单独的SDK加载。

当您自己加载SDK时,可以在脚本加载时添加data-namespace属性。我在react paypal js文档中看不到对此的支持。

<h3>USD buttons...</h3>
<div id="paypal-button-container-1" />
<script src="https://www.paypal.com/sdk/js?client-id=test&currency=USD" data-namespace="paypalUSD"></script>
<script>
paypalUSD.Buttons({
//...
}).render('#paypal-button-container-1');
</script>

<hr />

<h3>EUR buttons...</h3>
<div id="paypal-button-container-2" />
<script src="https://www.paypal.com/sdk/js?client-id=test&currency=EUR" data-namespace="paypalEUR"></script>
<script>
paypalEUR.Buttons({
//...
}).render('#paypal-button-container-2');
</script>

虽然文档中没有任何内容,但看看react paypal js的包代码,它似乎确实得到了支持。您需要单独的PayPalScriptProviders,每个都有自己的货币和data-namespace值(默认为paypal(

最新更新