Spec-Zone.ru › Web APIs

PaymentRequest: метод canMakePayment()

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

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

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

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

Метод PaymentRequest canMakePayment() определяет, настроена ли заявка так, чтобы быть совместимой хотя бы с одним способом оплаты, поддерживаемым агентом пользователя.

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

Например, вы можете вызвать canMakePayment() для определения, позволит ли браузер пользователю оплатить с помощью API Payment Request, и если нет, вы можете перейти к другому способу оплаты или предложить список способов, которые не обрабатываются API Payment Request (или даже предоставить инструкции по оплате почтой или по телефону).

Синтаксис

canMakePayment()

Параметры

Нет.

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

Обещание Promise булевому значению, которое разрешается в true если агент пользователя поддерживает любой из способов оплаты, предоставленных при создании запроса с помощью конструктора PaymentRequest. Если обработка платежа невозможна, обещание получает значение false.

Примечание: Если вы вызываете эту функцию слишком часто, браузер может отклонить возвращённое обещание с ошибкой DOMException.

Примеры

В следующем примере, взятом из демонстрационного примера, асинхронно создаётся объект PaymentRequest для Apple Pay и Example Pay. Он оборачивает вызов canMakePayment() в обнаружение возможности функции и вызывает соответствующую функцию обратного вызова в зависимости от разрешения Promise.

async function initPaymentRequest() {
  const details = {
    total: {
      label: "Total",
      amount: {
        currency: "USD",
        value: "0.00",
      },
    },
  };

  const supportsApplePay = new PaymentRequest(
    [{ supportedMethods: "https://apple.com/apple-pay" }],
    details,
  ).canMakePayment();

  // Supports Apple Pay?
  if (await supportsApplePay) {
    // show Apple Pay logo, for instance
    return;
  }

  // Otherwise, let's see if we can use Example Pay
  const supportsExamplePay = await new PaymentRequest(
    [{ supportedMethods: "https://example.com/pay" }],
    details,
  ).canMakePayment();

  if (supportsExamplePay) {
    // show Example Pay support
    return;
  }

  // Otherwise, make payments using HTML form element
}

Спецификации

Спецификация
Payment Request API
# dom-paymentrequest-canmakepayment

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
canMakePayment 60 16 55 47 11.1 53 Нет 44 11.3 6.0 Нет

См. также

  • PaymentRequest.show()

© 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/PaymentRequest/canMakePayment

Spec-Zone.ru

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