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 vor der Verwendung auf produktiven Webseiten.

Hinweis: Diese Funktion ist nur in Service Workers verfügbar.

Die respondWith()-Methode der PaymentRequestEvent-Schnittstelle verhindert die standardmäßige Ereignisbehandlung und ermöglicht es Ihnen, selbst ein Promise für ein Payment-Handler-Response-Objekt bereitzustellen.

Syntax

js
respondWith(promise)

Parameter

promise

Ein Payment-Handler-Response-Objekt oder ein Promise, das zu einem solchen aufgelöst wird. Dieses Objekt sollte die folgenden Eigenschaften enthalten:

methodName

Der Zahlungsarten-Identifikator für die Zahlungsart, die der Benutzer ausgewählt hat, um die Transaktion abzuschließen.

details

Ein JSON-serialisierbares Objekt, das eine zahlungsspezifische Nachricht bereitstellt, die vom Händler zur Verarbeitung der Transaktion verwendet wird, um einen erfolgreichen Geldtransfer zu bestimmen. Weitere Informationen finden Sie unter 7.1.2 details attribute.

Rückgabewert

Keiner (undefined).

Beispiele

Das folgende Beispiel stammt aus Open the payment handler window to display the web-based payment app frontend. 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 new Error("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

Siehe auch