salut! Récemment, chez Yandex.Checkout, avec les systèmes de paiement Visa et Mastercard, nous avons lancé une nouvelle technologie pour symboliser les paiements pour le commerce électronique ou, en d'autres termes, le commerce en ligne. Quelqu'un pourrait penser: qu'est-ce qui ne va pas avec la tokenisation des cartes déjà trouvée avec la sortie d'Apple Pay, de Google Pay et d'autres * Pay. Mais non, il y a quelque chose de nouveau ici, et nous avons été les premiers à lancer cette technologie en Russie ce printemps pour les magasins partenaires, alors pourquoi ne pas la partager.
Aux États-Unis et en Europe, cette technologie est apparue un peu plus tôt, et les utilisateurs de services tels que Netflix et Amazon paient déjà avec des jetons de commerce électronique, même s'ils ne le savent peut-être même pas. Et maintenant, je vais vous dire comment cela est organisé non seulement à l'extérieur (pour les partenaires et les titulaires de carte), mais aussi de l'intérieur, du point de vue du développeur et du chef d'équipe de ce projet. Si vous êtes intéressé - gallois sous le chat.
Apple Pay Google Pay
, , Apple Pay Google Pay ( — *Pay), .
, *Pay , . , , . , , , . — — , .
:
- , ,
- .
? E-commerce, , - -.
, E-commerce
, — , .
— (PAN — Primary Account Number) .Si le titulaire de la carte est l'initiateur de la connexion de la carte à * Pay, la tokenisation pour le commerce électronique est initiée par la boutique en ligne. Mais pourquoi (et pour quelle raison)?
Vous êtes certainement nombreux à utiliser des services d'abonnement: qu'il s'agisse d'un paiement mensuel pour la musique, les films ou, par exemple, les services publics. Comment cet abonnement est-il émis? Vous allez sur le site Web de la boutique en ligne, entrez les détails de votre carte et cochez la case confirmant votre accord que le magasin enregistrera les détails de votre carte (PAN et date d'expiration) et pourra initier indépendamment le paiement d'un service spécifique.
Vous devez comprendre qu'une telle action implique que le magasin doit enregistrer les données de la carte quelque part. Il existe généralement deux options:
- , PCI DSS, -,
- , ., PCI DSS .
Est-il possible d'appliquer ici également l'approche de la tokenisation? Pourquoi, au lieu de stocker les données de la carte bancaire, utilisez un jeton qui peut être géré séparément de la carte? Mais que se passe-t-il si nous faisons en sorte que lors de la prochaine réémission de la carte, le jeton reste le même et qu'il ne soit pas nécessaire de relier la carte à différents services? Cela semble curieux?
Parlons de tout dans l'ordre. Lors de la tokenisation, nous échangeons des données de carte bancaire contre un token, mais qu'est-ce que c'est? Le jeton est fourni par le système de paiement par carte - Mastercard ou Visa. Il s'agit d'un identifiant unique, similaire au numéro de compte de l'appareil dans Apple Pay ou au numéro de compte virtuel dans Google Pay, qui se trouve dans l'application sur le smartphone (Wallet sur les appareils Apple et Google Pay sur Android).
Contrairement à * Pay, dans la tokenisation E-commerce, la création d'un token est initiée par une boutique en ligne ou sa solution de paiement, et les tokens eux-mêmes sont stockés sur les serveurs des systèmes de paiement.
Bien entendu, personne ne peut accéder au système de paiement et recevoir un jeton de la carte de quelqu'un pour régler ses achats. Premièrement, les cartes ne peuvent être symbolisées que par les solutions de paiement certifiées et approuvées par les systèmes de paiement. Une telle solution de paiement est appelée On-Behalf Token Requestor ou Token Service Provider, mais pour plus de simplicité, nous utiliserons désormais le terme Token Requestor.... Et seul le demandeur de jeton peut initier des paiements par jeton. Deuxièmement, un jeton est toujours émis pour un magasin spécifique et vous ne pouvez payer avec un jeton que dans ce magasin. Il est très similaire à la façon dont le jeton * Pay est associé à l'appareil sur lequel il a été créé.
Comment cela est-il réalisé? C'est juste qu'avant d'effectuer chaque paiement sur le Token, le demandeur doit obtenir l'approbation du système de paiement pour ce paiement. Le fait d'une telle approbation devra être présenté lors du paiement réel, par conséquent, cette approbation a la forme d'un cryptogramme unique, qui est généré par le système de paiement par carte. Lors d'un paiement, ce cryptogramme est ajouté aux paramètres de requête dans la banque acquéreuse puis transmis au système de paiement, qui vérifie l'authenticité de ce cryptogramme, lui-même précédemment émis.
Et qu'en est-il de la gestion des jetons, quelle que soit la gestion des cartes? Ici, en général, tout est simple - le jeton vit sa propre vie, a ses propres statuts de cycle de vie, et Token Requestor est immédiatement informé de chaque changement de statut à partir du système de paiement par carte.
RĂ©sumons. Que donne la tokenisation au titulaire de la carte?
- La sécurité des données réelles des cartes bancaires. Lors d'un paiement, un jeton est utilisé et les données de la carte elles-mêmes ne sont pas transmises, de sorte qu'un attaquant potentiel ne peut pas les intercepter. Et il est inutile d'intercepter les données du jeton, car le jeton se transforme en citrouille lorsque vous essayez de payer dans un autre magasin.
- Lorsqu'une carte bancaire est réémise, le jeton émis pour la boutique en ligne reste valide et le titulaire de la carte n'a pas besoin de lier la nouvelle carte aux services dont il a besoin.
- La possibilité de gérer le jeton. Les jetons peuvent être gérés sans affecter la carte bancaire elle-même. Les banques émettrices pourront implémenter dans leurs interfaces des outils spéciaux pour une gestion flexible des liaisons dans les boutiques en ligne (création d'un token dans une nouvelle boutique, visualisation des tokens existants, suppression de ceux qui ne sont pas pertinents).
Qu'est-ce que cela donne aux magasins en ligne?
- Ce qui est bon pour l'acheteur est également bon pour le magasin, donc l'utilisation de cartes à jetons peut augmenter la fidélité des clients.
- , . , , . , .
- . , . , 88,53%, 97,89%*. , - , - . . , -, , .
* Nous avons comparé les paiements pour ce mois d'avril dans un grand cinéma en ligne (MCC 4899) - cartes liées sans 3DS, à l'exclusion des paiements échoués en raison du manque d'argent sur la carte.
Aspects techniques
Pour ceux qui aiment creuser un peu plus, je parlerai de la technologie de la tokenisation des cartes et de son lancement dans Yandex.Cash - à quoi tout cela ressemble de l'intérieur de notre solution de paiement.
Intégration avec les systèmes de paiement
Pour obtenir la capacité technique de tokeniser les cartes et d'effectuer des paiements avec des jetons, vous devez vous intégrer à Visa et Mastercard, réussir les tests, la certification et obtenir leur approbation pour le lancement en production. Cela semblait intimidant au début. Et pas seulement au début, pour être honnête, du moins pour moi. Mais la certification était plus effrayante, et en termes de technologie, tout était très clair.
L'intégration implique la mise en œuvre de l'API suivante (conditionnellement) entre le système de paiement et nous en tant que demandeur de jetons:
- .
-, . (risk scoring) . , , , . , . - .
, : — , ? , , . , , . - .
/ , , , , . , .
Cette description de l'API est conditionnelle et généralisée - il est facile de deviner que chaque système de paiement a différents formats de demande / réponse, des algorithmes pour signer et chiffrer les données dans les demandes, et il existe différentes nuances dans la logique métier. Par conséquent, nous avons caché tous ces détails et différences par rapport au reste de notre système en créant un service de tokenisation de carte distinct, qui est un adaptateur pour les systèmes de paiement et est entièrement responsable du cycle de vie des jetons.
Tokenisation dans Yandex.Checkout
Yandex.Checkout est un grand système d'acceptation des paiements pour les magasins en ligne. Il se compose de plusieurs dizaines de services différents: backend, applications frontales, services BI. Ils fournissent l’acceptation de paiement de l’utilisateur de diverses manières, en transférant des fonds au magasin, en gérant les paiements via le compte personnel du magasin, en fournissant des services d’analyse, etc. Et comment la tokenisation des cartes est-elle arrivée ici?
La question principale est: quand créer un token pour une carte bancaire?
L'API Yandex.Checkout vous permet d'enregistrer le mode de paiement sélectionné pour les futurs paiements futurs, nous appelons cela les paiements automatiques .
Cela peut se produire à la fois lorsque la carte est liée à un compte utilisateur dans le compte personnel de la boutique, ou lors d'un abonnement périodique, lorsque les paiements depuis la carte seront effectués automatiquement. Dans les deux scénarios, lors de la création d'un paiement, le marchand utilise l' API pour passer le paramètre save_payment_method: true , et après un paiement réussi, nous émettons le marchand payment_method_id - l'identifiant du mode de paiement enregistré, avec lequel il peut effectuer de nouveaux paiements.
Le voici, ce moment. Les jetons sont créés uniquement pour les paiements initiés par le magasin. Par conséquent, immédiatement après avoir effectué un paiement tout en enregistrant le mode de paiement, nous configurons de manière asynchrone notre service de tokenisation pour créer un jeton pour la paire «carte et magasin».
Que font les systèmes de paiement eux-mêmes lorsque la carte est tokenisée?
Ils contactent la banque émettrice pour leur demander de créer un jeton (comme cela se produit lors de la création de jetons * Pay), et la banque émet un jeton pour ce magasin. La banque peut également en informer le titulaire de la carte et afficher le jeton créé dans son compte personnel.
Comment s'effectue le paiement du token?
Ici, vous aurez peut-être besoin d'une illustration de la façon dont le paiement avec une carte précédemment enregistrée se déroule en général, ce qui déclenche la boutique en ligne:
Ainsi, lorsque vous payez avec une méthode précédemment enregistrée, la boutique envoie uniquement son identifiant - payment_method_id . A l'aide de cet identifiant, le service de paiement par carte trouve les données (PAN et date d'expiration) de la carte et les transfère à l'une des banques acquéreuses, qui communique alors avec le système de paiement par carte.
Avec les jetons, une autre étape est ajoutée dans ce scénario:
Si nous constatons qu'un jeton a déjà été émis pour la carte et le magasin, nous pouvons effectuer un paiement sans utiliser les données de la carte. Pour ce faire, via le service de tokenisation, nous envoyons d'abord une demande au système de paiement international avec les données du token et en réponse, nous recevons un cryptogramme unique, qui confirme que le token est valide et nous avons le droit d'effectuer un paiement. Et après cela, nous transférons les données du jeton à la banque acquéreuse avec ce cryptogramme.
Que se passe-t-il dans le scénario lorsqu'un utilisateur réémet une carte auprès de sa banque?
Si des jetons ont été précédemment émis sur la carte, la banque émettrice informe le système de paiement Mastercard / Visa que la carte a été réémise. À son tour, chaque demandeur de jeton qui a émis des jetons sur cette carte recevra une notification du système de paiement. Il contient des informations mises à jour sur la carte: les 4 derniers chiffres du numéro et une nouvelle date d'expiration. Le jeton reste le même.
Lorsqu'un magasin lance un autre paiement à partir d'une carte déjà expirée, qui a en fait été réémise, et que nous avons un jeton pour ce magasin, le paiement sera réussi. De plus, nous informerons le magasin des nouveaux 4 derniers chiffres de la carte bancaire - ils seront présents dans les réponses de notre API. Ceci est nécessaire pour que le magasin et l'utilisateur voient toujours de quelle carte est débitée.
Au lieu d'une conclusion
La tokenisation dans le commerce électronique est une nouvelle étape dans le développement de l'acceptation des paiements, augmentant la commodité pour tous les participants au processus de paiement. Nous prévoyons que dans un proche avenir, la technologie sera soutenue par de nombreuses banques et fournisseurs russes - et qu'elle deviendra une nouvelle norme sur le marché des paiements.
Bien sûr, l'histoire s'est avérée être davantage un aperçu, mais j'espère que chaque lecteur y trouvera quelque chose d'utile - augmenter son niveau de littératie financière, se renseigner sur les dernières technologies en matière de technologie financière ou peut-être trouver une idée pour développer son entreprise.
Je suis tout, sois en bonne santé et ne tombe pas malade!