Method: sendOtp

Solicita que o integrador envie uma OTP para o número de telefone.

Se o integrador retornar SUCCESS, o Google vai esperar que um SMS seja enviado ao número de telefone.

O Google fornece um accountPhoneNumber apenas quando um usuário associa inicialmente a própria conta ao Google. Depois disso, apenas associationId seria enviado para todas as chamadas seguintes.

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": "0123434-otp-abc",
    "requestTimestamp": "1502545413026"
  },
  "accountPhoneNumber": "+918067218010",
  "smsMatchingToken": "AB12345678C",
  "otpContext": {
    "association": {}
  }
}

Veja um exemplo de resposta:


{
  "responseHeader": {
    "responseTimestamp": "1502545413098"
  },
  "paymentIntegratorSendOtpId": "99==ABC EF",
  "result": "SUCCESS"
}

Solicitação HTTP

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

Corpo da solicitação

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

Representação JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "smsMatchingToken": string,
  "otpContext": {
    object (OtpContext)
  },

  // Union field account_identifier can be only one of the following:
  "accountPhoneNumber": string,
  "associationId": string
  // End of list of possible types for union field account_identifier.
}
Campos
requestHeader

object (RequestHeader)

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

smsMatchingToken

string

OBRIGATÓRIO: este valor é fornecido pelo Google e precisa ser incluído no SMS enviado ao usuário. Isso permite que o Google faça a correspondência automática do SMS no dispositivo nos dispositivos Android O (consulte a referência). Ele terá 11 caracteres.

Por exemplo, se o SMS normalmente for assim:

Here's the OTP you requested: <OTP>

E o Google envia "0123456789A" para este campo, o SMS será semelhante a:

0123456789A

Here's the OTP you requested: YYXXZZ

Como alternativa, poderia ser semelhante a:

Here's the OTP you requested: YYXXZZ

0123456789A

otpContext

object (OtpContext)

OPCIONAL: é o contexto em que uma OTP é solicitada.

Campo de união account_identifier. OBRIGATÓRIO: o identificador da conta que receberá uma OTP. account_identifier pode ser apenas de um dos tipos a seguir:
accountPhoneNumber

string

Este é um número de telefone no formato E.164. Por exemplo, +14035551111 e +918067218000. Isso sempre vai começar com um + e incluir apenas números depois (sem traços).

Ele é preenchido quando um usuário associa inicialmente a conta ao Google e durante a reassociação.

associationId

string

Este é o identificador de associação usado para fazer referência à conta de um usuário.

Esse conjunto é preenchido para todas as chamadas subsequentes após a associação inicial.

Corpo da resposta

Objeto de resposta para o método sendOtp.

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

Representação JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorSendOtpId": string,
  "result": enum (SendOtpResultCode)
}
Campos
responseHeader

object (ResponseHeader)

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

paymentIntegratorSendOtpId

string

OPCIONAL: identificador que o integrador conhece essa solicitação de envio de OTP. Isso é gerado pelo integrador.

result

enum (SendOtpResultCode)

OBRIGATÓRIO: resultado da solicitação

OtpContext

Contexto em que uma OTP é solicitada.

Representação JSON
{

  // Union field otp_context can be only one of the following:
  "association": {
    object (Empty)
  },
  "mandateCreation": {
    object (Empty)
  },
  "associationWithMandateCreation": {
    object (Empty)
  }
  // End of list of possible types for union field otp_context.
}
Campos
Campo de união otp_context. OBRIGATÓRIO: o contexto em que uma OTP é solicitada. otp_context pode ser apenas de um dos tipos a seguir:
association

object (Empty)

A OTP está sendo solicitada no contexto de associação/reassociação.

mandateCreation

object (Empty)

A OTP está sendo solicitada no contexto da criação da autorização.

associationWithMandateCreation

object (Empty)

A OTP está sendo solicitada para associação com a criação da autorização.

Vazio

Esse tipo não tem campos.

Esse objeto é usado para extensibilidade porque booleanos e enumerações geralmente precisam ser estendidos com dados extras. O implementador a utiliza para determinar a presença. A enumeração representada pode ser estendida para conter dados em versões futuras.

A representação JSON de Empty é o objeto JSON vazio {}.

SendOtpResultCode

Códigos de resultado para enviar uma solicitação de OTP.

Enums
UNKNOWN_RESULT Nunca defina esse valor padrão.
SUCCESS O integrador enviou a OTP.
PHONE_NUMBER_NOT_ASSOCIATED_WITH_ACCOUNT O número de telefone não está associado à conta identificada por associationId.
UNKNOWN_PHONE_NUMBER O número de telefone não está associado a nenhuma conta. Usado quando o associationId não está definido.
MESSAGE_UNABLE_TO_BE_SENT O integrador não conseguiu enviar a OTP por algum motivo. Este é um erro temporário e pode resultar em uma nova tentativa de chamada.
INVALID_PHONE_NUMBER O formato do número de telefone estava incorreto.
NOT_ELIGIBLE A conta do usuário não está qualificada para este serviço.
OTP_LIMIT_REACHED O usuário solicitou ou tentou verificar muitas OTPs.
ACCOUNT_CLOSED

A conta do usuário mantida no integrador foi encerrada. Só deve ser usado quando o campo "associationId" está sendo usado para identificar este usuário.

Se esse valor for retornado, o instrumento do usuário será fechado com o Google. O usuário será forçado a adicionar um novo instrumento passando pelo fluxo de associação novamente.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

A conta do usuário com o integrador foi encerrada e há suspeita de que a conta esteja assumida. Só deve ser usado quando o campo "associationId" está sendo usado para identificar este usuário.

Se esse valor for retornado, o instrumento do usuário será fechado com o Google. O usuário será forçado a adicionar um novo instrumento passando pelo fluxo de associação novamente.

ACCOUNT_CLOSED_FRAUD

A conta do usuário mantida no integrador foi encerrada devido a uma fraude. Só deve ser usado quando o campo "associationId" está sendo usado para identificar este usuário.

Se esse valor for retornado, o instrumento do usuário será fechado com o Google. O usuário será forçado a adicionar um novo instrumento passando pelo fluxo de associação novamente.