Method: associateAccount

Asocia la cuenta del cliente con el procesador de pagos al instrumento de Google que se agregará.

La asociación de la cuenta ocurre una vez que el integrador autentica al usuario. La asociación se produce a través de una llamada de servidor a servidor que contiene el requestId para el flujo de autenticación asociado (authenticationRequestId), un associationId y un googlePaymentToken (GPT). El procesador de pagos debe asociar el associationId y el googlePaymentToken a la cuenta del cliente para la autenticación. GPT se usa para iniciar pagos. El associationId se usa durante las llamadas de reautenticación para identificar la cuenta que se debe autenticar.

Si Google envía un associationId o un googlePaymentToken que el integrador ya vio durante una asociación diferente, se mostrará un error.

Si el extremo encuentra un error mientras procesa la solicitud, el cuerpo de la respuesta de este extremo debe ser del tipo ErrorResponse.

A continuación, se muestra una solicitud de ejemplo:


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

Esta es una respuesta de ejemplo:


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

Solicitud HTTP

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

Cuerpo de la solicitud

El cuerpo de la solicitud contiene datos con la siguiente estructura:

Representación 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.
}
Campos
requestHeader

object (RequestHeader)

OBLIGATORIO: Encabezado común para todas las solicitudes

provideUserInformation

boolean

OBLIGATORIO: Es verdadero si queremos que el integrador proporcione la dirección asociada con esta cuenta.

googlePaymentToken

string

OBLIGATORIO: Es el token que usará Google para iniciar compras con el procesador de pagos.

Esta string tiene una longitud máxima de 100 caracteres.

associationId

string

REQUIRED: El identificador de esta asociación. Google crea este identificador y se envía durante los flujos de reautenticación para identificar qué cuenta se debe autenticar.

Esta string tiene una longitud máxima de 100 caracteres.

Campo de unión account_verification.

account_verification puede ser una de las siguientes opciones:

authenticationRequestId

string

OPCIONAL: El requestId de la solicitud de autenticación que antecedió a esta llamada. Google generó este identificador durante el flujo de autenticación. Esto solo está presente si el usuario pasó por la autenticación de la app para Android, la autenticación web o un método de autenticación asíncrono que usa authenticationResultNotification.

otpVerification

object (OtpVerification)

OPCIONAL: Son los datos necesarios para verificar una OTP generada desde sendOtp. Esto solo está presente si el usuario pasó por la ruta sendOtp.

Cuerpo de la respuesta

Objeto de respuesta para el método de cuenta asociada.

Si se ejecuta correctamente, el cuerpo de la respuesta contendrá datos con la siguiente estructura:

Representación 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.
}
Campos
responseHeader

object (ResponseHeader)

OBLIGATORIO: Encabezado común para todas las respuestas

paymentIntegratorAssociateAccountId

string

OBLIGATORIO: Este identificador es específico del integrador y lo genera este. Se utiliza con fines de depuración únicamente para identificar esta llamada. Este es el identificador por el cual el integrador conoce esta llamada.

tokenExpirationTime

string (int64 format)

OPTIONAL: Milisegundos desde la época en la que vence el token. Usa 0 para indicar que el token no vence.

accountId

string

OBLIGATORIO: Es el ID de la cuenta que el usuario tiene con el integrador. Esto se utiliza para que Google corra el riesgo de comprender la reutilización y las relaciones de las cuentas, y los agentes operativos de Google para ayudar a los clientes a diagnosticar problemas. Este identificador debe ser reconocible para el usuario (por ejemplo, el usuario conoce este ID porque aparece en su estado o en el sitio web después de acceder a la cuenta).

Este valor debe ser inmutable durante la vigencia de la cuenta.

userMessage
(deprecated)

string

OBSOLETO: Es una descripción del resultado que se le mostrará al usuario si el resultado no es SUCCESS.

userInformation

object (UserInformation)

OBLIGATORIO: Es la información del usuario que el integrador conoce y compartirá con Google sobre este cliente. Se utiliza para la información de riesgos y para abordar la prepropagación.

result

enum (AssociateAccountResultCode)

REQUIRED: Es el resultado de esta asociación.

Campo de unión account_names.

account_names puede ser una de las siguientes opciones:

accountNickname

string

OPCIONAL: Es la cadena mediante la cual el usuario conoce esta cuenta con fines de visualización. Este es un sufijo del sobrenombre de la cuenta. Por ejemplo, los últimos cuatro dígitos de un número de teléfono. Google indicará en la interfaz de usuario que esto es solo un sufijo del sobrenombre.

Este valor se mostrará en IUs, como el flujo de compra, para permitir que el usuario distinga entre distintas formas de pago.

fullAccountNickname

string

OPCIONAL: Es la cadena mediante la cual el usuario conoce esta cuenta con fines de visualización. A diferencia de accountNickname, este es el sobrenombre completo de la cuenta. Por ejemplo, 56565-56501 para un número de teléfono o sally@sample-email.com para una identidad de correo electrónico.

Este valor se mostrará en IUs, como el flujo de compra, para permitir que el usuario distinga entre distintas formas de pago.

UserInformation

Es la estructura que contiene la información sobre un usuario.

Representación JSON
{
  "name": string,
  "addressLine": [
    string
  ],
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string,
  "phone": string,
  "emailAddress": string
}
Campos
name

string

OPCIONAL: El nombre completo del cliente.

addressLine[]

string

OPTIONAL: Contiene un texto de dirección no estructurado.

localityName

string

OPCIONAL: Este es un término confuso, pero, por lo general, hace referencia a la parte de ciudad o pueblo de una dirección. En regiones del mundo donde las localidades no están bien definidas o no se ajustan bien a esta estructura (por ejemplo, Japón y China), deja el valor LocalName vacío y usa addressLine.

Ejemplos: ciudad de EE.UU., comuna de Italia o ciudad postal en el Reino Unido.

administrativeAreaName

string

OPCIONAL: Subdivisión administrativa de nivel superior de este país; por ejemplo, estado de EE.UU., región de TI, provincia de CN, prefectura de Japón".

postalCodeNumber

string

OPTIONAL: A pesar de su nombre, los valores postalCodeNumber suelen ser alfanuméricos. Ejemplos: “94043”, “SW1W” o “SW1W 9TQ”.

countryCode

string

OPCIONAL: Es el código de país de la dirección del cliente, que se espera que sea ISO-3166-1 Alfa-2.

phone

string

OPCIONAL: El número de teléfono del cliente.

emailAddress

string

OPCIONAL: La dirección de correo electrónico del cliente.

AssociateAccountResultCode

Códigos de resultado de la cuenta asociada

Enumeradores
UNKNOWN_RESULT No establezcas nunca este valor predeterminado.
SUCCESS La asociación se realizó correctamente.
USER_AUTHENTICATION_FAILED Aunque se mostró el paquete de autenticación de la cuenta, la autenticación del usuario falló.
NOT_ELIGIBLE La cuenta del usuario no es apta para este servicio.
OTP_NOT_MATCHED La OTP no coincidió con lo que envió el integrador.
OTP_ALREADY_USED Ya se usó la OTP.
OTP_LIMIT_REACHED El usuario solicitó o intentó verificar demasiadas OTP.
OTP_EXPIRED Venció la OTP.