Trésorerie

Présentation

Google Payments standard accepte les modes de paiement en espèces, comme les achats dans un commerce de proximité (comme un 7-Eleven). De manière générale, un utilisateur qui souhaite payer des produits génère un numéro de référence via l'intégrateur de paiement. L'utilisateur transmet ensuite ce numéro de référence à un commerce de proximité, à un kiosque ou à une banque, et verse ce numéro.

<ph type="x-smartling-placeholder">
</ph> Ajout d&#39;un mode de paiement
1) l'utilisateur ajoute un mode de paiement.
<ph type="x-smartling-placeholder">
</ph> Choisissez où payer
2) Ils choisissent ensuite leur mode de paiement.
<ph type="x-smartling-placeholder">
</ph> Instructions de paiement
3) Enfin, le client reçoit des instructions de paiement.

Concepts et terminologie

Symboles et Conventions

Les mots clés « DOIT », "NE DOIT PAS", "OBLIGATOIRE" « SHALL », « NE DOIT PAS », « DEVRAIT », « NE DEVRAIT PAS », « RECOMMANDÉ », « MAI », et "FACULTATIF" de ces documents doivent être interprétées conformément à la norme RFC 2119.

Codes temporels

Tous les codes temporels sont exprimés en millisecondes depuis l'epoch Unix (1er janvier 1970) dans le fuseau UTC.

Exemple :

  • 23 avril 2019 20:23:25 GMT = 1556051005000 millisecondes
  • 16 août 2018 12:28:35 GMT = 1534422515000 millisecondes

Montants

Dans cette API, les valeurs monétaires sont au format "micros", une norme chez Google. Les micros sont un format à précision fixe basé sur des nombres entiers. Pour représenter une valeur monétaire en micros, multipliez la valeur de la devise standard par 1 000 000.

Exemple :

  • 1,23 € = 1 230 000 micro-USD
  • 0,01 € = 10 000 micro-USD

Idempotence

Tous les appels de méthode dans cette API doivent avoir un comportement idempotent. Google réessaiera sporadiquement les requêtes pour s'assurer que les transactions se trouvent dans le même état des deux côtés. Les intégrateurs ne doivent pas tenter de traiter à nouveau une demande déjà traitée avec succès. La réponse indiquant que le traitement a réussi doit être indiquée à la place. Toutes les méthodes ont un élément RequestHeader commun qui contient un requestId. Cet requestId est la clé d'idempotence pour tous les appels.

Toute réponse non terminale (non HTTP 200-succès) ne doit pas être traitée de manière idempotente. Ainsi, une requête ayant précédemment reçu une réponse 400 (mauvaise requête/condition préalable ayant échoué), lorsqu'elle est appelée une seconde fois, ne doit pas renvoyer idempotente 400. Elle doit être réévaluée. Lors de la réévaluation, elle peut renvoyer un code 400 ou être traitée correctement.

Pour en savoir plus sur l'idempotence, consultez ce guide détaillé.

Intégrateur

Entreprise qui utilise la plate-forme de paiement de Google pour son activité. Il peut s'agir d'entreprises internes (propriétaires), comme YouTube ou AdWords, ou d'entreprises externes (tierces) souhaitant intégrer leurs services pour qu'ils fonctionnent avec l'écosystème de Google.

Mode de paiement

Mode de paiement. Ceci est plus général qu'un instrument. Les cartes Visa, MasterCard et PayPal sont toutes des modes de paiement acceptés.

Instrument

Instance particulière d'un mode de paiement par un client spécifique. (carte de crédit d'un utilisateur ou son compte PayPal, par exemple). Un mode de paiement tokenisé pour un client particulier constitue également un mode de paiement, car il s'agit d'une instance de mode de paiement pour ce client, stocké de manière sécurisée sur notre système.

Jeton

Représentation, sur le système de Google, du mode de paiement d'un utilisateur spécifique. Étant donné qu'il contient toutes les informations nécessaires à un achat, un jeton joue également un rôle d'instrument. Il peut s'agir d'informations telles que le numéro de compte d'un utilisateur auprès de son intégrateur.

Principaux flux

Google utilise deux flux principaux pour créer et payer ces numéros de référence:

  1. Générez un flux de numéros de référence.
  2. Flux des numéros de référence du paiement.

Par la suite, le rapprochement et le règlement des achats résultants sont gérés par le flux de versement.

Le schéma ci-dessous illustre chacun de ces flux.

Présentation du mode de paiement en espèces

Présentation générale du mode de paiement en espèces

Les deux premiers flux sont décrits plus en détail dans les sections suivantes. Consultez la page Flux de versement pour en savoir plus sur ce processus.

Générer un numéro de référence

Le flux de génération de numéros de référence permet de créer et d'échanger un identifiant (numéro de référence) que Google et l'intégrateur peuvent utiliser pour identifier un achat. Il peut ensuite utiliser ce numéro de référence dans une supérette, un kiosque ou une banque pour finaliser l'achat. Cet identifiant est généré par l'intégrateur à la requête de Google en appelant la méthode generateReferenceNumber. La demande de génération du numéro de référence comprend un montant et une description de la transaction.

Le schéma suivant montre comment un numéro de référence est généré et envoyé au client, avec des instructions.

Générer un flux de numéros de référence

Numéro de référence généré en espèces

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

  • Utilisateur: personne qui souhaite payer quelque chose à l'aide de ce mode de paiement.
  • Interface utilisateur Google: il s'agit de l'interface via laquelle l'utilisateur effectue son achat. Il peut s'agir du Web ou d'une application.
  • Serveur Google: serveur backend de Google qui demande la génération du numéro de référence et crée des instructions de paiement pour l'utilisateur.
  • Serveur de l'intégrateur de paiement: serveur backend de l'intégrateur de paiement qui assure le suivi des détails du paiement et génère le numéro de référence.

Ce flux commence par l’utilisateur qui souhaite utiliser ce mode de paiement en espèces.

  1. L'utilisateur accède à l'interface utilisateur Google qui envoie une demande de numéro de référence.
  2. L'UI Google envoie un message au serveur Google pour lui indiquer qu'il a besoin d'un numéro de référence (getReferenceNumber).
  3. Le serveur Google demande au serveur de l'intégrateur de paiement de générer un numéro de référence (generateReferenceNumber).
  4. Le serveur de l'intégrateur de paiement génère et envoie le numéro de référence au serveur Google.
  5. Le serveur Google crée des instructions de paiement accompagnées du numéro de référence. Il envoie ensuite ces informations à l'interface utilisateur Google.
  6. L'interface utilisateur Google envoie ces instructions et le numéro de référence à l'Utilisateur.

Remarques sur les numéros de référence

Les numéros de référence ne peuvent être payés qu'une seule fois et peuvent être annulés via la procédure de résiliation des numéros de référence. En outre, les numéros de référence doivent être alphanumériques et accepter plusieurs formats d'affichage.

En plus d'afficher le numéro de référence, les interfaces utilisateur de Google peuvent éventuellement le représenter au format Code 128 (un format de code-barres). D'autres formats de code-barres peuvent être acceptés sur demande.

Numéro de référence du paiement

Il se sert de ce numéro de référence dans une supérette, un kiosque ou une banque pour identifier l'achat à régler. L'intégrateur doit demander à l'utilisateur de confirmer le paiement de l'achat en affichant le montant, la date et la description de la transaction avant le paiement.

Une fois que l'utilisateur choisit de payer, il doit payer la totalité de son montant et n'effectuer un paiement qu'une seule fois. Cette API n'accepte pas les paiements excédentaires ou insuffisants pour un même numéro de référence. Il est également impossible d'associer plusieurs paiements à un même numéro de référence.

Une fois que l'utilisateur a payé, l'intégrateur doit immédiatement informer Google que ce numéro de référence a été payé via la méthode referenceNumberPaidNotification. En appelant cette méthode quelques secondes après que l'utilisateur paie physiquement, l'intégrateur permet à l'utilisateur de recevoir rapidement ses produits. (Cet appel peut être ajouté à une file d'attente si le réseau est en panne.)

Une fois le paiement effectué, le numéro de référence et le montant seront inclus dans le relevé de paiement envoyé T+2 jours.

Voici un diagramme séquentiel illustrant le paiement d'un numéro de référence.

Flux du numéro de référence du paiement

Flux du numéro de référence du paiement

Les objets du schéma représentent les éléments suivants:

  • Utilisateur: personne qui souhaite payer quelque chose à l'aide de ce mode de paiement.
  • Supérette: lieu où l'utilisateur effectue son paiement à l'aide du numéro de référence et des instructions fournies (par exemple, une supérette).
  • Serveur de l'intégrateur de paiement: serveur backend de l'intégrateur de paiement qui assure le suivi des détails du paiement.
  • Serveur Google: serveur backend de Google qui demande la génération du numéro de référence et crée des instructions de paiement pour l'utilisateur.

Ce flux commence par l’utilisateur qui se rend dans un commerce de proximité afin d’effectuer un paiement selon les instructions qui lui sont données.

  1. L'utilisateur se rend dans un commerce de proximité pour effectuer un paiement.
  2. Une fois la transaction terminée, le commerce de proximité informe l'intégrateur de paiement du paiement.
  3. Le serveur de l'intégrateur de paiement envoie un message de réussite au commerce de proximité.
  4. Le commerce de proximité indique à l'utilisateur que la transaction a réussi et que les produits lui seront bientôt livrés.
  5. Le serveur de l'intégrateur de paiement envoie un message au serveur de Google indiquant que le numéro de référence a été payé (referenceNumberPaidNotification). Cette étape ne doit pas bloquer l'étape 4.
  6. Le serveur Google répond par un message de réussite au serveur de l'intégrateur de paiement.

Annuler le numéro de référence

Les numéros de référence peuvent être annulés par Google. Si Google annule un numéro de référence, la méthode cancelReferenceNumber est appelée. Si cet appel aboutit, vous ne pouvez pas payer ce numéro de référence et l'intégrateur doit refuser le paiement pour ce numéro. Si cet appel aboutit, tous les futurs appels vers referenceNumberPaidNotification échoueront.

Si le processus de paiement a déjà commencé, par exemple si l'utilisateur a saisi son numéro de référence sur un kiosque, mais qu'il n'a pas encore payé, l'intégrateur doit renvoyer un code de réponse HTTP 423 avec ErrorResponse contenant USER_ACTION_IN_PROGRESS.

Étape suivante: Flux de versement