PayPal JS SDK 智能支付 - 在无需账户的信用卡支付中禁用地址提示

17

我正在将智能支付按钮集成到PayPal结账中

<script src="https://www.paypal.com/sdk/js?...>
paypal.Buttons({
createOrder(data, actions) {
// ...
onApprove(data, actions) {
// ...
}).render('#paypal-button');
除了使用 PayPal 帐户支付外,我们希望向用户提供使用 SEPA 或信用卡支付购买我们的数字产品的选项,而无需创建 PayPal 帐户。
我们不需要从用户那里输入账单地址或邮寄地址。我们已经拥有了这些信息,并且自己处理账单,而邮寄不适用。
是否有办法使用 JS SDK 禁用地址输入(并最好也禁用联系信息输入)? 有没有任何参数我可以传递到 SDK 资源或 paypal.Buttons.render() 方法中?
当通过其他支付提供商使用信用卡付款时,他们从来不关心用户信息。对于良好的UX,只需要输入卡号、有效期和CVV码。甚至输入信用卡号码可能已经很痛苦了。与SEPA一样,我只是不想让用户输入他们的地址。
或者我必须将客户信息传递给PayPal以帮助防止欺诈?如果是这样,我至少能否禁用“发送到账单地址”复选框? 这可能会使我们的用户感到困惑。
谢谢!
2个回答

24

您需要将application_context对象的shipping_preference参数设置为'NO_SHIPPING'

paypal.Buttons({
  createOrder: function(data, actions) {
    return actions.order.create({
      purchase_units: [{ amount: { value: 99.00 } }],

      application_context: {
        shipping_preference: 'NO_SHIPPING'
      }

    });
  },
  onApprove: function(data, actions) {}
}).render(button);
您可以阅读有关应用上下文对象的更多信息。

1
顺便提一下,我看到“API v1版本很快就会被弃用”(请参阅订单API v1)。这似乎也适用于支付API v1。订单和付款有什么区别?我觉得PayPal的文档在这个主题上有点混乱。这是订单API v2的应用程序上下文 - showdev
2
@showdev "Order" 允许您授权收费并稍后捕获,而 "Payment" 必须立即捕获。 - Tamik Soziev
我了解了,感谢您的帮助! - showdev
2
不,它不适用于“信用卡和借记卡”付款。它仅适用于选择“PayPal”按钮(并在弹出窗口中单击“使用卡付款”),而不是单击“信用卡和借记卡”https://snipboard.io/B8l60d.jpg - Marco Marsala

1
您需要将shipping_type参数设置为“PICKUP”:
paypal.Buttons({
  createOrder: function(data, actions) {
    return actions.order.create({
      shipping_type: 'PICKUP',
      application_context: { shipping_preference: 'NO_SHIPPING' },
      purchase_units: [{ amount: { value: 99.00 } }]
    });
  },
  onApprove: function(data, actions) {}
}).render(button);

运输类型是否有任何影响?根据他们的文档,只有在提供多个运输选项时才有意义:https://developer.paypal.com/docs/business/checkout/configure-payments/shipping-options/ - seekingtheoptimal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接