You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用react-paypal-js实现多币种PayPal按钮时遇币种配置错误

解决PayPal按钮切换为EUR币种的问题

问题1:设置currency_code: 'EUR'时触发错误

错误提示核心原因是SDK脚本加载时未正确携带currency=EUR参数——即便你在initialOptions里配置了currency: 'EUR',也可能因浏览器缓存或参数传递异常,导致SDK实际加载的是默认币种(USD)。此时在createOrder中指定currency_code: 'EUR'就会触发币种不匹配的错误。

修复步骤:

  • 保留PayPalScriptProvider的initialOptions中currency: 'EUR'的配置,彻底移除createOrder里amount对象的currency_code字段。SDK会自动沿用初始化时指定的币种,无需重复声明。
  • 强制刷新浏览器缓存,或在initialOptions中添加防缓存参数确保SDK重新加载,比如:
    const initialOptions = {
      'client-id': 'test',
      currency: 'EUR',
      intent: 'capture',
      'data-sdk-integration-source': 'react-custom'
    };
    

问题2:仅设置initialOptions后内容不全为欧元

若金额显示为USD转换为EUR的形式,说明SDK已加载EUR币种,但存在以下潜在问题:

  • 确认createOrder中amount.value是欧元计价的金额,确保数值本身就是欧元金额,而非USD金额被自动转换。
  • 检查PayPal商家账户的默认币种设置,若账户默认币种为USD,需在商家后台切换默认币种为EUR,避免订单创建时出现币种混淆。

修正后的完整代码示例:

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: {
                        value: 2 // 直接传入欧元金额,无需指定currency_code
                    }
                }]
            });
        }}
    />
</PayPalScriptProvider>

内容的提问来源于stack exchange,提问作者zuzuzuu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 14:55:20