You need to enable JavaScript to run this app. PayPal API设置币种为SGD后交易仍为USD问题求助
优惠活动
大模型
产品
解决方案
定价
更多

PayPal API设置币种为SGD后交易仍为USD问题求助

币种不生效问题解决步骤
  • 清理SDK缓存:PayPal SDK会缓存浏览器本地的配置,你可以先清除浏览器缓存,或者在加载SDK的URL末尾添加动态时间戳参数避免缓存,修改后的脚本加载代码如下:
const addPayPalScript = () => {
    const script = document.createElement("script");
    script.type = "text/javascript";
    // 末尾添加时间戳避免旧缓存影响
    script.src = "https://www.paypal.com/sdk/js?client-id=CLIENT_ID&currency=SGD&t=" + new Date().getTime();
    script.async = true;
    script.onload = () => {
      setSdkReady(true);
    };
    document.body.appendChild(script);
  };
  • 修正PayPalButton组件的传参逻辑:你当前直接给组件传currency属性的写法不符合多数版本react-paypal-button-v2的参数规范,需要同时在options配置和createOrder回调中明确指定SGD币种,避免组件默认使用USD,修改后的组件代码如下:
<PayPalButton
  amount={parcel.basePrice}
  onSuccess={successPaymentHandler}
  // 配置项中明确指定币种
  options={{
    currency: 'SGD'
  }}
  // 覆写创建订单逻辑,在订单参数中明确指定币种
  createOrder={(data, actions) => {
    return actions.order.create({
      purchase_units: [{
        amount: {
          currency_code: 'SGD',
          value: parcel.basePrice
        }
      }]
    })
  }}
/>
  • 检查商家账户币种权限:登录你的PayPal商家后台,进入币种管理页面,确认已经添加SGD作为支持的收款币种。如果未开通对应币种的收款权限,PayPal会自动将所有交易转换为你的账户默认币种(通常为USD),导致配置不生效。
  • 排查SDK重复加载问题:确认整个页面只加载了一次币种为SGD的PayPal SDK,如果你之前加载过其他币种的SDK且未清理,后续加载的同域名SDK配置会被忽略,导致币种沿用旧的配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 03:48:03