Когда клиент пытается что-либо купить на вашем сайте, сайт должен запросить у него платёжную информацию и, при необходимости, другие данные, например, о предпочитаемой доставке. Вы можете быстро сделать это с помощью 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.
Следующий
Узнайте больше о веб-платежах .