尝试更改我的货币,但当我使用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¤cy=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¤cy=EUR" data-namespace="paypalEUR"></script>
<script>
paypalEUR.Buttons({
//...
}).render('#paypal-button-container-2');
</script>
虽然文档中没有任何内容,但看看react paypal js的包代码,它似乎确实得到了支持。您需要单独的PayPalScriptProviders,每个都有自己的货币和data-namespace
值(默认为paypal
(