Google adopte officiellement l'API de demande de paiement, ce qui vous permet de payer avec des applications tierces dans Chrome

Une nouvelle façon de payer est enfin arrivée

Annoncée lors de la prochaine conférence des développeurs I / O de Google, l'API de demande de paiement va révolutionner la façon dont nous effectuons des paiements en ligne sur nos appareils mobiles. Les utilisateurs de Google Chrome sous Android n'auront plus à passer par de longs processus de commande impliquant la saisie de leurs informations de carte de crédit ou la connexion à PayPal. Au lieu de cela, l'API permet aux développeurs de sites Web d'envoyer des intentions aux applications de paiement tierces prises en charge afin d'effectuer un paiement. Contrairement à la plupart des autres surprises que Google nous réserve, il existe déjà une tonne d'informations publiques sur le fonctionnement exact de cette nouvelle méthode de paiement . Nous avons plongé dans tous ces documents afin de vous apporter des informations avant l'annonce officielle de Google cette semaine.


Faciliter les paiements avec l'API de demande de paiement

Commençons par récapituler comment les paiements sont actuellement gérés dans les navigateurs Web. Lorsque vous accédez à la page de paiement d'un commerçant en ligne, vous êtes invité à saisir vos informations de paiement. Vous pouvez soit ajouter une carte de crédit prise en charge par le commerçant, soit utiliser un service intégré tel que PayPal pour finaliser votre transaction. Maintenant, sauf si vous avez déjà enregistré vos informations de carte de crédit sur le site Web (ce que beaucoup de gens hésitent à faire) ou si vous êtes déjà connecté à PayPal, il peut être fastidieux de se lever, d'aller dans votre portefeuille, de trouver votre carte, puis entrez le numéro de carte, la date d'expiration et le code de sécurité. Chaque fois que vous souhaitez effectuer un achat sur un nouveau site Web, vous devez suivre une variante de ce processus. Pour ceux d'entre nous qui aiment chasser les bonnes affaires, cela peut vite devenir agaçant.

Diverses pages de paiement en ligne pour les marchands

De nombreuses institutions bancaires et de cartes de crédit ont des applications disponibles sur le Google Play Store. Puisque nous utilisons déjà ces applications pour surveiller nos comptes financiers, pourquoi ne pouvons-nous pas les utiliser pour authentifier des paiements? C’est exactement le processus de réflexion qui sous-tend le groupe de travail sur les paiements Web, composé de membres tels que Google, Mozilla, Samsung, Alibaba, Microsoft, etc. Ce groupe a travaillé en coulisse afin de mettre en place une nouvelle API appelée API de demande de paiement et une nouvelle norme en ligne définie dans la proposition de manifeste de paiement afin de faciliter la communication entre les navigateurs Web et les marchands en ligne afin que le marchand en ligne puisse utiliser applications existantes sur le périphérique de l'utilisateur final afin de gérer les paiements.

Comment ça fonctionne

Afin d'accomplir cette tâche, les navigateurs Web doivent prendre en charge l'API de demande de paiement, les marchands en ligne doivent prendre en charge l'API en implémentant ce qu'on appelle un identificateur de méthode de paiement et les applications Android doivent implémenter de nouveaux services. Sans entrer dans les détails, je vais expliquer brièvement ce qui se passe pendant le processus de commande.

En supposant que votre navigateur Web prenne en charge l’API de demande de paiement (nous en parlerons plus tard), lorsque vous accédez à la page de paiement d’un commerçant en ligne, vous avez la possibilité de payer avec l’un de leurs gestionnaires de paiement pris en charge (carte de crédit / PayPal / etc.). Appuyez sur le bouton pour effectuer un achat (comme sur l'exemple de page ci-dessous utilisé par Googlers pour tester l'API de demande de paiement), puis l'API de demande de paiement envoie une intention Android à l'application de paiement prise en charge afin que cette application puisse authentifier l'utilisateur. Paiement.

Disons que notre application de carte de crédit hypothétique installée sur un appareil Android hypothétique s'appelle Bob Pay. Bob Pay ajoutera les éléments suivants à leur fichier AndroidManifest.xml:

 

Lorsqu'une intention est envoyée ciblant cette application de carte de crédit hypothétique, le service de cette application est démarré. Toutes les informations nécessaires à notre application hypothétique Bob Pay pour comprendre ce qui est acheté, à quel fournisseur et pour combien d'argent se trouvent dans les extras de l'intention:

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

Une fois que Bob Pay a validé le paiement, l'API de demande de paiement reçoit ces informations dans une autre intention envoyée par Bob Pay:

 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. 

Mais comment le commerçant en ligne prenant en charge Bob Pay sait-il que Bob Pay installé sur votre téléphone est le véritable Bob Pay, et non un logiciel malveillant destiné à commettre une fraude? Pour ce faire, il crée un fichier JSON d'identificateur de manifeste de méthode de paiement lisible par la machine par le navigateur.

 { " 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 ", } ] } 

Ce fichier JSON contient une signature qui permet de vérifier l’intégrité de l’application installée sur votre appareil qui prétend être le véritable Bob Pay. Si cette vérification de signature échoue, Bob Pay ne sera pas accepté comme gestionnaire de paiement.

Bien sûr, je simplifie énormément, énormément, énormément le processus général en jeu ici. Les paiements sont un système incroyablement complexe qui nécessite plusieurs couches de contrôles de sécurité afin de garantir que seuls des paiements valides sont effectués. Les trois documents précédemment liés expliquent comment le navigateur implémente pleinement l'API de demande de paiement, comment un site Web implémente le fichier de manifeste JSON et comment une application Android peut gérer l'intention envoyée par l'API de demande de paiement. Voici un organigramme qui décrit le processus général que j'ai résumé ci-dessus:

Organigramme de paiement. Source: Rouslan Solomakhin

Comme vous pouvez le constater, beaucoup d’étapes sont impliquées ici. Tous ces changements seront gérés par les développeurs de sites Web de marchands en ligne, les applications de cartes bancaires / de crédit Android et les développeurs de navigateurs Web, de sorte qu'un utilisateur final n'aura probablement aucune idée de ce qui se passe réellement ici. Mais sachez simplement que le résultat final est que vos paiements en ligne deviendront beaucoup plus simples si toutes les parties concernées implémentaient ces changements, ce qui, grâce aux efforts de normalisation du groupe de travail sur les paiements sur le Web, deviendrait, espérons-le, une réalité.


L'historique derrière l'API de demande de paiement

Le World Wide Web Consortium (W3C en abrégé) a été fondé en 1994 dans le but de développer des normes de plate-forme permettant à tous les sites Web et à leurs utilisateurs de bénéficier d'intercompatibilité et de cohérence. Afin de remédier à la fragmentation croissante des paiements sur le Web, le W3C a constitué en 2015 le groupe de travail sur les paiements sur le Web afin de normaliser certains aspects du flux de paiement en ligne. Par la suite, tous les membres du groupe de travail sur les paiements Web ont commencé à chercher des moyens d'améliorer le fonctionnement des systèmes de paiement en ligne existants.

Le groupe a mis au point l'API de demande de paiement, un ensemble de méthodes permettant aux sites Web d'utiliser des méthodes de paiement sans intégrer la méthode de paiement dans leur site. Les navigateurs Web doivent être mis à jour pour prendre en charge l'API, mais la partie la plus difficile consiste à obtenir l'adhésion des marchands en ligne . À cette fin, les membres du groupe de travail ont présenté une proposition sur la manière dont les sites Web peuvent créer des identifiants pour définir les modes de paiement qu’ils prennent en charge. Cela implique la création d'un fichier JSON de manifeste de paiement lisible par une machine (identificateur de méthode de paiement). Il doit être lu par le navigateur afin que l'API de demande de paiement puisse identifier si l'utilisateur dispose d'une ou de plusieurs des applications correspondant aux méthodes de paiement prises en charge. identifié dans le fichier JSON. Cette implémentation est inspirée du protocole Google Digital Asset Links, qui permet aux sites Web de vous rediriger de leur site mobile vers leur application si vous l'avez déjà installé.

Après de nombreux échanges internes du groupe, le 25 novembre 2016, Zach Koch de Google et Dapeng Liu d'Alibaba ont soumis une première version du manifeste des méthodes de paiement afin de lancer le processus de normalisation des identificateurs de méthode de paiement que tous les membres pouvaient accepter. Finalement, les membres du groupe de travail se sont réunis en personne à Chicago du 23 au 24 mars afin de définir l'API de demande de paiement, la proposition de manifeste de paiement, etc. Le groupe de travail a voté en faveur de l’adoption officielle d’une nouvelle version de la proposition relative au manifeste de paiement (version 2). Nous en sommes aujourd’hui.


Prise en charge de l'API de demande de paiement

Le 10 mai, la prise en charge des applications de paiement Android tierces est désormais activée par défaut dans Chromium, car les prérequis du manifeste de paiement Web ont été approuvés dans la branche blink-dev (Blink est le nom du moteur de rendu utilisé par Chrome). Notez que cette fonctionnalité est testée dans Chrome depuis des mois, mais ce n’est que récemment que le groupe est prêt à aller de l’avant. Cette fonctionnalité sera disponible sur toutes les plates-formes / versions de Chromium, à l'exception d'Android Webview (qui ne possède pas d'interface utilisateur et ne peut donc pas implémenter l'API de demande de paiement).

Après seulement des mois de travail en coulisse, nous allons maintenant voir les avantages de ce sur quoi le groupe de travail sur les paiements sur le Web a travaillé. À Google I / O, la société annoncera probablement que Google Chrome sera livré avec l'API de demande de paiement activée, et Zach Koch, mentionné précédemment, donnera son exposé jeudi sur la manière dont des fournisseurs de paiement tiers peuvent prendre en charge l'API en construisant un manifeste. Fichiers JSON.

D'autres navigateurs s'efforcent également de prendre en charge l'API de demande de paiement. Mozilla et Samsung ont publiquement exprimé leur soutien à l'ajout de l'API. Toutefois, selon Googler Rouslan Solomakhin, rien ne dit si le navigateur Edge de Microsoft ou Safari d'Apple ajoutera un support. Il est à noter que Microsoft teste déjà l'API de demande de paiement pour les applications UWP (Universal Windows Platform) et qu'au moins une banque a déjà implémenté la prise en charge (Monzo) dans son application.

Quant aux autres marchands en ligne et aux applications Android qui prendront en charge cette nouvelle spécification de paiement, selon le googler Zach Koch:

Le nombre de «fournisseurs de méthodes de paiement» qui auraient besoin de mettre en œuvre cette spécification est assez petit (des centaines) et, pour le moment, nous ne travaillons directement qu'avec un très petit sous-ensemble de ceux-ci (<5) pour tester les eaux. Si nous nous trouvions dans une situation où nous devions changer de domaine, je pense que nous pourrions le faire facilement et sans grand risque d'interopérabilité (le cas échéant). Tous nos premiers partenaires sont conscients que cette spécification peut changer et sont d'accord avec cela.

Cette opération est essentielle pour permettre aux autres joueurs de participer à l'écosystème des relations publiques, du moins sur Android. Je préférerais vraiment ne pas suivre la voie exclusive pour activer les applications natives Android. Nous avons gardé cette empreinte volontairement petite pour laisser de la place à la croissance et à des cas d'utilisation plus avancés.

Ainsi, nous pouvons constater que, même si Google est un pionnier en matière de prise en charge de l’API de demande de paiement, il faudra un certain temps pour que cette nouvelle méthode de paiement trouve son chemin dans tous les navigateurs, tous les marchands en ligne et toutes les applications. Personnellement, je suis très heureux de voir l’API de demande de paiement devenir prise en charge par Google. L'écosystème du commerce électronique a été inutilement fragmenté avec les méthodes de paiement depuis des années. Si cette nouvelle API signifie que je ne dois plus jamais entrer manuellement les informations de ma carte de crédit dans un site Web, je suis tout à fait à l'aise.


Que pensez-vous de cette norme à venir? Écoutez les commentaires et donnez-nous votre avis!