Method: associateAccount

associe le compte du client à la société de traitement des paiements au mode de paiement Google ajouté ;

L'association de compte a lieu une fois que l'intégrateur a authentifié l'utilisateur. L'association se produit via un appel de serveur à serveur qui contient le requestId pour le flux d'authentification associé (authenticationRequestId), un associationId et un googlePaymentToken (GPT). La société de traitement des paiements doit associer associationId et googlePaymentToken au compte du client à des fins d'authentification. GPT sert à effectuer des paiements. Le associationId est utilisé lors des appels de réauthentification pour identifier le compte à des fins d'authentification.

Si Google envoie un associationId ou un googlePaymentToken que l'intégrateur a déjà vu lors d'une autre association, une erreur est générée.

Si le point de terminaison rencontre une erreur lors du traitement de la requête, le corps de la réponse de ce point de terminaison doit être de type ErrorResponse.

Voici un exemple de requête:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 0,
      "revision": 0
    },
    "requestId": "cmVxdWVzdDE",
    "requestTimestamp": "1481899949606"
 },
 "googlePaymentToken": "ZXhhbXBsZSB1bmlxdWUgcGF5bWVudCB0b2tlbiB2YWx1ZQ__",
 "authenticationRequestId": "bnAxdWTydDX==",
 "associationId": "LmddbXBsZSByZWZlcmVuY2UgdG9rZW4gdmFsdWU_",
 "provideUserInformation": true
}

Voici un exemple de réponse:


  {
  "responseHeader": {
    "responseTimestamp": "1481899949611"
  },
  "paymentIntegratorAssociateAccountId": "xx77df88934hfd",
  "accountId": "1234-5678-91",
  "accountNickname": "***-91",
  "tokenExpirationTime": "0",
  "userInformation": {
    "name": "Example Customer",
    "addressLine": ["123 Main St"],
    "localityName": "Springfield",
    "administrativeAreaName": "CO",
    "postalCodeNumber": "80309",
    "countryCode": "US"
  },
  "result": "SUCCESS"
}

Requête HTTP

POST https://www.integratorhost.example.com/v1/associateAccount

Corps de la requête

Le corps de la requête contient des données présentant la structure suivante :

Représentation JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "provideUserInformation": boolean,
  "googlePaymentToken": string,
  "associationId": string,

  // Union field account_verification can be only one of the following:
  "authenticationRequestId": string,
  "otpVerification": {
    object (OtpVerification)
  }
  // End of list of possible types for union field account_verification.
}
Champs
requestHeader

object (RequestHeader)

OBLIGATOIRE: en-tête commun pour toutes les requêtes.

provideUserInformation

boolean

OBLIGATOIRE : "true" si l'intégrateur doit fournir l'adresse associée à ce compte.

googlePaymentToken

string

OBLIGATOIRE: jeton que Google utilisera pour effectuer des achats auprès de la société de traitement des paiements.

Il s'agit d'une chaîne d'une longueur maximale de 100 caractères.

associationId

string

OBLIGATOIRE: identifiant de cette association. Cet identifiant est créé par Google et envoyé lors des flux de réauthentification afin d'identifier le compte à authentifier.

Il s'agit d'une chaîne d'une longueur maximale de 100 caractères.

Champ d'union account_verification.

account_verification ne peut être qu'un des éléments suivants :

authenticationRequestId

string

FACULTATIF: requestId de la requête d'authentification ayant précédé cet appel. Cet identifiant a été généré par Google lors du processus d'authentification. Cette situation n'est présente que si l'utilisateur a suivi l'authentification de l'application Android, l'authentification Web ou une méthode d'authentification asynchrone qui utilise authenticationResultNotification.

otpVerification

object (OtpVerification)

FACULTATIF: données nécessaires pour valider un mot de passe à usage unique généré à partir de sendOtp. Elle n'est présente que si l'utilisateur a suivi le chemin sendOtp.

Corps de la réponse

Objet réponse pour la méthode de compte associé.

Si la requête aboutit, le corps de la réponse contient des données qui ont la structure suivante :

Représentation JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorAssociateAccountId": string,
  "tokenExpirationTime": string,
  "accountId": string,
  "userMessage": string,
  "userInformation": {
    object (UserInformation)
  },
  "result": enum (AssociateAccountResultCode),

  // Union field account_names can be only one of the following:
  "accountNickname": string,
  "fullAccountNickname": string
  // End of list of possible types for union field account_names.
}
Champs
responseHeader

object (ResponseHeader)

OBLIGATOIRE: en-tête commun pour toutes les réponses.

paymentIntegratorAssociateAccountId

string

OBLIGATOIRE: cet identifiant est spécifique à l'intégrateur. Il est généré par l'intégrateur. Il est utilisé à des fins de débogage uniquement afin d'identifier cet appel. Il s'agit de l'identifiant par lequel l'intégrateur connaît cet appel.

tokenExpirationTime

string (int64 format)

FACULTATIF: Millisecondes depuis l'epoch d'expiration du jeton. Utilisez 0 pour signaler que le jeton n'expire pas.

accountId

string

OBLIGATOIRE: ID du compte dont dispose l'utilisateur pour l'intégrateur. Ces informations permettent à Google de comprendre les risques liés à la réutilisation des comptes et aux relations entre les comptes, ainsi que les agents des opérations client de Google pour aider les clients à diagnostiquer les problèmes. Cet identifiant doit être reconnaissable par l'utilisateur. Par exemple, il doit le connaître, car il apparaît sur son relevé ou sur le site Web une fois qu'il s'est connecté à son compte.

Cette valeur doit être immuable pendant toute la durée de vie du compte.

userMessage
(deprecated)

string

OBSOLÈTE: description du résultat à présenter à l'utilisateur si le résultat n'est pas SUCCESS.

userInformation

object (UserInformation)

OBLIGATOIRE: informations sur l'utilisateur que l'intégrateur connaît et partagera avec Google à propos de ce client. Utilisé pour les informations sur les risques et le pré-remplissage.

result

enum (AssociateAccountResultCode)

OBLIGATOIRE: résultat de cette association.

Champ d'union account_names.

account_names ne peut être qu'un des éléments suivants :

accountNickname

string

FACULTATIF: chaîne via laquelle l'utilisateur connaît ce compte à des fins d'affichage. Il s'agit d'un suffixe du pseudo du compte. Par exemple, les quatre derniers chiffres d'un numéro de téléphone. Google indiquera dans l'interface utilisateur qu'il ne s'agit que d'un suffixe du pseudo.

Cette valeur s'affichera dans des UI comme le parcours d'achat pour permettre à l'utilisateur de faire la distinction entre les modes de paiement.

fullAccountNickname

string

FACULTATIF: chaîne via laquelle l'utilisateur connaît ce compte à des fins d'affichage. Contrairement à accountNickname, il s'agit du pseudo complet du compte. Par exemple, 56565-56501 pour un numéro de téléphone ou sally@sample-email.com pour une identité e-mail.

Cette valeur s'affichera dans des UI comme le parcours d'achat pour permettre à l'utilisateur de faire la distinction entre les modes de paiement.

UserInformation

Structure contenant les informations sur un utilisateur.

Représentation JSON
{
  "name": string,
  "addressLine": [
    string
  ],
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string,
  "phone": string,
  "emailAddress": string
}
Champs
name

string

FACULTATIF: Nom complet du client.

addressLine[]

string

FACULTATIF: contient du texte d'adresse non structuré.

localityName

string

FACULTATIF: ce terme est vague, mais il désigne généralement la partie ville d'une adresse. Dans les régions du monde où les localités ne sont pas bien définies ou ne s'intègrent pas bien dans cette structure (par exemple, le Japon et la Chine), laissez le champ LocalNameName (Nom de la ville) vide et utilisez addressLine.

Exemples : une "city" aux États-Unis, une "comune" en Italie, une "post town" au Royaume-Uni.

administrativeAreaName

string

FACULTATIF : Sous-division administrative de niveau supérieur du pays ("État des États-Unis", "Région IT", "Province du CN", "Préfecture du Japon").

postalCodeNumber

string

FACULTATIF: Malgré le nom, les valeurs "postalCodeNumber" sont souvent alphanumériques. Exemples: "94043", "SW1W", "SW1W 9TQ".

countryCode

string

FACULTATIF: Code pays de l'adresse du client, qui doit être ISO-3166-1 Alpha-2.

phone

string

FACULTATIF: numéro de téléphone du client.

emailAddress

string

FACULTATIF: Adresse e-mail du client.

AssociateAccountResultCode

Codes de résultat pour le compte associé.

Enums
UNKNOWN_RESULT Ne définissez jamais cette valeur par défaut.
SUCCESS Association réussie.
USER_AUTHENTICATION_FAILED Même si le groupe d'authentification de compte a été renvoyé, l'authentification de l'utilisateur a échoué.
NOT_ELIGIBLE Le compte de l'utilisateur n'est pas éligible à ce service.
OTP_NOT_MATCHED L'OTP ne correspond pas aux informations envoyées par l'intégrateur.
OTP_ALREADY_USED L'OTP a déjà été utilisé.
OTP_LIMIT_REACHED L'utilisateur a demandé ou essayé de valider un trop grand nombre de mots de passe à usage unique.
OTP_EXPIRED L'OTP a expiré.