Method: associateAccount

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

L'association des comptes se produit une fois que l'intégrateur a authentifié l'utilisateur. L'association se produit via un appel de serveur à serveur contenant le requestId pour le flux d'authentification associé (authenticationRequestId), un associationId et un googlePaymentToken (GPT). La société de traitement des paiements doit associer les associationId et googlePaymentToken au compte du client à des fins d'authentification. Le tag GPT sert à effectuer les paiements. Le associationId est utilisé lors des appels de réauthentification afin d'identifier le compte pour l'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 à toutes les requêtes.

provideUserInformation

boolean

OBLIGATOIRE : "True" si nous souhaitons que l'intégrateur fournit 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 qui a précédé cet appel. Cet identifiant a été généré par Google lors du processus d'authentification. Il n'est présent que si l'utilisateur a effectué l'authentification pour l'application Android, l'authentification Web ou une méthode d'authentification asynchrone utilisant authenticationResultNotification.

otpVerification

object (OtpVerification)

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

Corps de la réponse

Objet de réponse pour la méthode du 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 à toutes les réponses.

paymentIntegratorAssociateAccountId

string

OBLIGATOIRE: cet identifiant est spécifique à l'intégrateur et est généré par celui-ci. 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, lorsque le jeton expire. Utilisez 0 pour signaler que le jeton n'expire pas.

accountId

string

OBLIGATOIRE: ID du compte dont dispose l'utilisateur auprès de l'intégrateur. Ces informations sont utilisées pour évaluer les risques chez Google afin de comprendre la réutilisation des comptes et les relations qui les unissent, ainsi que pour aider les clients à diagnostiquer les problèmes grâce aux agents Google chargés des opérations client. Cet identifiant doit être reconnaissable par l'utilisateur (par exemple, l'utilisateur doit le connaître parce qu'il apparaît sur son relevé ou sur le site Web une fois qu'il s'est connecté au 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 transmettra à Google au sujet 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 par 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 sera affichée dans des interfaces utilisateur telles que le parcours d'achat pour permettre à l'utilisateur de faire la distinction entre les modes de paiement.

fullAccountNickname

string

FACULTATIF: chaîne par 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 sera affichée dans des interfaces utilisateur telles que le parcours d'achat pour permettre à l'utilisateur de faire la distinction entre les modes de paiement.

UserInformation

Structure contenant des 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 manque généralement de précision, mais il fait généralement référence à la partie ville/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 (Japon et Chine, par exemple), laissez le champ localityName vide et utilisez addressLine.

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

administrativeAreaName

string

FACULTATIF: Subdivision administrative de niveau supérieur de ce pays Exemples: État des États-Unis, région d'Italie, 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, au format 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 du 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 pour ce service.
OTP_NOT_MATCHED Le mot de passe à usage unique 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 tenté de valider un trop grand nombre de mots de passe à usage unique.
OTP_EXPIRED Le mot de passe à usage unique a expiré.