Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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 des PaymentRequestEvent Interfaces verhindert die Standard-Ereignisverarbeitung und ermöglicht es Ihnen, selbst ein Promise für ein Antwortobjekt des Zahlungshandlers bereitzustellen.

Syntax

js
respondWith(promise)

Parameter

promise

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

methodName

Der Bezahlmethoden-Identifikator für die Zahlungsmethode, die der Benutzer ausgewählt hat, um die Transaktion zu erfüllen.

details

Ein JSON-serialisierbares Objekt, das eine zahlungsmethoden-spezifische Nachricht enthält, die vom Händler zur Verarbeitung der Transaktion und zur Bestimmung eines erfolgreichen Geldtransfers verwendet wird. Siehe 8.1.2 details Attribut für weitere Details.

Rückgabewert

Keiner (undefined).

Beispiele

Das untenstehende Beispiel ist Öffnen Sie das Zahlungsfenster, um die Web-basierte Zahlungs-App-Frontend anzuzeigen entnommen. 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
Web-based Payment Handler API
# dom-paymentrequestevent-respondwith

Browser-Kompatibilität

Siehe auch