Paypal JS SDK Smart Payment - отключить подсказку адреса для оплаты кредитной картой без учетной записи

Я интегрирую кнопки умных платежей в кассу 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()? При оплате кредитной картой через других поставщиков платежных услуг они никогда не заботятся об этой пользовательской информации. Только число, срок действия и CVS должны иметь значение для хорошего UX. Даже ввод номера CC уже может быть довольно сложной задачей. То же самое касается оплаты с помощью SEPA. Я просто не хочу, чтобы пользователю приходилось вводить свой адрес.

Или мне нужно передать информацию о клиенте в PayPal, чтобы помочь с предотвращением мошенничества? Если да, могу ли я хотя бы снять флажок «Доставить на адрес для выставления счета»? Это может сбить с толку наших пользователей.

Спасибо!


person Pete    schedule 11.04.2019    source источник


Ответы (2)


Для параметра shipping_preference объекта application_context необходимо установить значение 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);

Вы можете узнать больше об объекте контекста приложения

person Tamik Soziev    schedule 24.04.2019
comment
Кстати, я вижу, что версия API v1 скоро будет прекращена (см. API заказов v1). Это похоже на Payments API v1, поскольку хорошо. В чем разница между заказами и платежами? Я нахожу документацию PayPal немного запутанной по этой теме. Вот Контекст приложения для API заказов v2. - person showdev; 24.04.2019
comment
@showdev Order позволяет вам авторизовать списание и зафиксировать его позже. Оплата должна быть зафиксирована сразу. - person Tamik Soziev; 24.04.2019
comment
Понятно. Спасибо за помощь! - person showdev; 24.04.2019
comment
Нет, это не работает для платежей по кредитным и дебетовым картам. Он работает только при нажатии кнопки PayPal (и внутри всплывающего окна нажмите «Оплатить картой»), но не при нажатии кнопки «Кредитная и дебетовая карта» snipboard. io / B8l60d.jpg - person Marco Marsala; 16.04.2020

Вам необходимо установить параметр 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);
person Ervin Juhász    schedule 25.08.2020
comment
имеет ли значение shipping_type? согласно их документам, это имеет смысл только при предоставлении нескольких вариантов доставки: developer.paypal.com/docs/business/checkout/configure-payments/ - person seekingtheoptimal; 05.04.2021