createOrder 破坏了 paypal api

createOrder breaks paypal api

在 angular 中呈现贝宝按钮时,如下所示:

  @ViewChild("paypalRef", { static: false }) private paypalRef: ElementRef;
  renderPaypalButton() {
    this.paypalSelected = true;
    if (this.paypalButtonRendered != true) {
      paypal
        .Buttons({
          style: {
            layout: "horizontal",
            color: "white",
            label: "",
          },
          createOrder: (data, actions) => {
            return actions.order.create({
              purchase_units: [
                {
                  amount: {
                    value: "1000",
                    currency_code: "zar",
                  },
                },
              ],
            });
          },
        })
        .render(this.paypalRef.nativeElement);
    }
    this.paypalButtonRendered = true;
  }

PayPal 弹出窗口显示一瞬间然后消失。但是,一旦我删除了 createOrder 函数,PayPal 弹出窗口就会正常显示。我确信我做错了什么,但如果有任何帮助,我们将不胜感激。

the PayPal pop up displays for a split second and then disappears.

一般情况下,查看浏览器Javascript控制台and/orDev Tools“网络”选项卡日志,查找错误原因。

currency_code: "zar",

对于这种特殊情况,我们可以看出这不是 PayPal API supported currency

一般情况下,交易必须以美元等通用国际货币计价。如果付款人有本地货币(如 ZAR)的资金来源,例如本地卡,则在结帐时会向他们显示转换。您将收到交易货币(同样,通常是美元)