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
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.
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 |