贝宝智能支付:更改货币代码

PayPal Smart Payments: changing the currency code

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

如果我将 currency_code 设置为 USD 它工作正常,但如果我将其更改为其他任何内容,例如 CADGBP window 不会加载。我做错了什么?

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

我在这里找到了答案: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 用于测试,但在生产中您使用自己的。