Paypal智能按钮结账无需发货

Paypal smart button checkout without shipping

我通过以下代码使用 Paypal 的智能支付按钮:

window.paypal.Buttons({
    createOrder: function(data, actions) {
        return actions.order.create({
            purchase_units: [{
                amount: {
                    value: this.price,
                    currency: "USD"
                }
            }]
        });
    },
    ...
}

除了它要求用户在结帐时提供送货地址这一事实外,它工作正常window,我想摆脱它,因为这是数字商品而不是实体商品。我怎样才能做到这一点?我试过 no_shipping: 1 并且类似无济于事。

明白了,您需要使用您之前创建的支付体验在服务器端创建支付而不是订单。

您可以像这样使用 application_context 和 shipping_preference

return actions.order.create({
    "application_context": {
        shipping_preference: "NO_SHIPPING",
    },
    purchase_units: [{
        amount: {value: "0.1"},
    },],
});