PaymentRequest: canMakePayment() Methode

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Die Methode canMakePayment() des PaymentRequest bestimmt, ob die Anfrage so konfiguriert ist, dass sie mit mindestens einer Zahlungsart kompatibel ist, die vom User-Agent unterstützt wird.

Sie können dies vor dem Aufruf von show() verwenden, um eine optimierte Benutzererfahrung zu bieten, wenn der Browser des Benutzers keine der von Ihnen akzeptierten Zahlungsmethoden verarbeiten kann.

Zum Beispiel könnten Sie canMakePayment() aufrufen, um zu bestimmen, ob der Browser es dem Benutzer erlaubt, die Payment Request API zu nutzen. Falls dies nicht möglich ist, könnten Sie auf eine andere Zahlungsmethode zurückgreifen oder eine Liste von Methoden anbieten, die nicht von der Payment Request API behandelt werden (oder sogar Anweisungen zum Bezahlen per Post oder Telefon bereitstellen).

Syntax

js
canMakePayment()

Parameter

Keine.

Rückgabewert

Ein Promise auf einen booleschen Wert, der zu true aufgelöst wird, wenn der User-Agent eine der beim Erstellen der Anfrage mit dem PaymentRequest Konstruktor angegebenen Zahlungsmethoden unterstützt. Kann die Zahlung nicht verarbeitet werden, erhält das Promise den Wert false.

Hinweis: Wenn Sie dies zu oft aufrufen, kann der Browser das zurückgegebene Promise mit einem DOMException ablehnen.

Beispiele

Im folgenden Beispiel, aus einer Demo entnommen, wird ein PaymentRequest-Objekt sowohl für Apple Pay als auch für Example Pay asynchron erstellt. Der Aufruf von canMakePayment() wird in eine Feature-Erkennung eingebunden und abhängig von der Auflösung des Promise wird ein geeigneter Rückruf aufgerufen.

js
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
}

Spezifikationen

Specification
Payment Request API
# dom-paymentrequest-canmakepayment

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
canMakePayment()

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
User must explicitly enable this feature.

Siehe auch