ServiceWorkerGlobalScope: paymentrequest Ereignis
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.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist nur in Service Workers verfügbar.
Das paymentrequest-Ereignis des ServiceWorkerGlobalScope Interfaces wird in einer Zahlungs-App ausgelöst, wenn ein Zahlungsfluss auf der Händler-Website über die Methode PaymentRequest.show() initiiert wurde.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignishandler-Eigenschaft.
addEventListener("paymentrequest", (event) => { })
onpaymentrequest = (event) => { }
Ereignistyp
Ein PaymentRequestEvent. Erbt von ExtendableEvent.
Beispiele
Wenn die Methode PaymentRequest.show() aufgerufen wird, wird ein paymentrequest-Ereignis auf dem Service-Worker der Zahlungs-App ausgelöst. Dieses Ereignis wird innerhalb des Service-Workers der Zahlungs-App abgehört, um den nächsten Schritt des Zahlungsprozesses zu beginnen.
let paymentRequestEvent;
let resolver;
let client;
// `self` is the global object in service worker
self.addEventListener("paymentrequest", async (e) => {
if (paymentRequestEvent) {
// If there's an ongoing payment transaction, reject it.
resolver.reject();
}
// Preserve the event for future use
paymentRequestEvent = e;
// …
});
Wenn ein paymentrequest-Ereignis empfangen wird, kann die Zahlungs-App ein Zahlungsfenster durch Aufrufen von PaymentRequestEvent.openWindow() öffnen. Das Zahlungsfenster präsentiert den Kunden eine Benutzeroberfläche der Zahlungs-App, in der sie sich authentifizieren, eine Versandadresse und Optionen auswählen und die Zahlung autorisieren können.
Nachdem die Zahlung abgewickelt wurde, wird PaymentRequestEvent.respondWith() verwendet, um das Zahlungsergebnis an die Händler-Website zurückzugeben.
Siehe Empfangen eines Zahlungsanforderungsereignisses vom Händler für weitere Details zu diesem Schritt.
Spezifikationen
| Spezifikation |
|---|
| Web-based Payment Handler API> # the-paymentrequestevent> |