Spec-Zone.ru › Web APIs

PaymentResponse: метод complete()

Ограниченная доступность

Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.

Метод PaymentRequest complete() объекта Payment Request API уведомляет браузер, что взаимодействие пользователя завершено, и вызывает закрытие любых оставшихся пользовательских интерфейсов.

Этот метод должен быть вызван после того, как пользователь примет запрос на платеж, и Promise, возвращённый методом PaymentRequest.show(), будет разрешён.

Синтаксис

complete()
complete(result)

Параметры

result Необязательно

Строка, указывающая состояние операции платежа после завершения. Она должна быть одной из следующих:

success

Платеж был успешно обработан. Браузер может или не может отобразить пользователю какое-либо сообщение об успешном платеже.

fail

Платеж не был успешно обработан. Ошибка может или не может быть сообщена пользователю браузером, в зависимости от его дизайна.

unknown

Статус успешности или неудачи транзакции неизвестен или не имеет значения, и браузер не должен отображать никакого уведомления, даже если бы он обычно это делал. Это значение по умолчанию.

Примечание: В более ранних версиях спецификации вместо unknown использовалась пустая строка, "", для обозначения завершения без известного состояния результата. Подробности см. в разделе Совместимость с браузерами ниже.

Возвращаемое значение

A Promise, который разрешается без входного значения, когда пользовательский интерфейс платежа полностью закрыт. В случае возникновения ошибки обещание отклоняется, возвращая одну из перечисленных ниже исключений.

Исключения

AbortError DOMException

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

InvalidStateError DOMException

Возвращается, если платеж уже завершен или 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API