PayPal Checkout / Smart Buttons - 创建订单和可选的空字段时出错

PayPal Checkout / Smart Buttons - Error with createOrder & empty fields which are optional

我通过 createOrder 函数传递了一些客户信息,主要是为了预填充信用卡/借记卡字段。

结帐时可选 phone 号码。使用以下代码,如果 order_phone 字段有一个 phone 数字,它就可以工作。如果它是空的,它 returns 一个错误并停止。有什么办法解决这个问题或让贝宝知道它是可选的吗?其他变量也会发生这种情况,客户可能是可选的。

    createOrder: function(data, actions) {
      return actions.order.create({
        purchase_units: [{
            amount: {
                value: $("#grand_total").val(),
                currency_code: ("#grand_total").val()
            }
        }],
        "application_context" : { 
             "shipping_preference":"NO_SHIPPING"
        },
        payer: {
            name: {
                given_name: $("#first_name").val(),
                surname: $("#last_name").val()
            },
            email_address: $("#email_address").val(),
                phone: {
                phone_number: {
                    national_number: $("#order_phone").val()
                }
            }
        },
    });
},

试试

    createOrder: function(data, actions) {
      var myOrder = {
        purchase_units: [{
            amount: {
                value: $("#grand_total").val(),
                currency_code: "USD"
            }
        }],
        "application_context" : { 
             "shipping_preference":"NO_SHIPPING"
        },
        payer: {
            name: {
                given_name: $("#first_name").val(),
                surname: $("#last_name").val()
            },
            email_address: $("#email_address").val(),
        },
      };
    
      var phone = $("#order_phone").val();
      if(phone) myOrder.payer.phone = {
                  phone_number: {
                    national_number: phone
                  }
                };
      return actions.order.create(myOrder);
    },