Method: associateAccount

Associa a conta do cliente com o processador de pagamentos ao instrumento do Google que está sendo adicionado.

A associação de contas acontece depois que o integrador autentica o usuário. A associação ocorre por uma chamada de servidor para servidor que contém o requestId para o fluxo de autenticação associado (authenticationRequestId), um associationId e um googlePaymentToken (GPT). O processador de pagamentos precisa associar o associationId e o googlePaymentToken à conta do cliente para autenticação. A GPT é usada para iniciar pagamentos. O associationId é usado durante as chamadas de reautenticação para identificar a conta que será usada.

Se o Google enviar uma associationId ou uma googlePaymentToken que o integrador já encontrou durante uma associação diferente, um erro será gerado.

Se o endpoint encontrar um erro ao processar a solicitação, o corpo da resposta dele precisará ser do tipo ErrorResponse.

Um exemplo de solicitação é semelhante a este:


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

Veja um exemplo de resposta:


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

Solicitação HTTP

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

Corpo da solicitação

O corpo da solicitação contém dados com a seguinte estrutura:

Representação 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)

OBRIGATÓRIO: cabeçalho comum para todas as solicitações.

provideUserInformation

boolean

OBRIGATÓRIO: verdadeiro se quisermos que o integrador forneça o endereço associado a essa conta.

googlePaymentToken

string

OBRIGATÓRIO: o token que o Google usará para iniciar compras com o processador de pagamentos.

Essa string tem tamanho máximo de 100 caracteres.

associationId

string

OBRIGATÓRIO: o identificador dessa associação. Esse identificador é criado pelo Google e enviado durante os fluxos de reautenticação para identificar qual conta precisa ser autenticada.

Essa string tem tamanho máximo de 100 caracteres.

Campo de união account_verification.

account_verification pode ser apenas de um dos tipos a seguir:

authenticationRequestId

string

OPCIONAL: requestId da solicitação de autenticação que precedeu essa chamada. Esse identificador foi gerado pelo Google durante o fluxo de autenticação. Isso só estará presente se o usuário tiver passado pela autenticação do app Android, da Web ou de um método assíncrono que usa authenticationResultNotification.

otpVerification

object (OtpVerification)

OPCIONAL: dados necessários para verificar uma OTP gerada por sendOtp. Isso só estará presente se o usuário tiver passado pelo caminho sendOtp.

Corpo da resposta

Objeto de resposta para o método de conta associada.

Se bem-sucedido, o corpo da resposta incluirá dados com a estrutura a seguir:

Representação 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)

OBRIGATÓRIO: cabeçalho comum para todas as respostas.

paymentIntegratorAssociateAccountId

string

OBRIGATÓRIO: esse identificador é específico e gerado pelo integrador. Ele é usado para fins de depuração apenas para identificar essa chamada. O integrador conhece essa chamada pelo identificador.

tokenExpirationTime

string (int64 format)

OPCIONAL: milissegundos desde a época em que o token expira. Use 0 para sinalizar que o token não expira.

accountId

string

OBRIGATÓRIO: o ID da conta que o usuário tem no integrador. Isso é usado para que o Google entenda a reutilização e as relações entre contas, além de agentes de operações do cliente do Google para ajudar os clientes a diagnosticar problemas. Esse identificador deve ser reconhecido pelo usuário (por exemplo, o usuário conhece esse ID porque ele aparece no extrato ou no site depois de fazer login na conta).

Esse valor não pode ser alterado durante a vida útil da conta.

userMessage
(deprecated)

string

DESCONTINUADO: uma descrição do resultado que será mostrada ao usuário se o resultado não for SUCCESS.

userInformation

object (UserInformation)

OBRIGATÓRIO: informações do usuário que o integrador conhece e vai compartilhar com o Google sobre esse cliente. Usado para informações de risco e aborda o preenchimento automático.

result

enum (AssociateAccountResultCode)

OBRIGATÓRIO: resultado da associação.

Campo de união account_names.

account_names pode ser apenas de um dos tipos a seguir:

accountNickname

string

OPCIONAL: string em que o usuário conhece essa conta para fins de exibição. Esse é um sufixo do apelido da conta. Por exemplo, os últimos quatro dígitos de um número de telefone. O Google vai indicar na interface do usuário que isso é apenas um sufixo do apelido.

Esse valor será exibido em interfaces, como o fluxo de compra, para permitir que o usuário diferencie as formas de pagamento.

fullAccountNickname

string

OPCIONAL: string em que o usuário conhece essa conta para fins de exibição. Ao contrário de accountNickname, esse é o apelido completo da conta. Por exemplo, 56565-56501 para um número de telefone ou sally@sample-email.com para uma identidade de e-mail.

Esse valor será exibido em interfaces, como o fluxo de compra, para permitir que o usuário diferencie as formas de pagamento.

UserInformation

Estrutura com informações sobre um usuário.

Representação JSON
{
  "name": string,
  "addressLine": [
    string
  ],
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string,
  "phone": string,
  "emailAddress": string
}
Campos
name

string

OPCIONAL: nome completo do cliente.

addressLine[]

string

OPCIONAL: contém texto de endereço não estruturado.

localityName

string

OPCIONAL: é um termo impreciso, mas geralmente se refere à parte da cidade de um endereço. Em regiões do mundo onde as localidades não são bem definidas ou não se encaixam bem nessa estrutura (por exemplo, Japão e China), deixe localeName em branco e use addressLine.

Exemplos: cidade nos EUA, comunidade na Itália, distrito postal no Reino Unido.

administrativeAreaName

string

OPCIONAL: subdivisão administrativa de nível superior do país Exemplos: estado dos EUA, região da Itália, província da China, prefeitura do Japão."

postalCodeNumber

string

OPCIONAL: apesar do nome, os valores postalCodeNumber costumam ser alfanuméricos. Exemplos: "94043", "SW1W", "SW1W 9TQ".

countryCode

string

OPCIONAL: código de país do endereço do cliente, que precisa ser ISO-3166-1 Alpha-2.

phone

string

OPCIONAL: número de telefone do cliente.

emailAddress

string

OPCIONAL: endereço de e-mail do cliente.

AssociateAccountResultCode

Códigos de resultados da conta associada.

Enums
UNKNOWN_RESULT Nunca defina esse valor padrão.
SUCCESS Associação bem-sucedida.
USER_AUTHENTICATION_FAILED Embora o pacote de autenticação da conta tenha sido retornado, a autenticação do usuário falhou.
NOT_ELIGIBLE A conta do usuário não está qualificada para este serviço.
OTP_NOT_MATCHED A OTP não correspondeu ao que o integrador enviou.
OTP_ALREADY_USED A OTP já foi usada.
OTP_LIMIT_REACHED O usuário solicitou ou tentou verificar muitas OTPs.
OTP_EXPIRED A OTP expirou.