【问题标题】:Changing currency in Paypal SDK在 Paypal SDK 中更改货币
【发布时间】:2021-02-21 20:50:48
【问题描述】:

我正在尝试使用 JavaScript/React 连接到 PayPal

我已设置流程,但仅用于识别美元。 我曾尝试遵循网上的建议,这对我一直很有帮助,但很难让它与英镑等另一种货币一起使用

const dispatch = useDispatch();
  useEffect(() => {
    const addPayPalScript = async () => {
      const { data } = await Axios.get('/api/config/paypal');
      const script = document.createElement('script');
      script.type = 'text/javascript';
      script.src = "https://www.paypal.com/sdk/js?client-id='myclientid'&currency=GBP";
      
      script.async = true;
      script.onload = () => {
        setSdkReady(true);
      };
      document.body.appendChild(script);
    };

然后当我按下按钮时

<PayPalButton 
  amount={order.totalPrice}
  onSuccess={successPaymentHandler}
></PayPalButton> 

我在 order.currency 中也有货币作为字段。

错误来自 意外货币:美元传递给 order.create。请确保您在 paypal 脚本标签中传递 /sdk/js?currency=USD。 到 意外货币:英镑传递给 order.create。请确保您在 paypal 脚本标签中传递 /sdk/js?currency=GBP。

【问题讨论】:

  • client-id='myclientid' 的格式如何?不应该有引号
  • 不,我没有任何引号。我把它们放在它们上面是为了让它更清楚,但显然不是哈哈,所以如果我对以美元为单位的金额没问题,代码就可以工作,但我需要以 gbp 为单位。
  • 好吧,如果您传递货币=GBP,那么它应该可以使用 GBP 创建订单,但您没有向我们展示后者
  • 你知道我是否需要将 {order.totalPrice} 定义为某处的 GDP 吗?
  • 当您创建付款时,它需要使用英镑。谁知道 抽象背后发生了什么,您显然在使用类似反应对象的东西,但我们无法就我们看不到的内容提供建议

标签: javascript paypal paypal-sandbox


【解决方案1】:

更新:应该改用官方react-paypal-js模块

当使用[非官方]https://github.com/Luehang/react-paypal-button-v2#large_blue_diamond-props

“货币”有一个参数,例如

<PayPalButton 
    amount={order.totalPrice}
    currency="GBP"
    onSuccess={successPaymentHandler}
></PayPalButton> 

这是创建订单时的货币,它(如果在抽象代码中指定)需要与 SDK 加载行上的货币匹配。

【讨论】:

  • 如何在不通过脚本标签传递货币参数的情况下动态更改 Paypal 中的货币?它不是一个 React 应用程序。有什么办法可以做到这一点,或者我必须重新下载整个 PayPal 脚本?为此,有线 PayPal SDK!!
  • 你不能。这是加载脚本时的必需参数,用于评估为该货币显示哪些按钮。如果您想动态重新加载脚本,请使用 npm 中的 paypal-js 或对于 vanilla JS,请参阅 stackoverflow.com/questions/68371011/…
  • paypal设计的什么系统!这看起来 PayPal 是个可怜的家伙!我正在尝试集成 paypal-js 它仍然会抛出错误 :( 当单击支付按钮时,它会拒绝并在控制台中显示 click_initiate_payment_reject 与其他日志。
  • 您提供的 SO 链接运行良好。但有一个回收问题。当货币变化时,我可以重新启动它,但那些已经发生的呢?它不会删除前一个。
  • 代码将脚本添加到它优先的位置。如果您想删除其他脚本标签,您可以为此编写代码。
猜你喜欢
  • 2020-05-29
  • 2016-02-02
  • 2011-05-05
  • 2015-07-18
  • 2020-11-24
  • 2014-12-08
  • 1970-01-01
  • 2014-12-29
  • 2021-01-03
相关资源
最近更新 更多