Обзор API запроса платежа

Когда клиент пытается что-либо купить на вашем сайте, сайт должен запросить у него платёжную информацию и, при необходимости, другие данные, например, о предпочитаемой доставке. Вы можете быстро сделать это с помощью API запроса платежей (PR API) .

Базовая структура оплаты

Для создания объекта PaymentRequest требуются два параметра: способы оплаты и платежные данные . Кроме того, третий параметр «Параметры оплаты» необязателен. Простой запрос можно создать следующим образом:

const request = new PaymentRequest(paymentMethods, paymentDetails);

Посмотрите, как создается и используется каждый параметр.

Способы оплаты

Первый параметр, paymentMethods , представляет собой список поддерживаемых способов оплаты в виде массива. Каждый элемент массива состоит из двух компонентов: supportedMethods и, опционально, data .

Для supportedMethods продавец должен указать идентификатор способа оплаты, например, https://bobbucks.dev/pay . Наличие и содержание data зависят от содержимого supportedMethods и архитектуры платежного приложения поставщика.

Обе части информации должны быть предоставлены поставщиком платежного приложения.

// Supported payment methods
const paymentMethods = [{
  supportedMethods: 'https://bobbucks.dev/pay',
  data: {
    ... // Optional parameters defined by the payment app provider.
  }
}];

Платежные реквизиты

Второй параметр, paymentDetails , передаётся как объект и содержит платёжные данные для транзакции. Он содержит обязательное значение total , которое определяет общую сумму, подлежащую оплате клиентом. Этот параметр также может содержать список приобретённых товаров.

В следующем примере показан список необязательных приобретенных товаров (в данном случае только один товар), а также общая сумма к оплате. В обоих случаях для каждой суммы указана денежная единица.

const paymentDetails = {
  displayItems: [{
    label: 'Anvil L/S Crew Neck - Grey M x1',
    amount: { currency: 'USD', value: '22.15' }
  }],
  total: {
    label: 'Total due',
    amount: { currency: 'USD', value : '22.15' }
  }
};

Проверьте, доступен ли способ оплаты.

Chrome проверяет готовность пользователя и среды к совершению платежа во время построения объекта PaymentRequest .

Чтобы проверить готовность пользователя и среды к совершению платежа, вызовите canMakePayment() перед запуском процедуры оплаты. Вызов canMakePayment() возвращает true , если браузер поддерживает хотя бы один способ оплаты, указанный в объекте.

request.canMakePayment().then(result => {
  if (result) {
    // This browser supports the specified payment method.
  } else {
    // This browser does NOT support the specified payment method.
  }
}).catch(e => {
  // An exception
});

Узнайте больше о PaymentRequest.canMakePayment() на MDN

Метод show()

После установки двух параметров и создания объекта request вы можете вызвать метод show() , который отображает пользовательский интерфейс платежного приложения.

request.show().then(response => {
  // [process payment]
  // send to a PSP etc.
  response.complete('success');
});

Внешний вид пользовательского интерфейса платёжного приложения полностью зависит от поставщика. После того, как покупатель соглашается на оплату, продавцу передаётся JSON-объект, содержащий всю необходимую информацию для перевода средств. Продавец может отправить его платежной системе для обработки платежа.

Наконец, вы можете закрыть пользовательский интерфейс запроса платежа, завершив процесс с помощью response.complete('success') или response.complete('fail') в зависимости от результата, возвращаемого PSP.

Следующий

Узнайте больше о веб-платежах .