Konzepte der Zahlungsabwicklung
Die Payment Request API erleichtert die Abwicklung von Zahlungen auf einer Website oder in einer App. In diesem Artikel betrachten wir, wie die API funktioniert und welche Aufgabe ihre einzelnen Komponenten haben.
Terminologie
Bevor wir auf die Details der Funktionsweise der API eingehen, sollten Sie einige Begriffe kennen.
- Zahlungsempfänger (oder Händler)
-
Der Händler – entweder eine Person oder eine Organisation –, dessen Website oder App über die Payment Request API Geld erhalten möchte.
- Zahler
-
Die Person oder Organisation, die mithilfe einer Website oder App einen Kauf tätigt. Der Zahler authentifiziert sich und autorisiert anschließend die Zahlung, sofern dies von der Zahlungsmethode verlangt wird.
- Zahlungsmethode
-
Das Mittel, mit dem eine Zahlung übermittelt wird, beispielsweise eine Kreditkarte oder ein Online-Zahlungsdienst.
- Anbieter von Zahlungsmethoden
-
Eine Organisation, die die Technologie bereitstellt, die zum Übermitteln von Zahlungen mithilfe einer bestimmten Zahlungsmethode erforderlich ist. Wenn beispielsweise mit einer Kreditkarte bezahlt wird, ist der Dienst zur Verarbeitung der Kreditkarte der Anbieter der Zahlungsmethode.
- Payment Handler
-
Die Implementierung des Codes, der erforderlich ist, um mit einem bestimmten Anbieter von Zahlungsmethoden zu interagieren und Zahlungen zu verarbeiten.
Einige Payment Handler verwenden eine Händlervalidierung, also den Prozess, die Identität eines Händlers auf irgendeine Weise zu überprüfen, üblicherweise mithilfe einer kryptografischen Antwort wie eines öffentlichen Schlüssels. Validierte Händler dürfen mit einem Payment Handler interagieren.
Kennungen von Zahlungsmethoden
Payment Handler werden durch Kennungen von Zahlungsmethoden identifiziert. Dabei handelt es sich um Zeichenketten, die den Payment Handler eindeutig identifizieren. Sie können entweder eine der standardisierten Kennungen für Payment Handler oder eine URL sein, die vom Zahlungsabwicklungsdienst verwendet wird, um sich selbst zu identifizieren und Zahlungen abzuwickeln.
Standardisierte Kennungen von Zahlungsmethoden
Standardisierte Kennungen von Zahlungsmethoden sind die in der Registrierung für Zahlungsmethoden aufgeführten Kennungen.
secure-payment-confirmation-
Identifiziert die Methode Secure Payment Confirmation. Die Zahlungsanfragedaten für diese Methode werden durch das Dictionary
SecurePaymentConfirmationRequestdefiniert. Weitere Informationen finden Sie unter Verwenden von Secure Payment Confirmation. basic-card-
Diese Kennung für Zahlungsmethoden sollte kartenbasierte Zahlungen im Web über die Payment Request API erleichtern. Die Web Payments Working Group hat diese Zahlungsmethode als veraltet eingestuft.
URL-basierte Kennungen von Zahlungsmethoden
Diese Kennungen werden in der Regel von Zahlungsdienstleistern während des Onboardings oder der Integration bereitgestellt und können je nach den Besonderheiten des Dienstes, der API-Version und der Kommunikationstechnologie erheblich variieren. Entwickler erhalten diese Kennungen normalerweise direkt aus der Dokumentation ihres gewählten Zahlungsdienstleisters, anstatt sie eigenständig zu ermitteln.
https://apple.com/apple-pay-
Zahlungen werden über den Dienst Apple Pay abgewickelt. Diese Zahlungsmethode wird hauptsächlich in Safari auf kompatiblen Apple-Geräten unterstützt.
https://google.com/pay-
Zahlungen werden über Google Pay verarbeitet. Die Unterstützung hängt von Browsern ab, die die Payment Handler API implementieren, derzeit hauptsächlich Chromium-basierte Browser.
Funktionen eines Payment Handlers
Ein User Agent kann integrierte Unterstützung für bestimmte Zahlungsarten bieten. Darüber hinaus kann die Payment Handler API verwendet werden, um in Browsern, die sie unterstützen, Unterstützung für zusätzliche Anbieter von Zahlungsmethoden einzurichten. In beiden Fällen ist der Payment Handler verantwortlich für Folgendes:
- Sicherstellen, dass eine Zahlung vorgenommen werden kann. Die Bedingungen, die eine Zahlung ermöglichen, unterscheiden sich je nach Zahlungsmethode und Zahlungsanfrage des Benutzers. Wenn der Benutzer beispielsweise mit einer Kreditkarte bezahlen möchte, die vom Zahlungsempfänger nicht akzeptiert wird, kann die Zahlung nicht vorgenommen werden.
- Falls der Payment Handler Händlervalidierung unterstützt, auf Anfragen zur Händlervalidierung des User Agents reagieren. Weitere Details finden Sie unter Händlervalidierung.
- Überprüfen, dass die vom Benutzer bereitgestellten Informationen zu einer gültigen Transaktion führen. Dies führt zur Erstellung und Rückgabe eines zahlungsmethodenspezifischen Objekts, das die zur Abwicklung der Transaktion benötigten Informationen enthält.
Händlervalidierung
Einige Payment Handler verwenden Händlervalidierung, also den Prozess, die Identität eines Händlers auf irgendeine Weise zu überprüfen, üblicherweise mithilfe einer kryptografischen Challenge. Wenn der Händler die Validierung nicht erfolgreich durchläuft, darf er den Payment Handler nicht verwenden.
Die genaue Validierungstechnologie hängt vom Payment Handler ab, und Händlervalidierung ist vollständig optional. Letztlich ist die Website oder App lediglich dafür verantwortlich, den Validierungsschlüssel des Händlers abzurufen und ihn an die Methode complete() des Events zu übergeben.
paymentRequest.onmerchantvalidation = (event) => {
event.complete(fetchValidationData(event.validationURL));
};
In diesem Beispiel ist fetchValidationData() eine Funktion, die die Payment-Handler-spezifischen Identifikationsinformationen von der durch validationURL angegebenen Adresse lädt. Beachten Sie, dass diese Funktion über den Händler-Server ausgeführt werden muss, da ein Client normalerweise nicht selbst auf die Validierungs-URL zugreift.
Indem diese Daten – oder ein Promise, das zu den geladenen Daten aufgelöst wird – durch Übergabe an complete() an den Payment Handler übermittelt werden, kann der Payment Handler die abgerufenen Daten sowie die unterstützten Algorithmen und sonstigen Daten verwenden, um zu überprüfen, ob der Händler den Payment Handler verwenden kann.
Daher ist es wichtig zu beachten, dass der User Agent niemals ein merchantvalidation-Event sendet, es sei denn, der User Agent implementiert selbst einen Payment Handler. Safari bietet beispielsweise integrierte Unterstützung für Apple Pay. Daher verwendet der Apple-Pay-Payment-Handler dies, um sicherzustellen, dass Apple Pay zur Bezahlung des Händlers verwendet werden kann: Er sendet merchantvalidation an den Client und weist ihn an, die Validierungsdaten des Servers abzurufen und sie durch Aufrufen von complete() an den Payment Handler zu übermitteln.
Spezifikationen
| Spezifikation |
|---|
| Payment Request API> |
| Payment Method Identifiers> |