Google übernimmt offiziell die Zahlungsanforderungs-API und ermöglicht Ihnen das Bezahlen mit Drittanbieter-Apps in Chrome

Während der Google I/O wird bekannt gegeben, dass Google die Payment Request API offiziell in Chrome übernimmt, sodass Sie mit Apps von Drittanbietern bezahlen können.

Wird noch bekannt gegeben Auf der bevorstehenden Google I/O-Entwicklerkonferenz wird die Payment Request API die Art und Weise revolutionieren, wie wir Online-Zahlungen auf unseren Mobilgeräten durchführen. Benutzer von Google Chrome auf Android müssen nicht länger langwierige Checkout-Prozesse durchlaufen, 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 durchzuführen. Im Gegensatz zu vielen anderen weitere Überraschungen das Google für uns bereithält, Es gibt bereits zahlreiche öffentliche Informationen darüber, wie genau diese neue Zahlungsart funktionieren wird. Wir haben uns alle diese Dokumente angesehen, um Ihnen vor der offiziellen Ankündigung von Google diese Woche einige Informationen zu liefern.


Erleichtern Sie Zahlungen mit der Zahlungsanforderungs-API

Lassen Sie uns zunächst noch einmal zusammenfassen, wie Zahlungen derzeit in Webbrowsern abgewickelt 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 nutzen, um Ihre Transaktion abzuschließen. Es sei denn, Sie haben Ihre Kreditkarteninformationen bereits auf der Website gespeichert (was viele Leute nur ungern tun) oder sind bereits angemeldet Bei PayPal kann es mühsam sein, aufzustehen, in Ihr Portemonnaie zu gehen, Ihre Karte zu finden und dann die Kartennummer, das Ablaufdatum und die Sicherheit einzugeben Code. Jedes Mal, wenn Sie auf einer neuen Website einen Kauf tätigen möchten, müssen Sie eine Variation dieses Prozesses durchlaufen. Für diejenigen von uns, die Ich bin gerne auf der Suche nach Angeboten, das kann ziemlich schnell nervig werden.

Verschiedene Checkout-Seiten für Online-Händler

Viele Kreditkarten- und Bankinstitute bieten Anwendungen im Google Play Store an. Da wir diese Anwendungen bereits zur Überwachung unserer Finanzkonten verwenden, warum können wir sie nicht zur Authentifizierung von Zahlungen verwenden? Genau das ist 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 dies zu erreichen Führen Sie eine neue API namens Payment Request API ein und ein neuer Online-Standard, der im Payment Manifest Proposal definiert ist, um die Kommunikation zwischen Webbrowsern zu erleichtern und Online-Händler, sodass der Online-Händler vorhandene Anwendungen auf dem Gerät eines Endbenutzers nutzen kann, um Zahlungen abzuwickeln.

Wie es funktioniert

Um diese Aufgabe zu erfüllen, benötigen Webbrowser muss die Payment Request API unterstützen, müssen Online-Händler die API unterstützen, indem sie eine sogenannte a implementieren Kennung der Zahlungsmethode, und Android-Anwendungen müssen neue Dienste implementieren. Ohne zu sehr ins Detail zu gehen, erkläre ich kurz, was beim Bezahlvorgang passiert.

Vorausgesetzt, Ihr Webbrowser unterstützt die Payment Request API (mehr dazu später), haben Sie die Möglichkeit zu bezahlen, wenn Sie zur Zahlungsseite eines Online-Händlers navigieren mit einem ihrer unterstützten Zahlungsabwickler (Kreditkarte/PayPal usw.), wenn Sie auf die Schaltfläche tippen, um einen Kauf zu tätigen (z. B. auf der Beispielseite unten, die von Google-Mitarbeitern verwendet wird). Testen Sie die Zahlungsanforderungs-API), dann sendet die Zahlungsanforderungs-API einen Android-Intent an die unterstützte Zahlungsanwendung, damit diese App den Benutzer authentifizieren kann Zahlung.

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

"font-weight: 400;"><manifestspan><spanstyle="font-weight: 400;">package=span><spanstyle="font-weight: 400;">"com.bobpay.app"span><spanstyle="font-weight: 400;">>span>
"font-weight: 400;"> </span>span> <spanstyle="font-weight: 400;">android: name=span><spanstyle="font-weight: 400;">".IsReadyToPayService"span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">android: enabled=span><spanstyle="font-weight: 400;">"true"span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">android: exported=span><spanstyle="font-weight: 400;">"true"span><spanstyle="font-weight: 400;">>span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;"><intent-filter>span>
"font-weight: 400;"> </span>span> <spanstyle="font-weight: 400;">android: name=span><spanstyle="font-weight: 400;">"org.chromium.intent.action.IS_READY_TO_PAY"span><spanstyle="font-weight: 400;">/></span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">intent-filter>span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">service>span>
"font-weight: 400;"> </span>span> <spanstyle="font-weight: 400;">android: name=span><spanstyle="font-weight: 400;">".PaymentActivity"span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">android: exported=span><spanstyle="font-weight: 400;">"true"span><spanstyle="font-weight: 400;">>span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;"><intent-filter>span>
"font-weight: 400;"> </span>span> <spanstyle="font-weight: 400;">android: name=span><spanstyle="font-weight: 400;">"org.chromium.intent.action.PAY"span><spanstyle="font-weight: 400;">/></span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">intent-filter>span>
"font-weight: 400;"> </span>span> <spanstyle="font-weight: 400;">android: name=span><spanstyle="font-weight: 400;">"org.chromium.default_payment_method_name"span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">android: value=span><spanstyle="font-weight: 400;">"https://bobpay.com/put/optional/path/here"span><spanstyle="font-weight: 400;">/>span>
<spanstyle="font-weight: 400;">span><spanstyle="font-weight: 400;">activity>span>
<spanstyle="font-weight: 400;">manifest>span>

Wenn eine Absicht gesendet wird, die auf diese hypothetische Kreditkartenanwendung abzielt, 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 für wie viel Geld, sind in den Extras der Absicht enthalten:

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

Sobald Bob Pay die Zahlung validiert hat, empfängt die Payment Request API diese Informationen in einem anderen von Bob Pay gesendeten Intent:

Intent result = new Intent();
Bundle extras = new Bundle();
extras.putString("key", "value");
result.putExtras(extras);
setResult(RESULT_OK, result); // Changeto 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 auf Betrug abzielt? Dies wird erreicht, indem eine JSON-Datei mit der Zahlungsmethoden-Manifest-ID erstellt wird, die vom Browser maschinenlesbar ist.

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

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

Natürlich vereinfache ich den allgemeinen Prozess, der hier involviert ist, sehr, sehr, sehr stark. Zahlungen sind ein unglaublich komplexes System, das mehrere Ebenen von Sicherheitsüberprüfungen erfordert, um sicherzustellen, dass nur gültige Zahlungen erfolgen. Die drei Dokumente, auf die ich zuvor verlinkt habe, beschreiben, wie der Browser die Zahlungsanforderungs-API vollständig implementiert, wie a Die Website implementiert die JSON-Manifestdatei und wie eine Android-App mit der von der Zahlungsanforderung gesendeten Absicht umgehen kann API. Hier ist ein Flussdiagramm, das den allgemeinen Prozess beschreibt, den ich oben zusammengefasst habe:

Zahlungsflussdiagramm. Quelle: Rouslan Solomakhin

Wie Sie sehen, sind hier viele Schritte erforderlich. Alle diese Änderungen werden von Entwicklern von Online-Händler-Websites und Android-Banking/Kredit durchgeführt Karten-Apps und Entwickler von Webbrowsern, sodass ein Endbenutzer wahrscheinlich keine Ahnung hat, was wirklich vor sich geht Hier. Aber seien Sie sich darüber im Klaren, dass Ihre Online-Zahlungen am Ende viel einfacher werden, wenn alle Beteiligten dabei sind Wir werden diese Änderungen umsetzen, was dank der Standardisierungsbemühungen der Web Payments Working Group hoffentlich gelingt Wirklichkeit.


Die Geschichte hinter der Zahlungsanforderungs-API

Das World Wide Web Consortium (abgekürzt W3C) wurde 1994 zur Entwicklung einer Plattform gegründet Standards, die es allen Websites und ihren Benutzern ermöglichen würden, von der Interkompatibilität zu profitieren und Konsistenz. Um der zunehmenden Fragmentierung von Online-Zahlungen entgegenzuwirken, hat das W3C das gegründet Arbeitsgruppe Webzahlungen im Jahr 2015 um einige Aspekte des Online-Zahlungsflusses zu standardisieren. Anschließend begann die Arbeit aller Mitglieder der Web Payments Working Group, um Wege zu finden, die Funktionsweise bestehender Online-Zahlungssysteme zu verbessern.

Die Gruppe hat sich das ausgedacht Zahlungsanforderungs-API, eine Sammlung von Methoden, die es Websites ermöglichen, Zahlungsmethoden zu verwenden, ohne die Zahlungsmethode in ihre Website zu integrieren. Webbrowser müssen aktualisiert werden, um die API zu unterstützen, aber der schwierigere Teil ergibt sich aus Online-Händler ins Boot holen. Zu diesem Zweck Mitglieder der Arbeitsgruppe einen Vorschlag gemacht darüber, wie Websites Identifikatoren erstellen können, um zu definieren, welche Zahlungsmethoden sie unterstützen. Dazu gehört die Erstellung einer Zahlungsmanifest-JSON-Datei, die maschinenlesbar ist (der Payment Method Identifier) ​​– sie muss vom Browser gelesen werden, damit die Die Payment Request API kann erkennen, ob der Benutzer über eine oder mehrere der Anwendungen verfügt, die den im JSON identifizierten unterstützten Zahlungsmethoden entsprechen Datei. Diese Implementierung ist von Google inspiriert Digital Asset Links-Protokoll Auf diese Weise leiten Websites Sie von ihrer mobilen Website zu ihrer Anwendung weiter, wenn Sie diese bereits installiert haben.

Nach langem internen Hin und Her innerhalb der Gruppe reichten schließlich am 25. November 2016 Zach Koch von Google und Dapeng Liu von Alibaba einen Antrag ein Erster Entwurf des Zahlungsmethodenmanifests um den Standardisierungsprozess für Zahlungsmethoden-Identifikatoren zu starten, dem alle Mitglieder zustimmen könnten. Schließlich Mitglieder der Arbeitsgruppe trafen sich vom 23. bis 24. März persönlich in Chicago um die Zahlungsanforderungs-API, den Zahlungsmanifestvorschlag und mehr zu hashen. Die Arbeitsgruppe stimmte für die formelle Annahme eine neue Version des Zahlungsmanifestvorschlags (Version 2), wo wir heute stehen.


Unterstützung für die Zahlungsanforderungs-API

Am 10. Mai ist die Unterstützung für Android-Zahlungs-Apps von Drittanbietern verfügbar standardmäßig aktiviert in Chromium, da die Voraussetzung für das Web-Zahlungsmanifest im Zweig blink-dev genehmigt wurde (Blink ist der Name der von Chrome verwendeten Rendering-Engine). Beachten Sie, dass diese Funktion seit Monaten in Chrome getestet wird, es aber erst vor Kurzem den Anschein erweckt, dass die Gruppe bereit ist, damit fortzufahren. Diese Funktion wird weiter ausgeliefert alle Plattformen/Versionen von Chromium außer 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 nun die Vorteile dessen erkennen, woran die Web Payments Working Group gearbeitet hat. Auf der Google I/O wird das Unternehmen wahrscheinlich bekannt geben, dass Google Chrome mit aktivierter Payment Request API ausgeliefert wird, wie Zach Koch erwähnte Früher wird am Donnerstag seinen Vortrag darüber halten, wie Drittanbieter von Zahlungen die API durch die Erstellung von Payment Manifest JSON unterstützen können Dateien.

Andere Browser arbeiten ebenfalls daran, Unterstützung für die Payment Request API hinzuzufügen. Mozilla und Samsung haben jedoch öffentlich ihre Unterstützung für das Hinzufügen der API zum Ausdruck gebracht laut Googler Rouslan Solomakhin Es gibt noch kein Wort darüber, ob Microsofts Edge-Browser oder Apples Safari Unterstützung bieten werden. Wir sollten beachten, dass Microsoft es ist testet bereits die Zahlungsanforderungs-API für UWP-Apps (Universal Windows Platform). und bei Mindestens eine Bank hat die Unterstützung bereits implementiert (Monzo) in ihrer App.

Was andere Online-Händler und Android-Anwendungen betrifft, die diese neue Zahlungsspezifikation unterstützen werden, so Googler Zach Koch:

Die Anzahl der „Zahlungsmethodenanbieter“, die diese Spezifikation implementieren müssten, ist recht gering (Hunderte), und im Moment arbeiten wir nur direkt mit einer sehr kleinen Teilmenge davon (<5) zum Testen die Gewässer. Wenn wir tatsächlich in eine Situation geraten würden, in der wir eines der Felder ändern müssten, könnten wir dies meiner Meinung nach problemlos und ohne großes (wenn überhaupt) Interop-Risiko tun. Allen unseren frühen Partnern ist bewusst, dass sich diese Spezifikation ändern kann, und sie sind damit einverstanden.

Die Einführung ist entscheidend, um anderen Spielern die Teilnahme am PR-Ökosystem zu ermöglichen, zumindest auf Android. Ich würde es wirklich vorziehen, nicht den kompletten proprietären Weg zu gehen, um native Android-Apps zu aktivieren. Wir haben den Platzbedarf bewusst klein gehalten, um Raum für Wachstum und fortgeschrittenere Anwendungsfälle zu schaffen.

Wir können also sehen, dass Google zwar Pionierarbeit bei der Unterstützung der Payment Request API leistet, Es wird einige Zeit dauern, bis wir wirklich sehen, dass diese neue Zahlungsmethode in allen Browsern Einzug hält, alle Online-Händler und alle Anwendungen. Ich persönlich freue mich sehr, dass die Payment Request API von Google unterstützt wird. Das E-Commerce-Ökosystem ist seit Jahren unnötig durch Zahlungsmethoden fragmentiert, und wenn diese neue API dies auch tun wird bedeutet, dass ich nie wieder meine Kreditkarteninformationen manuell auf einer Website eingeben muss, dann bin ich voll dafür Es.


Was halten Sie von diesem kommenden Standard? Hören Sie in den Kommentaren zu und teilen Sie uns Ihre Meinung mit!