Method: sendOtp

Solicita al integrador que envíe una OTP al número de teléfono.

Si el integrador muestra SUCCESS, Google espera un SMS enviado al número de teléfono.

Google proporciona solo un accountPhoneNumber cuando un usuario asocia inicialmente su cuenta con Google. Por lo tanto, solo se enviará associationId en todas las llamadas posteriores.

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

Una solicitud de ejemplo se ve de la siguiente manera:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 0,
      "revision": 0
    },
    "requestId": "0123434-otp-abc",
    "requestTimestamp": "1502545413026"
  },
  "accountPhoneNumber": "+918067218010",
  "smsMatchingToken": "AB12345678C",
  "otpContext": {
    "association": {}
  }
}

Una respuesta de ejemplo se ve de la siguiente manera:


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

Solicitud HTTP

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

Cuerpo de la solicitud

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

Representación 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)

OBLIGATORIO: Es un encabezado común para todas las solicitudes.

smsMatchingToken

string

OBLIGATORIO: Google proporciona este valor, que debe incluirse en el SMS que se envía al usuario. Esto le permite a Google hacer coincidir automáticamente el SMS en el dispositivo para dispositivos Android O (consulta la referencia). Este será de 11 caracteres.

Por ejemplo, si el SMS normalmente se ve así:

Here's the OTP you requested: <OTP>

Y Google envía "0123456789A" para este campo, entonces el SMS debería tener el siguiente aspecto:

0123456789A

Here's the OTP you requested: YYXXZZ

También puede verse de la siguiente manera:

Here's the OTP you requested: YYXXZZ

0123456789A

otpContext

object (OtpContext)

OPCIONAL: Este es el contexto en el que se solicita una OTP.

Campo de unión account_identifier. OBLIGATORIO: Este es el identificador de la cuenta para la que se debe enviar una OTP. account_identifier puede ser solo uno de los siguientes:
accountPhoneNumber

string

Este es un número de teléfono con formato E.164. Los ejemplos incluyen +14035551111 y +918067218000. Siempre llevará un signo + e incluirá solo números después (sin guiones).

Se propaga cuando un usuario asocia inicialmente su cuenta con Google y durante la reasociación.

associationId

string

Este es el identificador de asociación que se usa para hacer referencia a la cuenta de un usuario.

Se propaga para todas las llamadas posteriores después de la asociación inicial.

Cuerpo de la respuesta

Objeto de respuesta para el método sendOtp.

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

Representación JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorSendOtpId": string,
  "result": enum (SendOtpResultCode)
}
Campos
responseHeader

object (ResponseHeader)

OBLIGATORIO: Es el encabezado común para todas las respuestas.

paymentIntegratorSendOtpId

string

OPCIONAL: El identificador que el integrador reconoce como esta solicitud de envío de OTP. Esto lo genera el integrador.

result

enum (SendOtpResultCode)

OBLIGATORIO: Resultado de esta solicitud

Contexto de Otp

Contexto en el que se solicita una OTP.

Representación 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ón otp_context. OBLIGATORIO: Contexto en el que se solicita una OTP otp_context puede ser solo uno de los siguientes:
association

object (Empty)

Se solicita una OTP en el contexto de la asociación o reasociación.

mandateCreation

object (Empty)

Se solicita OTP en el contexto de la creación de un mandato.

associationWithMandateCreation

object (Empty)

Se solicita la OTP para la asociación y la creación del mandato.

Vacío

Este tipo no tiene campos.

Este objeto se usa para la extensibilidad porque los booleanos y las enumeraciones a menudo necesitan extenderse con datos adicionales. El implementador lo usa para determinar la presencia. La enumeración que representa puede extenderse para contener datos en versiones futuras.

La representación JSON de Empty es un objeto JSON vacío {}.

EnviarOtpResultCode

Códigos de resultado para enviar solicitudes de OTP.

Enumeradores
UNKNOWN_RESULT No establezcas este valor predeterminado.
SUCCESS El integrador envió la OTP.
PHONE_NUMBER_NOT_ASSOCIATED_WITH_ACCOUNT El número de teléfono no está asociado a la cuenta que identifica associationId.
UNKNOWN_PHONE_NUMBER El número de teléfono no está asociado a ninguna cuenta. Se usa cuando no se configura associationId.
MESSAGE_UNABLE_TO_BE_SENT El integrador no pudo enviar la OTP por algún motivo. Este es un error transitorio y puede provocar que se vuelva a intentar la llamada.
INVALID_PHONE_NUMBER El formato del número de teléfono era incorrecto.
NOT_ELIGIBLE La cuenta del usuario no es apta para este servicio.
OTP_LIMIT_REACHED El usuario solicitó o intentó verificar demasiadas OTP.
ACCOUNT_CLOSED

Se cerró la cuenta del usuario que tiene el integrador. Solo debe usarse cuando se usa el atributo "associationId" para identificar a este usuario.

Mostrar este valor hará que se cierre el instrumento de pago con Google. El usuario se verá obligado a agregar un instrumento nuevo nuevamente a través del flujo de asociación.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

Se cerró la cuenta del usuario que tiene el integrador y se sospecha que la cuenta tomó el control. Solo debe usarse cuando se usa el atributo "associationId" para identificar a este usuario.

Mostrar este valor hará que se cierre el instrumento de pago con Google. El usuario se verá obligado a agregar un instrumento nuevo nuevamente a través del flujo de asociación.

ACCOUNT_CLOSED_FRAUD

Se cerró la cuenta del usuario que tenía el integrador debido a un fraude. Solo debe usarse cuando se usa el atributo "associationId" para identificar a este usuario.

Mostrar este valor hará que se cierre el instrumento de pago con Google. El usuario se verá obligado a agregar un instrumento nuevo nuevamente a través del flujo de asociación.