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: Methode respondWith()

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Want more browser support for this feature? Tell us why.

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 Methode respondWith() der Schnittstelle PaymentRequestEvent verhindert die standardmäßige Behandlung des Ereignisses und ermöglicht es Ihnen, selbst eine Promise für ein Antwortobjekt des Payment Handlers bereitzustellen.

Syntax

js
respondWith(promise)

Parameter

promise

Ein Antwortobjekt des Payment Handlers oder eine Promise, die zu einem solchen Objekt aufgelöst wird. Das Objekt sollte die folgenden Eigenschaften enthalten:

methodName

Die Kennung der Zahlungsmethode, die der Benutzer zum Abschluss der Transaktion ausgewählt hat.

details

Ein JSON-serialisierbares Objekt mit einer zahlungsmethodenspezifischen Nachricht, anhand derer der Händler die Transaktion verarbeitet und feststellt, ob die Geldübertragung erfolgreich war. Weitere Informationen finden Sie unter 8.1.2 Attribut details.

Die promise kann mit den folgenden Werten zurückgewiesen werden, um einen Fehler der Zahlungs-App anzuzeigen:

AbortError DOMException

Zeigt an, dass der Benutzer die Zahlungsanfrage abgebrochen hat.

OperationError DOMException

Zeigt einen internen Fehler in der App an, die die Zahlung verarbeitet.

Wird die promise mit einem anderen Wert zurückgewiesen, wird dieser AbortError zugeordnet.

Rückgabewert

Keiner (undefined).

Beispiele

Das folgende Beispiel stammt aus Öffnen des Payment-Handler-Fensters zur Anzeige der Benutzeroberfläche der webbasierten Zahlungs-App. 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

Spezifikation
Web-based Payment Handler API
# dom-paymentrequestevent-respondwith

Browser-Kompatibilität

Siehe auch