PayPal 结账/智能按钮 - createOrder 和可选的空字段出错

问题描述

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

结帐时可选的电话号码之类的信息。如果 order_phone 字段有电话号码,则使用以下代码,它可以工作。如果为空,则返回错误并停止。有没有办法解决这个问题,或者让 PayPal 知道它是可选的?其他变量也会发生这种情况,对于客户来说可能是可选的。

    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);
    },