Parcours utilisateur d'association

Présentation

L'objectif du processus d'association est d'établir un jeton permanent (autrement dit, un identifiant opaque) qui représente le lien entre le compte utilisateur Google et le compte utilisateur de l'intégrateur et l'intégrateur des paiements (l'entreprise qui configure son mode de paiement dans notre système). Ce jeton a une longue durée de vie, appelé Google Payment Token (GPT). Un mode de paiement est un moyen de payer l'achat de services et de biens dans les différents écosystèmes et places de marché de Google. Un client Google peut disposer de plusieurs modes de paiement.

Fonctionnement du flux

  1. Google négocie un jeton pour associer le compte client de Google et le compte utilisateur de l'intégrateur.
  2. Google recueille les informations de configuration initiale nécessaires pour créer et établir le GPT.

Une preuve d'identité et d'authentification doit d'abord être établie via le flux d'authentification. La sortie du flux d'authentification est transmise à la méthode associateAccount. Le flux d'association associe ensuite le compte utilisateur Google à l'instrument Google. Cela permet de configurer le mode de paiement afin qu'il puisse être utilisé pour les paiements.

Voici un diagramme qui détaille le flux d'association:

Schéma séquentiel du flux d'association

Schéma du flux d'association

Voici la liste des objets et de ce qu'ils représentent:

  • Utilisateur: il s'agit de la personne qui souhaite ajouter un mode de paiement à son compte Google.
  • UI Google: il s'agit de l'interface Google où le client commence à configurer un mode de paiement.
  • Interface utilisateur de l'intégrateur de paiements: interface de l'intégrateur (Web ou Android) à laquelle le client a accès pour ce compte.
  • Serveur Google: serveurs backend de Google qui effectuent les vérifications d'authentification et associent le compte d'intégrateur de l'utilisateur à un GPT (jeton de paiement Google).
  • Serveur d'intégrateur de paiements: serveur backend de l'intégrateur sur lequel l'utilisateur possède un compte.

Il s'agit d'un flux d'association dans lequel le compte Google de l'utilisateur est associé à son compte d'intégrateur par un jeton Google. Voici comment ce flux fonctionne.

  1. L'utilisateur lance le flux dans l'UI Google (interface Web ou d'application, par exemple).
  2. L'interface utilisateur de Google envoie un message au serveur de Google afin de lui fournir une demande d'authentification ("Demander des données d'authentification").
  3. Le serveur Google renvoie une demande d'authentification (authenticationRequest) à l'UI Google.
  4. L'UI Google connecte l'utilisateur à celle de l'intégrateur de paiements (authenticationRequest).
  5. L'utilisateur est invité à fournir son identité et ses identifiants.
  6. L'interface utilisateur de l'intégrateur de paiements envoie la réponse au serveur de l'intégrateur de paiements.
  7. Le serveur d'intégrateur de paiements authentifie la réponse et envoie la réponse d'authentification (authenticationResponse) à l'interface utilisateur de l'intégrateur de paiements.
  8. Cette réponse d'authentification est transmise à l'interface utilisateur Google.
  9. L'UI Google envoie un message au serveur Google pour vérifier la réponse de l'intégrateur (mode d'emploi défini dans "Utilisateur").
  10. Le serveur Google valide la réponse en vérifiant la signature, puis associe le compte de l'utilisateur à l'intégrateur de paiements à un GPT et à un ID d'association (authenticationRequestID, associationID) chez Google.
  11. Un message de confirmation est envoyé au serveur de Google.
  12. Un message de réussite est envoyé à l'interface utilisateur Google.
  13. Un message de confirmation est envoyé à l'utilisateur, indiquant que son instrument est prêt à être utilisé.

Bonnes pratiques et autres considérations

Plusieurs instruments

L'intégrateur doit autoriser l'association de plusieurs GPT au compte d'un même utilisateur. (par exemple, si un utilisateur supprime son instrument et en crée un autre avec le même compte utilisateur d'intégrateur).

Deux clients Google peuvent être associés au même compte d'intégrateur d'utilisateur. Dans ce cas, chaque utilisateur est associé à un mode de paiement différent. Pour chaque instrument, il existe un flux d'association indépendant et un GPT unique.

Mesures de sécurité

Si l'intégrateur pense que le compte d'intégrateur d'un utilisateur a fait l'objet d'un piratage, les nouvelles associations peuvent être refusées pour ce compte, et les instruments existants qui ont déjà été associés peuvent renvoyer des codes de refus lors de futurs achats.

Durée de vie des tags GPT

Le GPT est destiné à une longue durée de vie et n'a pas d'expiration par défaut. Google recommande vivement un GPT sans date d'expiration. Ainsi, les utilisateurs bénéficient d'une expérience d'achat ininterrompue.

Pour les intégrateurs qui n'acceptent pas un jeton sans date d'expiration, l'intégrateur peut indiquer le délai d'expiration via le champ tokenExpirationTime de la méthode associateAccount. Lorsqu'un jeton est sur le point d'expirer, Google redirige l'utilisateur vers le flux du jeton d'actualisation afin de prolonger la durée de vie du jeton.

Autres identifiants

En plus des GPT, d'autres identifiants sont échangés lors de l'association. Voici une liste de ces fonctionnalités, accompagnée de liens vers plus d'informations.

  • AssociationId: jeton public défini par Google, identifiant l'association entre le compte du client chez Google et le mode de paiement. Alors que GPT n'est utilisé que dans les requêtes de serveur à serveur, AssociationId est l'équivalent client. (Consultez l'entrée du glossaire pour plus d'informations.)
  • AccountId: Identifiant défini par le fournisseur (souvent un numéro de compte), utilisé pour détecter les fraudes et comprendre les relations entre les comptes. Les agents des opérations client de Google l'utilisent également pour identifier les problèmes des clients, puis pour diagnostiquer les problèmes. (Consultez l'entrée du glossaire pour plus d'informations.)
  • AccountNickname (ou fullAccountNickname): chaîne utilisée par les fournisseurs pour identifier leurs clients. Il est également utilisé à des fins d'affichage. Le AccountNickname est masqué par le fournisseur pour des raisons de SPII, pas de fullAccountNickname.