PaymentRequestEvent: respondWith() Methode

Limited availability

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

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.

Hinweis: Dieses Feature ist nur verfügbar in Service Workers.

Die respondWith() Methode der Schnittstelle PaymentRequestEvent verhindert die Standard-Ereignisbehandlung und ermöglicht es Ihnen, selbst ein Promise für ein Zahlungshandler-Antwortobjekt bereitzustellen.

Syntax

js
respondWith(promise)

Parameter

promise

Ein Zahlungshandler-Antwortobjekt oder ein Promise das zu einem solchen aufgelöst wird. Dieses Objekt sollte die folgenden Eigenschaften enthalten:

methodName

Der Bezahlmethode-Identifikator für die vom Benutzer ausgewählte Zahlungsmethode zur Durchführung der Transaktion.

details

Ein JSON-serialisierbares Objekt, das eine bezahlmethode-spezifische Nachricht bereitstellt, die vom Händler verwendet wird, um die Transaktion zu verarbeiten und einen erfolgreichen Geldtransfer zu bestimmen. Siehe 7.1.2 details attribute für weitere Details.

Rückgabewert

Keiner (undefined).

Beispiele

Das folgende Beispiel stammt aus Öffnen Sie das Zahlungsabwicklerfenster, um die webbasierte Zahlungs-App-Frontend anzuzeigen. Lesen Sie den Artikel, um den Kontext des Codes zu verstehen.

js
self.addEventListener("paymentrequest", async (e) => {
  // Retain a promise for future resolution
  resolver = new PromiseResolver();

  // Pass a promise that resolves when payment is done.
  e.respondWith(resolver.promise);
  // Open the checkout page.
  try {
    // Open the window and preserve the client
    client = await e.openWindow(checkoutURL);
    if (!client) {
      // Reject if the window fails to open
      throw "Failed to open window";
    }
  } catch (err) {
    // Reject the promise on failure
    resolver.reject(err);
  }
});

Spezifikationen

Specification
Payment Handler API
# dom-paymentrequestevent-respondwith

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch