API запроса платежа: что такое счет получателя?
Я смотрел на API запроса платежа, который, по-видимому, доступен в некоторых браузерах, но мне было интересно, где / как вы устанавливаете учетную запись, на которую отправляются платежи? Я не вижу нигде в следующем коде, который указывает учетную запись, на которую платеж будет отправлен в случае успеха:
function onBuyClicked() {
if (!window.PaymentRequest) {
// PaymentRequest API is not available. Forwarding to
// legacy form based experience.
location.href = '/checkout';
return;
}
// Supported payment methods
var supportedInstruments = [{
supportedMethods: ['basic-card']
data: {
supportedNetworks: [
'visa', 'mastercard', 'amex', 'discover',
'diners', 'jcb', 'unionpay'
]
}
}];
// Checkout details
var details = {
displayItems: [{
label: 'Original donation amount',
amount: { currency: 'USD', value: '65.00' }
}, {
label: 'Friends and family discount',
amount: { currency: 'USD', value: '-10.00' }
}],
total: {
label: 'Total due',
amount: { currency: 'USD', value : '55.00' }
}
};
// 1. Create a `PaymentRequest` instance
var request = new PaymentRequest(supportedInstruments, details);
// 2. Show the native UI with `.show()`
request.show()
// 3. Process the payment
.then(result => {
// POST the payment information to the server
return fetch('/pay', {
method: 'POST',
credentials: 'include',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(result.toJSON())
}).then(response => {
// 4. Display payment results
if (response.status === 200) {
// Payment successful
return result.complete('success');
} else {
// Payment failure
return result.complete('fail');
}
}).catch(() => {
return result.complete('fail');
});
});
}
document.querySelector('#start').addEventListener('click', onBuyClicked);
1 ответ
Короче говоря: вы не делаете.
API запроса платежа не является заменой платежных систем. Сам браузер не имеет средств для обработки перевода средств на ваш счет - он даже не может проверить, является ли предоставленный способ оплаты действительным (хотя Android Pay может сделать это).
Для введения документа API запроса платежа (выделено мое):
...
Затем браузер представляет пользовательский интерфейс платежей пользователю, который выбирает способ оплаты и авторизует транзакцию. Способ оплаты может быть таким же простым, как кредитная карта, которая уже хранится в браузере, или таким же эзотерическим, как и стороннее приложение, написанное специально для доставки платежей на сайт (эта функция скоро появится). После того, как пользователь авторизует транзакцию, все необходимые реквизиты для оплаты отправляются обратно на сайт. Например, для оплаты кредитной картой сайт вернет номер карты, имя владельца карты, срок действия и CVC.
...
Другими словами, API запроса платежа - это просто более простой и безопасный способ сбора номера карты пользователя и другой информации, необходимой для обработки платежа. Как только вы получите эту информацию, она будет почти такой же, как если бы пользователь отправил ее через обычную форму. Вам все еще нужен обработчик платежей (или что-то подобное), чтобы фактически создать транзакцию.