PaymentResponse: метод complete()
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.
Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.
Метод PaymentRequest complete() объекта Payment Request API уведомляет браузер, что взаимодействие пользователя завершено, и вызывает закрытие любых оставшихся пользовательских интерфейсов.
Этот метод должен быть вызван после того, как пользователь примет запрос на платеж, и Promise, возвращённый методом PaymentRequest.show(), будет разрешён.
Синтаксис
complete() complete(result)
Параметры
resultНеобязательно-
Строка, указывающая состояние операции платежа после завершения. Она должна быть одной из следующих:
success-
Платеж был успешно обработан. Браузер может или не может отобразить пользователю какое-либо сообщение об успешном платеже.
fail-
Платеж не был успешно обработан. Ошибка может или не может быть сообщена пользователю браузером, в зависимости от его дизайна.
unknown-
Статус успешности или неудачи транзакции неизвестен или не имеет значения, и браузер не должен отображать никакого уведомления, даже если бы он обычно это делал. Это значение по умолчанию.
Примечание: В более ранних версиях спецификации вместо
unknownиспользовалась пустая строка,"", для обозначения завершения без известного состояния результата. Подробности см. в разделе Совместимость с браузерами ниже.
Возвращаемое значение
A Promise, который разрешается без входного значения, когда пользовательский интерфейс платежа полностью закрыт. В случае возникновения ошибки обещание отклоняется, возвращая одну из перечисленных ниже исключений.
Исключения
-
AbortErrorDOMException -
Возвращается, если документ, в котором происходит запрос на платеж, стал неактивным, пока был показан пользовательский интерфейс.
-
InvalidStateErrorDOMException -
Возвращается, если платеж уже завершен или
complete()был вызван, в то время как запрос на повторную попытку платежа находится в ожидании. Вы не можете считать платеж завершенным после запроса повторной попытки платежа.
Примеры
В следующем примере данные платежа отправляются на защищенный сервер с использованием Fetch API. Вызывается complete() с ответом, соответствующим статусу в ответе.
// Initialization of PaymentRequest arguments are excerpted for the
// sake of brevity.
const payment = new PaymentRequest(supportedInstruments, details, options);
payment
.show()
.then((paymentResponse) => {
const fetchOptions = {
method: "POST",
credentials: include,
body: JSON.stringify(paymentResponse),
};
const serverPaymentRequest = new Request("secure/payment/endpoint");
fetch(serverPaymentRequest, fetchOptions)
.then((response) => {
if (response.status < 400) {
paymentResponse.complete("success");
} else {
paymentResponse.complete("fail");
}
})
.catch((reason) => {
paymentResponse.complete("fail");
});
})
.catch((err) => {
console.error("Uh oh, something bad happened", err.message);
});
Спецификации
| Спецификация |
|---|
| Payment Request API # dom-paymentresponse-complete |
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
complete |
60 | 15 | 55 | 47 | 11.1 | 53 | Нет | 41 | 11.3 | 6.0 | Нет |
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/PaymentResponse/complete