Hallo! Vor kurzem haben wir bei Yandex.Cash zusammen mit den Zahlungssystemen Visa und Mastercard eine neue Technologie zur Zahlungstokenisierung für den E-Commerce oder mit anderen Worten für den Online-Handel eingeführt. Jemand könnte denken: Was ist falsch an der Tokenisierung von Karten, die bereits mit der Veröffentlichung von Apple Pay, Google Pay und anderen * Pay herausgefunden wurden? Aber nein, hier gibt es etwas Neues, und wir waren auch die ersten, die diese Technologie in diesem Frühjahr in Russland für Partnergeschäfte eingeführt haben. Warum also nicht teilen?
In den USA und in Europa ist diese Technologie etwas früher aufgetaucht, und Benutzer von Diensten wie Netflix und Amazon zahlen bereits E-Commerce-Token, obwohl sie möglicherweise nicht einmal davon wissen. Und jetzt erzähle ich Ihnen, wie es nicht nur außerhalb (für Partner und Karteninhaber), sondern auch von innen angeordnet ist, aus Sicht des Entwicklers und Teamleiters dieses Projekts. Wenn Sie interessiert sind - walisisch unter der Katze.
Apple Pay Google Pay
, , Apple Pay Google Pay ( — *Pay), .
, *Pay , . , , . , , , . — — , .
:
- , ,
- .
? E-commerce, , - -.
, E-commerce
, — , .
— (PAN — Primary Account Number) .Wenn der Karteninhaber der Initiator für die Verbindung der Karte mit * Pay ist, initiiert der Online-Shop die Tokenisierung für den E-Commerce. Aber warum (und warum)?
Sicherlich nutzen viele von Ihnen Abonnementdienste: seien es monatliche Zahlungen für Musik, Filme oder zum Beispiel Dienstprogramme. Wie wird dieses Abonnement ausgestellt? Sie gehen auf die Website des Online-Shops, geben Ihre Kartendaten ein und aktivieren das Kontrollkästchen, mit dem Sie bestätigen, dass der Shop Ihre Kartendaten (PAN und Ablaufdatum) speichert und die Zahlung für einen bestimmten Service unabhängig initiieren kann.
Sie müssen verstehen, dass eine solche Aktion impliziert, dass der Speicher die Kartendaten irgendwo speichern muss. Es gibt normalerweise zwei Möglichkeiten:
- , PCI DSS, -,
- , ., PCI DSS .
Ist es auch hier möglich, den Tokenisierungsansatz anzuwenden? Warum nicht eine Art Token verwenden, anstatt Bankkartendaten zu speichern, die getrennt von der Karte verwaltet werden können? Was aber, wenn Sie sicherstellen, dass der Token bei der nächsten Neuausstellung der Karte gleich bleibt und Sie die Karte nicht erneut mit verschiedenen Diensten verknüpfen müssen? Klingt neugierig?
Reden wir über alles in Ordnung. Während der Tokenisierung tauschen wir Bankkartendaten gegen ein Token aus, aber was ist das? Der Token wird vom Kartenzahlungssystem bereitgestellt - Mastercard oder Visa. Es handelt sich um eine eindeutige Kennung, die der Apple Pay-Kontonummer des Geräts oder der virtuellen Google Pay-Kontonummer ähnelt, die in der Smartphone-App (Wallet auf Apple-Geräten und Google Pay auf Android) enthalten ist.
Im Gegensatz zu * Pay wird bei der E-Commerce-Tokenisierung die Erstellung eines Tokens von einem Online-Shop oder seiner Zahlungslösung initiiert, und die Token selbst werden auf den Servern von Zahlungssystemen gespeichert.
Natürlich kann niemand zum Zahlungssystem kommen und einen Token von einer Karte erhalten, um für Einkäufe zu bezahlen. Erstens können Karten nur mit Zahlungslösungen versehen werden, die von Zahlungssystemen zertifiziert und genehmigt wurden. Eine solche Zahlungslösung wird als On-Behalf-Token-Requestor oder Token-Service-Provider bezeichnet. Der Einfachheit halber werden wir jedoch künftig den Begriff Token-Requestor verwenden.. Und nur der Token Requestor kann Token-Zahlungen initiieren. Zweitens wird immer ein Token für ein bestimmtes Geschäft ausgestellt, und mit Hilfe eines Tokens können Sie nur in diesem Geschäft bezahlen. Es ist sehr ähnlich, wie das * Pay-Token dem Gerät zugeordnet ist, auf dem es erstellt wurde.
Wie wird das erreicht? Kurz vor jeder Token-Zahlung muss der Token-Anforderer die Genehmigung des Zahlungssystems für diese Zahlung einholen. Die Tatsache einer solchen Genehmigung muss während der tatsächlichen Zahlung vorgelegt werden, daher erfolgt diese Genehmigung in Form eines einmaligen Kryptogramms, das das Zahlungssystem der Karte bildet. Bei einer Zahlung wird dieses Kryptogramm zu den Anforderungsparametern in der übernehmenden Bank hinzugefügt und dann an das Zahlungssystem übertragen, das die Echtheit dieses zuvor selbst ausgegebenen Kryptogramms überprüft.
Was ist mit Token-Management unabhängig von der Kartenverwaltung? Im Allgemeinen ist hier alles einfach - der Token lebt sein eigenes Leben, hat seinen eigenen Lebenszyklusstatus und der Token-Anforderer erfährt sofort über jede Änderung des Status des Token-Anforderers vom Kartenzahlungssystem.
Fassen wir zusammen. Was gibt die Tokenisierung dem Karteninhaber?
- Datensicherheit einer echten Bankkarte. Bei einer Zahlung wird ein Token verwendet und die Kartendaten selbst werden nicht übertragen, sodass ein potenzieller Angreifer sie nicht abfangen kann. Und es macht keinen Sinn, die Token-Daten abzufangen, da sich das Token in einen Kürbis verwandelt, wenn Sie versuchen, in einem anderen Geschäft zu bezahlen.
- Wenn eine Bankkarte erneut ausgestellt wird, bleibt der für den Online-Shop ausgestellte Token weiterhin gültig, und der Karteninhaber muss die neue Karte nicht mit den von ihm benötigten Diensten verknüpfen.
- Die Fähigkeit, den Token zu steuern. Tokens können verwaltet werden, ohne die Bankkarte selbst zu beeinflussen. Ausstellende Banken können in ihren Schnittstellen spezielle Tools für die flexible Verwaltung von Bindungen in Online-Shops implementieren (Erstellen eines Tokens in einem neuen Geschäft, Anzeigen vorhandener Token, Löschen irrelevanter Token).
Was macht es für Online-Shopping?
- Was für den Käufer gut ist, ist gut für das Geschäft, daher kann die Verwendung von Token-Karten die Kundenbindung erhöhen.
- , . , , . , .
- . , . , 88,53%, 97,89%*. , - , - . . , -, , .
* Wir haben die Zahlungen für diesen April in einem großen Online-Kino (MCC 4899) mit verknüpften Karten ohne 3DS verglichen, ohne erfolglose Zahlungen aufgrund von Geldmangel auf der Karte.
Technische Aspekte
Für diejenigen, die etwas tiefer gehen möchten, erzähle ich Ihnen etwas über die Technologie der Karten-Tokenisierung und deren Einführung in Yandex.Cash - wie alles aus dem Inneren unserer Zahlungslösung heraus aussieht.
Integration in Zahlungssysteme
Um die technische Möglichkeit zu erhalten, Karten zu tokenisieren und Zahlungen mit Token zu tätigen, müssen Sie sich in Visa und Mastercard integrieren, Tests bestehen, zertifizieren und deren Genehmigung für den Start in der Produktion erhalten. Zuerst klang es einschüchternd. Und nicht nur zuerst, um ehrlich zu sein, zumindest für mich. Die Zertifizierung war jedoch erschreckender und in Bezug auf die Technologie war alles sehr klar.
Die Integration impliziert die Implementierung der folgenden API (bedingt) zwischen dem Zahlungssystem und uns als Token Requestor:
- .
-, . (risk scoring) . , , , . , . - .
, : — , ? , , . , , . - .
/ , , , , . , .
Diese API-Beschreibung ist bedingt und verallgemeinert - es ist leicht zu erraten, dass jedes Zahlungssystem unterschiedliche Anforderungs- / Antwortformate, Algorithmen zum Signieren und Verschlüsseln von Daten in Anforderungen und unterschiedliche Nuancen in der Geschäftslogik aufweist. Aus diesem Grund haben wir all diese Details und Unterschiede zum Rest unseres Systems verborgen, indem wir einen separaten Karten-Tokenisierungsdienst erstellt haben, der ein Adapter für Zahlungssysteme ist und die volle Verantwortung für den Lebenszyklus von Token trägt.
Tokenisierung in Yandex.Checkout
Yandex.Kassa ist ein großes System zum Empfangen von Zahlungen für Online-Shops. Es besteht aus Dutzenden verschiedener Dienste: Backend, Frontend-Anwendungen, BI-Dienste. Sie bieten dem Benutzer die Zahlungsannahme auf verschiedene Weise, indem er Geld an das Geschäft überweist, Zahlungen über das persönliche Konto des Geschäfts, Analysedienste und dergleichen verwaltet. Und wie genau verlief die Tokenisierung von Karten hier?
Die Hauptfrage ist: Wann soll ein Token für eine Bankkarte erstellt werden?
In der Yandex.Kassi-API ist es möglich, die ausgewählte Zahlungsmethode für zukünftige Zahlungen in der Zukunft zu speichern. Wir nennen sie automatische Zahlungen .
Dies kann sowohl auftreten, wenn die Karte mit dem Benutzerkonto im persönlichen Konto des Geschäfts verknüpft ist, als auch beim regelmäßigen Abonnieren, wenn Zahlungen von der Karte automatisch erfolgen. In beiden Szenarien übergibt der Store by API beim Erstellen einer Zahlung den Parameter save_payment_method: true. Nach einer erfolgreichen Zahlung geben wir dem Store payment_method_id die Kennung der gespeicherten Zahlungsmethode an, mit der er neue Zahlungen ausführen kann.
Hier ist es, dieser Moment. Token werden nur für Zahlungen erstellt, die vom Geschäft initiiert wurden. Daher stellen wir unmittelbar nach der Zahlung unter Beibehaltung der Zahlungsmethode unseren Tokenisierungsdienst asynchron ein, um ein Token für das Paar "Karte und Speicher" zu erstellen.
Was machen die Zahlungssysteme selbst zum Zeitpunkt der Karten-Tokenisierung?
Sie wenden sich an die ausstellende Bank mit der Aufforderung, ein Token zu erstellen (wie dies beim Erstellen von * Pay-Token der Fall ist), und die Bank stellt ein Token für dieses Geschäft aus. Die Bank kann den Karteninhaber auch darüber informieren und den erstellten Token in seinem persönlichen Konto anzeigen.
Wie funktioniert eine Token-Zahlung?
Vielleicht benötigen Sie hier eine Illustration, wie die Zahlung mit einer zuvor gespeicherten Karte im Allgemeinen abläuft, wodurch der Online-Shop initiiert wird:
Wenn Sie also mit einer zuvor gespeicherten Methode bezahlen, sendet der Shop nur seine Kennung - payment_method_id . Mit dieser Kennung findet der Kartenzahlungsdienst die Daten (PAN und Ablaufdatum) der Karte und überträgt sie an eine der erwerbenden Banken, die dann mit dem Kartenzahlungssystem kommuniziert.
Mit Token in diesem Szenario wird ein weiterer Schritt hinzugefügt:
Wenn wir feststellen, dass zuvor ein Token für die Karte und das Geschäft ausgestellt wurde, können wir eine Zahlung ohne Verwendung der Kartendaten vornehmen. Zu diesem Zweck senden wir über den Tokenisierungsdienst zunächst eine Anfrage mit den Token-Daten an das internationale Zahlungssystem. Als Antwort erhalten wir ein einmaliges Kryptogramm, das bestätigt, dass das Token gültig ist und wir das Recht haben, eine Zahlung zu leisten. Danach übertragen wir die Token-Daten zusammen mit diesem Kryptogramm an die erwerbende Bank.
Was passiert in dem Szenario, wenn ein Benutzer eine Karte bei seiner Bank erneut ausstellt?
Wenn zuvor Token auf die Karte ausgestellt wurden, informiert die ausstellende Bank das Mastercard / Visa-Zahlungssystem darüber, dass die Karte erneut ausgestellt wurde. Jeder Token-Anforderer, der Token für diese Karte ausgestellt hat, erhält eine Benachrichtigung vom Zahlungssystem. Es enthält aktualisierte Informationen zur Karte: die letzten 4 Ziffern der Nummer und die neue Gültigkeitsdauer. Das Token bleibt gleich.
Wenn ein Geschäft eine weitere Zahlung von einer bereits abgelaufenen Karte initiiert, die tatsächlich neu ausgestellt wurde, und wir für dieses Geschäft ein Token dafür haben, ist die Zahlung erfolgreich. Darüber hinaus werden wir den Store über die neuen letzten 4 Ziffern der Bankkarte informieren - diese werden in den Antworten unserer API enthalten sein. Dies ist notwendig, damit sowohl das Geschäft als auch der Benutzer immer sehen können, von welcher Karte das Geld abgebucht wird.
Anstelle einer Schlussfolgerung
Die Tokenisierung im E-Commerce ist eine neue Phase in der Entwicklung der Zahlungsakzeptanz, die den Komfort für alle Teilnehmer am Zahlungsprozess erhöht. Wir gehen davon aus, dass die Technologie in naher Zukunft von vielen russischen Banken und Anbietern unterstützt wird - und zu einem neuen Standard auf dem Zahlungsmarkt wird.
Natürlich stellte sich heraus, dass die Geschichte eher ein Überblick war, aber ich hoffe, dass jeder Leser etwas Nützliches darin findet - seine Finanzkompetenz verbessern, sich über die neuesten Entwicklungen im Bereich Fintech informieren oder vielleicht eine Idee für die Entwicklung seines Geschäfts finden.
Ich bin fertig, sei gesund und werde nicht krank!