Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
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 in Web Workers verfügbar.
Die Web-basierte Payment Handler API bietet eine standardisierte Funktionalität für Webanwendungen zur direkten Abwicklung von Zahlungen, anstatt zu einer separaten Website zur Zahlungsabwicklung umgeleitet werden zu müssen.
Wenn eine Händler-Website die Zahlung über die Payment Request API initiiert, übernimmt die Web-basierte Payment Handler API die Entdeckung der anwendbaren Zahlungsanwendungen, präsentiert sie als Auswahlmöglichkeiten für den Benutzer, öffnet ein Payment-Handler-Fenster, sobald eine Wahl getroffen wurde, um dem Benutzer die Eingabe seiner Zahlungsdaten zu ermöglichen, und wickelt die Zahlungstransaktion mit der Zahlungsanwendung ab.
Die Kommunikation mit Zahlungsanwendungen (Autorisierung, Übermittlung von Zahlungsdaten) erfolgt über Service Worker.
Auf einer Händler-Website wird eine Zahlungsanfrage durch die Erstellung eines neuen PaymentRequest-Objekts initiiert:
Die supportedMethods-Eigenschaft gibt eine URL an, die die vom Händler unterstützte Zahlungsmethode repräsentiert. Um mehr als eine Zahlungsmethode zu verwenden, würden Sie sie in einem Array von Objekten angeben, wie folgt:
In unterstützenden Browsern beginnt der Prozess mit der Anforderung einer Zahlungsanwendungsmethodendatei von jeder URL. Ein Zahlungsanwendungsmethodenmanifest wird typischerweise als payment-manifest.json bezeichnet (der genaue Name kann beliebig sein) und sollte wie folgt strukturiert sein:
Bei einer Zahlungsanwendungskennung wie https://bobbucks.dev/pay lädt der Browser:
Diese Elemente haben die folgenden Zwecke:
Aus dem Zahlungsanwendungsmethodenmanifest erhält der Browser die URL der Web-App-Manifestdateien der Standard-Zahlungsanwendungen, die beliebig benannt sein können und etwa so aussehen:
Wenn die PaymentRequest.show()-Methode von der Händleranwendung als Antwort auf eine Benutzeraktion aufgerufen wird, verwendet der Browser die name- und icons-Informationen, die in jedem Manifest gefunden wurden, um die Zahlungsanwendungen in der browserbasierten Payment Request-Benutzeroberfläche dem Benutzer zu präsentieren.
Hinweis: Wenn prefer_related_applications auf true im Zahlungsanwendungsmanifest gesetzt ist, wird der Browser die plattformspezifische Zahlungsanwendung, die in related_applications angegeben ist, zur Abwicklung der Zahlung starten (wenn verfügbar), anstatt der Web-Zahlungsanwendung.
Siehe Dienen eines Web-App-Manifests für weitere Details.
Die PaymentRequest.canMakePayment()-Methode der Payment Request API gibt true zurück, wenn eine Zahlungsanwendung auf dem Gerät des Kunden verfügbar ist, d.h. dass eine die Zahlungsmethode unterstützende Zahlungsanwendung entdeckt wurde und die plattformspezifische Zahlungsanwendung installiert ist oder die webbasierte Zahlungsanwendung bereit ist, registriert zu werden.
Die Web-basierte Payment Handler API fügt einen zusätzlichen Mechanismus hinzu zur Vorbereitung der Zahlungsabwicklung. Das canmakepayment-Ereignis wird im Service Worker einer Zahlungsanwendung ausgelöst, um zu überprüfen, ob sie bereit ist, eine Bezahlung zu bearbeiten. Es wird speziell ausgelöst, wenn die Händlerwebsite den PaymentRequest()-Konstruktor aufruft. Der Service Worker kann dann die Methode CanMakePaymentEvent.respondWith() verwenden, um entsprechend zu antworten:
Das von respondWith() zurückgegebene Promise löst sich mit einem booleschen Wert auf, um anzuzeigen, dass es bereit ist, eine Zahlungsanfrage zu bearbeiten (true) oder nicht (false).
Nachdem die PaymentRequest.show()-Methode aufgerufen wurde, wird ein paymentrequest-Ereignis im Service Worker der Zahlungsanwendung ausgelöst. Auf dieses Ereignis wird innerhalb des Service Workers der Zahlungsanwendung gehört, um den nächsten Schritt im Zahlungsprozess zu starten.
Wenn ein paymentrequest-Ereignis empfangen wird, kann die Zahlungsanwendung ein Payment-Handler-Fenster öffnen, indem sie PaymentRequestEvent.openWindow() aufruft. Das Payment-Handler-Fenster wird den Kunden eine Schnittstelle der Zahlungsanwendung anbieten, in der sie die Zahlung authentifizieren, eine Versandadresse und Optionen wählen und die Zahlung autorisieren können.
Wenn die Zahlung abgewickelt wurde, wird PaymentRequestEvent.respondWith() verwendet, um das Zahlungsergebnis an die Händlerwebsite zurückzugeben.
Siehe Erhalte ein Zahlungsanfrage-Ereignis vom Händler für weitere Details zu diesem Schritt.
Sobald ein Service Worker einer Zahlungsanwendung registriert ist, können Sie die PaymentManager-Instanz des Service Workers (zugänglich über ServiceWorkerRegistration.paymentManager) verwenden, um verschiedene Aspekte der Funktionalität der Zahlungsanwendung zu verwalten.
Zum Beispiel:
Das Ereignisobjekt für das canmakepayment-Ereignis, das im Service Worker einer Zahlungsanwendung ausgelöst wird, wenn sie erfolgreich registriert wurde, um anzuzeigen, dass sie zahlungsbereit ist.
PaymentManagerWird verwendet, um verschiedene Aspekte der Funktionalität von Zahlungsanwendungen zu verwalten. Zugriff über die ServiceWorkerRegistration.paymentManager-Eigenschaft.
PaymentRequestEventDas Ereignisobjekt für das paymentrequest-Ereignis, das im Service Worker einer Zahlungsanwendung ausgelöst wird, wenn ein Zahlungsablauf auf der Händler-Website über die PaymentRequest.show()-Methode initiiert wurde.
Wird im ServiceWorkerGlobalScope einer Zahlungsanwendung ausgelöst, wenn sie erfolgreich registriert wurde, um anzuzeigen, dass sie zahlungsbereit ist.
paymentrequest EreignisWird im ServiceWorkerGlobalScope einer Zahlungsanwendung ausgelöst, wenn ein Zahlungsablauf auf der Händler-Website über die PaymentRequest.show()-Methode initiiert wurde.
ServiceWorkerRegistration.paymentManagerGibt eine PaymentManager-Instanz einer Zahlungsanwendung zurück, die verwendet wird, um verschiedene Zahlungsanwendungsfunktionen zu verwalten.
| Web-based Payment Handler API # the-paymentrequestevent |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.