Method: associateAccount

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

La asociación de cuentas se produce después de 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. La etiqueta GPT se usa para iniciar los pagos. associationId se usa durante las llamadas de reautenticación para identificar la cuenta para la autenticación.

Si Google envía un associationId o un googlePaymentToken que el integrador ya vio durante una asociación diferente, arrojará 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
}

Una respuesta de ejemplo se ve de la siguiente manera:


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

REQUIRED: Encabezado común para todas las solicitudes

provideUserInformation

boolean

OBLIGATORIO: Se establece el valor "True" si deseamos que el integrador proporcione la dirección asociada con esta cuenta.

googlePaymentToken

string

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

Es una cadena que tiene una longitud máxima de 100 caracteres.

associationId

string

REQUIRED: Es 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.

Es una cadena que 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: requestId de la solicitud de autenticación que precede 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: Datos necesarios para verificar una OTP generada a partir de sendOtp. Solo está presente si el usuario recorrió la ruta de acceso 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)

REQUIRED: Encabezado común para todas las respuestas

paymentIntegratorAssociateAccountId

string

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

tokenExpirationTime

string (int64 format)

OPCIONAL: Milisegundos desde el ciclo de entrenamiento en el que vence el token. Usa 0 para indicar que el token no vence.

accountId

string

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

Este valor debe ser inmutable durante el ciclo de vida 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 que compartirá con Google sobre este cliente. Se usa para información de riesgos y abordar la prepropagación.

result

enum (AssociateAccountResultCode)

OBLIGATORIO: 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 por la cual el usuario conoce esta cuenta para su 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 este es solo un sufijo del sobrenombre.

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

fullAccountNickname

string

OPCIONAL: Es la cadena por la cual el usuario conoce esta cuenta para su 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 formas de pago.

UserInformation

Estructura que contiene 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: Nombre completo del cliente.

addressLine[]

string

OPCIONAL: Contiene texto no estructurado de Address.

localityName

string

OPCIONAL: Es un término aproximado, pero generalmente hace referencia a la parte de una dirección que corresponde a la ciudad o el pueblo. 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 localityName 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 Ejemplos: Estado de EE.UU., región de TI, provincia de CN, prefectura de Japón”.

postalCodeNumber

string

OPTIONAL: A pesar del 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: Número de teléfono del cliente.

emailAddress

string

OPCIONAL: Dirección de correo electrónico del cliente.

AssociateAccountResultCode

Códigos de resultado para la cuenta asociada.

Enumeraciones
UNKNOWN_RESULT No establezcas nunca este valor predeterminado.
SUCCESS La asociación se realizó correctamente.
USER_AUTHENTICATION_FAILED Si bien se devolvió 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.