首页 > 解决方案 > PayPal Smart Payments:更改货币代码

问题描述

我正在尝试在网页上设置 PayPal 智能支付。我在这里使用他们给出的示例:https ://developer.paypal.com/docs/checkout/integrate/

如果我currency_code设置USD它工作正常,但如果我将其更改为其他任何内容,例如CADGBP窗口将无法加载。我究竟做错了什么?

<script src="https://www.paypal.com/sdk/js?client-id=sb"></script>
<script>
  paypal.Buttons({
    createOrder: function(data, actions) {
      return actions.order.create({
        'purchase_units': [{
          'amount': {
            'currency_code': 'USD',
            'value': '5',
          },
        }]
      })
    }
  }).render('body')
</script>

出于某种原因,此示例不会在 Stack Overflow 上运行,但它在 JSFiddle 上运行良好,所以我用currency_code不同的集合制作了两个示例。

'currency_code': 'USD'https ://jsfiddle.net/liquidmetalrob/8y3p52fh/

'currency_code': 'GBP'https ://jsfiddle.net/liquidmetalrob/8y3p52fh/1

第一个示例将加载 PayPal 窗口,您需要一个 PayPal Sandbox 帐户才能登录。因此,如果您想登录,可以使用我刚刚创建的一次性帐户。用户名:sb-ilukn1050819@personal.example.com密码:pRKCu9.>但重要的问题是为什么在第二个示例中窗口甚至没有加载?

标签: paypalpaypal-sandboxpaypal-rest-sdk

解决方案


我在这里找到了答案:https ://developer.paypal.com/docs/checkout/reference/customize-sdk/

您必须改为将货币代码添加到脚本 URL,并将其从 JS 中删除。

<script
  src="https://www.paypal.com/sdk/js?client-id=sb&currency=GBP">
</script>
<script>
  paypal.Buttons({
    createOrder: function(data, actions) {
      return actions.order.create({
        'purchase_units': [{
          'amount': {
            'value': '5',
          },
        }]
      })
    }
  }).render('body')
</script>

注意:client-id可以设置为sb进行测试,但在生产中您使用自己的。


推荐阅读