Braintree多种货币

r4i*_*id4 1 paypal braintree braintree-sandbox

我正在尝试将Braintree集成到我的网站中以接受付款,并且我对多货币支持有两个问题。
首先,我要说的是,由于我居住在欧盟,因此我已经创建了一个接受EUR的帐户。

现在,假设有一个美国人想在我的Web应用程序上购买东西。他显然有一张与美元银行帐户绑定的信用卡。阅读文档后,我发现在Braintree中我无法指定货币,因此在这种情况下10,我的金额为10欧元

gateway.transaction.sale({
        amount: 10,
        paymentMethodNonce: nonceFromTheClient,
        options: {
            submitForSettlement: true
        }
    })
Run Code Online (Sandbox Code Playgroud)

这意味着我必须在我的网站上显示

Would you like to buy this item for 11.16 USD?
Run Code Online (Sandbox Code Playgroud)

其中11.16是当前转换率(在撰写本文时)。

这是正确的方法吗?我对此有两个怀疑的理由:

  • 假设我使用在线实时转换器>>如果用户刷新页面,他可能会发现不同的金额(BAD UX
  • 假设我设置了一个固定的转换率,例如1 EUR == 1.1 USD >>,那么用户会在卡上找到与网站上显示的金额不同的金额。这是因为我实际收取10欧元而不是11美元作为广告(BAD UX

您能帮我了解解决此问题的正确方法吗?

每次我从外国网站上购买商品时,都会获得以欧元显示的转换,并且已被收取了确切的金额,但是在Braintree上,我不知道该怎么做。

提前致谢

小智 5

完全公开,我在Braintree工作。如果您还有其他疑问,建议与我们的支持团队联系

您可以通过传递交易货币来指定货币merchantAccountId。这样可以避免您每次交易都要进行大量转换。

这是Braintree开发人员文档中示例的修改版本:

gateway.transaction.sale({
  amount: "10.00",
  merchantAccountId: "your_merchant_account",
  paymentMethodNonce: nonce_from_the_client,
  options: {
    submitForSettlement: true
  }
})
Run Code Online (Sandbox Code Playgroud)

如果还没有生产帐户,则应该联系Braintree的团队,要求您需要处理的货币。如果您只是在沙盒中进行测试,则可以按照以下步骤创建测试商家帐户。