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 standardmäßige Ereignisbehandlung und ermöglicht es Ihnen, selbst ein Promise für ein Zahlungshandler-Antwortobjekt bereitzustellen.
Syntax
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 Zahlungsarten-Identifikator für die Zahlungsmethode, die der Benutzer ausgewählt hat, um die Transaktion zu erfüllen.
details-
Ein JSON-serialisierbares Objekt, das eine zahlungsspezifische Nachricht bereitstellt, die vom Händler verwendet wird, um die Transaktion zu verarbeiten und einen erfolgreichen Geldtransfer zu bestimmen. Siehe 8.1.2
details-Attribut für weitere Details.
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.
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> |