Google übernimmt offiziell die Zahlungsanforderungs-API, mit der Sie mit Apps von Drittanbietern in Chrome bezahlen können

Endlich ist es soweit

Das Payment Request API soll auf der kommenden Google I / O-Entwicklerkonferenz angekündigt werden und wird die Art und Weise revolutionieren, wie wir Online-Zahlungen auf unseren Mobilgeräten ausführen. Google Chrome-Nutzer auf Android müssen keine langwierigen Checkout-Vorgänge mehr ausführen, bei denen sie ihre Kreditkarteninformationen eingeben oder sich bei PayPal anmelden müssen. Stattdessen ermöglicht die API Website-Entwicklern, Absichten an unterstützte Zahlungsanwendungen von Drittanbietern zu senden, um eine Zahlung vorzunehmen. Im Gegensatz zu vielen anderen Überraschungen, die Google für uns bereithält, gibt es bereits eine Menge öffentlicher Informationen darüber, wie genau diese neue Zahlungsweise funktionieren wird . Wir haben uns mit all diesen Dokumenten befasst, um Ihnen vor der offiziellen Ankündigung von Google in dieser Woche einige Informationen zukommen zu lassen.


Erleichtern Sie Zahlungen mit der Zahlungsanforderungs-API

Lassen Sie uns zunächst noch einmal zusammenfassen, wie Zahlungen derzeit in Webbrowsern verarbeitet werden. Wenn Sie die Checkout-Seite eines Online-Händlers aufrufen, werden Sie aufgefordert, Ihre Zahlungsinformationen einzugeben. Sie können entweder eine vom Händler unterstützte Kreditkarte hinzufügen oder einen integrierten Dienst wie PayPal verwenden, um Ihre Transaktion abzuschließen. Wenn Sie Ihre Kreditkartendaten nicht bereits auf der Website gespeichert haben (was viele nur ungern tun) oder bereits bei PayPal angemeldet sind, kann es ein Problem sein, aufzustehen, in Ihre Brieftasche zu gehen und Ihre Karte zu suchen. Geben Sie dann die Kartennummer, das Ablaufdatum und den Sicherheitscode ein. Jedes Mal, wenn Sie einen Einkauf auf einer neuen Website tätigen möchten, müssen Sie eine Variation dieses Vorgangs durchführen. Für diejenigen von uns, die gerne auf Schnäppchenjagd gehen, kann dies ziemlich schnell ärgerlich werden.

Verschiedene Online-Händler-Checkout-Seiten

Viele Kreditkarten- und Bankinstitute stellen Anwendungen im Google Play Store zur Verfügung. Da wir diese Anwendungen bereits zur Überwachung unserer Finanzkonten verwenden, warum können wir sie nicht zur Authentifizierung von Zahlungen verwenden? Das ist genau der Denkprozess hinter der Web Payments Working Group, die sich aus Mitgliedern wie Google, Mozilla, Samsung, Alibaba, Microsoft und anderen zusammensetzt. Diese Gruppe hat hinter den Kulissen gearbeitet, um eine neue API namens Payment Request API und einen neuen Online-Standard einzuführen, die im Vorschlag für das Zahlungsmanifest definiert sind, um die Kommunikation zwischen Webbrowsern und Online-Händlern zu erleichtern, damit der Online-Händler sie verwenden kann vorhandene Anwendungen auf dem Endbenutzer-Gerät, um Zahlungen abzuwickeln.

Wie es funktioniert

Um diese Aufgabe ausführen zu können, müssen Webbrowser die Zahlungsanforderungs-API unterstützen, Online-Händler müssen die API durch Implementierung einer sogenannten Zahlungsmethoden-ID unterstützen und Android-Anwendungen müssen neue Dienste implementieren. Ohne zu sehr ins Detail zu gehen, werde ich kurz erklären, was während des Checkout-Prozesses passiert.

Angenommen, Ihr Webbrowser unterstützt die Zahlungsanforderungs - API (dazu später mehr). Wenn Sie zur Zahlungsseite eines Online - Händlers navigieren, haben Sie die Möglichkeit, mit einem der von Ihnen unterstützten Zahlungsabwickler (Kreditkarte / PayPal / etc.) Zu zahlen Tippen Sie auf die Schaltfläche, um einen Kauf zu tätigen (z. B. auf der folgenden Beispielseite, die von Google zum Testen der Zahlungsanforderungs-API verwendet wird). Anschließend sendet die Zahlungsanforderungs-API eine Android-Absicht an die unterstützte Zahlungsanwendung, damit diese App den Benutzer authentifiziert Zahlung.

Nehmen wir an, unsere hypothetische Kreditkartenanwendung, die auf einem hypothetischen Android-Gerät installiert ist, heißt Bob Pay. Bob Pay fügt der AndroidManifest.xml-Datei Folgendes hinzu:

 

Wenn eine Absicht für diese hypothetische Kreditkartenanwendung gesendet wird, wird der Dienst dieser Anwendung gestartet. Alle Informationen, die unsere hypothetische Bob Pay-App benötigt, um zu verstehen, was gekauft wird, von welchem ​​Anbieter und wie viel Geld in den Extras der Absicht enthalten ist:

 Bundle extras = new Bundle(); extras.putString("key", "value"); intent.putExtras(extras); 

Sobald Bob Pay die Zahlung validiert hat, erhält die Zahlungsanforderungs-API diese Informationen in einer anderen von Bob Pay gesendeten Absicht:

 Intent result = new Intent(); Bundle extras = new Bundle(); extras.putString("key", "value"); result.putExtras(extras); setResult(RESULT_OK, result); // Change to RESULT_CANCELED on failure. finish(); // Close the payment activity. 

Aber woher weiß der Online-Händler, der Bob Pay unterstützt, dass es sich bei dem auf Ihrem Telefon installierten Bob Pay um den echten Bob Pay handelt und nicht um Malware, die Betrug begehen soll? Hierzu wird eine vom Browser maschinenlesbare JSON-Datei mit dem Manifest-Identifikator für Zahlungsmethoden erstellt.

 { " name " : " BobPay - World's Greatest Payment Method ", " description " : " This payment method changes lives ", " short_name " : " BobPay ", " icons " : [{ " src " : " icon/lowres.webp ", " sizes " : " 64x64 ", " type " : " image/webp " }, { " src " : " icon/lowres.png ", " sizes " : " 64x64 " }, { " src " : " icon/hd_hi ", " sizes " : " 128x128 " }], " serviceworker " : { " src " : " payment-sw.js ", " scope " : " /pay ", " use_cache " : false } " related_applications " : [ { " platform " : " play ", " url " : " //play.google.com/store/apps/details?id=com.bobpay ", " fingerprints " : [{ " type " : " sha256_cert ", " value " : " 59:5C:88:65:FF:C4:E8:20:CF:F7:3E:C8... " }], //new " min_version " : " 1 ", // new " id " : " com.example.app1 " }, { " platform " : " itunes ", " url " : " //itunes.apple.com/app/example-app1/id123456789 ", } ] } 

In dieser JSON-Datei befindet sich eine Signatur, mit der die Integrität der auf Ihrem Gerät installierten Anwendung überprüft wird, die behauptet, die echte Bob Pay zu sein. Wenn diese Signaturprüfung fehlschlägt, wird Bob Pay nicht als Zahlungsabwickler akzeptiert.

Natürlich vereinfache ich den allgemeinen Prozess, der hier involviert ist, enorm, enorm. Zahlungen sind ein unglaublich komplexes System, bei dem mehrere Sicherheitsüberprüfungen erforderlich sind, um sicherzustellen, dass nur gültige Zahlungen getätigt werden. In den drei zuvor verlinkten Dokumenten wird erläutert, wie der Browser die API für Zahlungsanforderungen vollständig implementiert, wie eine Website die JSON-Manifestdatei implementiert und wie eine Android-App die von der API für Zahlungsanforderungen gesendeten Absichten verarbeiten kann. Hier ist ein Flussdiagramm, das den allgemeinen Prozess umreißt, den ich oben zusammengefasst habe:

Zahlungsflussdiagramm. Quelle: Rouslan Solomakhin

Wie Sie sehen, sind hier viele Schritte erforderlich. All diese Änderungen werden von Entwicklern von Online-Händler-Websites, Android-Banking- / Kreditkarten-Apps und Entwicklern von Webbrowsern vorgenommen, sodass ein Endbenutzer wahrscheinlich keine Ahnung hat, was hier wirklich vor sich geht. Aber wissen Sie, dass das Endergebnis ist, dass Ihre Online-Zahlungen viel einfacher werden, wenn alle Beteiligten diese Änderungen implementieren, was dank der Standardisierungsbemühungen der Web Payments Working Group hoffentlich Realität wird.


Die Historie hinter der Zahlungsanforderungs-API

Das World Wide Web Consortium (kurz W3C) wurde 1994 gegründet, um Plattformstandards zu entwickeln, mit denen alle Websites und deren Benutzer von Interkompatibilität und Konsistenz profitieren können. Um der zunehmenden Fragmentierung des Zahlungsverkehrs im Internet entgegenzuwirken, hat das W3C im Jahr 2015 die Web Payments Working Group gegründet, um einige Aspekte des Online-Zahlungsverkehrs zu standardisieren. Danach begannen die Arbeiten aller Mitglieder der Web Payments-Arbeitsgruppe, um Möglichkeiten zur Verbesserung der Funktionsweise bestehender Online-Zahlungssysteme zu finden.

Die Gruppe entwickelte die Payment Request API, eine Sammlung von Methoden, mit denen Websites Zahlungsmethoden verwenden können, ohne die Zahlungsmethode in ihre Website zu integrieren. Webbrowser müssen aktualisiert werden, um die API zu unterstützen, der schwierigere Teil besteht jedoch darin , Online-Händler an Bord zu bringen . Zu diesem Zweck legten die Mitglieder der Arbeitsgruppe einen Vorschlag vor, wie Websites Kennungen erstellen können, um zu definieren, welche Zahlungsmethoden sie unterstützen. Hierbei wird eine maschinenlesbare JSON-Datei für das Zahlungsmanifest erstellt (die Zahlungsmethoden-ID). Diese muss vom Browser gelesen werden, damit die Zahlungsanforderungs-API erkennen kann, ob der Benutzer über eine oder mehrere der Anwendungen verfügt, die den unterstützten Zahlungsmethoden entsprechen in der JSON-Datei identifiziert. Diese Implementierung basiert auf dem Digital Asset Links-Protokoll von Google, mit dem Websites Sie von ihrer mobilen Website zu ihrer Anwendung weiterleiten, sofern diese bereits installiert ist.

Nach langem internen Hin und Her der Gruppe legten Zach Koch von Google und Dapeng Liu von Alibaba am 25. November 2016 einen ersten Entwurf des Manifests für Zahlungsmethoden vor, um den Standardisierungsprozess für Zahlungsmethoden-IDs zu starten, den alle Mitglieder durchführen konnten zustimmen. Schließlich trafen sich die Mitglieder der Arbeitsgruppe zwischen dem 23. und 24. März in Chicago persönlich, um die API für Zahlungsanforderungen, den Vorschlag für das Zahlungsmanifest und vieles mehr zu analysieren. Die Arbeitsgruppe stimmte dafür, eine neue Version des Vorschlags für das Zahlungsmanifest (Version 2) zu verabschieden, die heute vorliegt.


Unterstützung für die Zahlungsanforderungs-API

Ab dem 10. Mai ist die Unterstützung für Android-Zahlungsanwendungen von Drittanbietern in Chromium standardmäßig aktiviert, da die Webzahlungsmanifestvoraussetzung in der blink-dev-Verzweigung genehmigt wurde (Blink ist der Name der von Chrome verwendeten Rendering-Engine). Beachten Sie, dass diese Funktion bereits seit Monaten in Chrome getestet wird. Es scheint jedoch erst vor kurzem, dass die Gruppe bereit ist, damit fortzufahren. Diese Funktion wird auf allen Plattformen / Versionen von Chromium ausgeliefert, mit Ausnahme von Android Webview (das keine Benutzeroberfläche hat und daher die Zahlungsanforderungs-API nicht implementieren kann).

Erst nach Monaten der Arbeit hinter den Kulissen werden wir sehen, an welchen Vorteilen die Web Payments Working Group gearbeitet hat. Bei Google I / O wird das Unternehmen wahrscheinlich bekannt geben, dass Google Chrome mit aktivierter Zahlungsanforderungs-API ausgeliefert wird, und Zach Koch wird am Donnerstag einen Vortrag darüber halten, wie Drittanbieter die API durch die Erstellung des Zahlungsmanifests unterstützen können JSON-Dateien.

Andere Browser arbeiten ebenfalls daran, die Zahlungsanforderungs-API zu unterstützen. Mozilla und Samsung haben sich öffentlich für das Hinzufügen der API ausgesprochen, obwohl laut Googler Rouslan Solomakhin noch nicht bekannt ist, ob der Edge-Browser von Microsoft oder Safari von Apple Unterstützung bieten werden. Wir sollten beachten, dass Microsoft die Zahlungsanforderungs-API für UWP-Apps (Universal Windows Platform) bereits testet und mindestens eine Bank in ihrer App bereits Unterstützung (Monzo) implementiert hat.

Wie für andere Online-Händler und Android-Anwendungen, die diese neue Zahlungsspezifikation unterstützen, laut Googler Zach Koch:

Die Anzahl der Anbieter von Zahlungsmethoden, die diese Spezifikation implementieren müssten, ist recht gering (Hunderte), und derzeit arbeiten wir nur direkt mit einer sehr kleinen Teilmenge dieser Anbieter (<5), um die Gewässer zu testen. Wenn wir in eine Situation geraten wären, in der wir eines der Felder ändern müssten, könnten wir dies meines Erachtens leicht und ohne große (wenn überhaupt) Interop-Risiken tun. Allen unseren frühen Partnern ist bewusst, dass sich diese Spezifikation ändern kann und damit einverstanden ist.

Die Einführung ist entscheidend, damit andere Spieler am PR-Ökosystem teilnehmen können, zumindest unter Android. Ich würde es wirklich vorziehen, nicht den vollen proprietären Weg zu gehen, um native Android-Apps zu aktivieren. Wir haben den Footprint dafür absichtlich klein gehalten, um Raum für Wachstum und fortgeschrittenere Anwendungsfälle zu lassen.

So können wir sehen, dass Google zwar eine Vorreiterrolle bei der Unterstützung der Zahlungsanforderungs-API einnimmt, es jedoch einige Zeit dauern wird, bis sich diese neue Zahlungsmethode in allen Browsern, allen Online-Händlern und allen Anwendungen durchsetzt. Ich persönlich freue mich sehr, dass die Zahlungsanforderungs-API von Google unterstützt wird. Das eCommerce-Ökosystem ist seit Jahren unnötig fragmentiert mit Zahlungsmethoden, und wenn diese neue API bedeutet, dass ich meine Kreditkarteninformationen nie wieder manuell auf einer Website eingeben muss, dann bin ich alles dafür.


Was halten Sie von diesem kommenden Standard? Schalte die Kommentare aus und teile uns deine Meinung mit!