Method: sendOtp

L'integratore richiede l'invio di una OTP al numero di telefono.

Se l'integratore restituisce SUCCESS, Google si aspetta che un SMS venga inviato al numero di telefono.

Google fornisce un accountPhoneNumber solo quando un utente associa inizialmente il proprio account a Google. In seguito, verranno inviate solo associationId per tutte le chiamate successive.

Se si verifica un errore durante l'elaborazione della richiesta, il corpo della risposta di questo endpoint deve essere di tipo ErrorResponse.

Una richiesta di esempio ha il seguente aspetto:


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

Un esempio di risposta è:


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

Richiesta HTTP

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

Corpo della richiesta

Il corpo della richiesta contiene dati con la seguente struttura:

Rappresentazione 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.
}
Campi
requestHeader

object (RequestHeader)

REQUIRED: intestazione comune per tutte le richieste.

smsMatchingToken

string

REQUIRED: questo valore è fornito da Google e deve essere incluso negli SMS inviati all'utente. In questo modo Google può trovare una corrispondenza automatica per il dispositivo Android O (vedi riferimento). Si tratta di 11 caratteri.

Ad esempio, se normalmente l'SMS aveva il seguente aspetto:

Here's the OTP you requested: <OTP>

Google invia "0123456789A" per questo campo, quindi l'SMS dovrebbe avere il seguente aspetto:

0123456789A

Here's the OTP you requested: YYXXZZ

In alternativa potrebbe avere il seguente aspetto:

Here's the OTP you requested: YYXXZZ

0123456789A

otpContext

object (OtpContext)

OPTIONAL: il contesto in cui viene richiesta una OTP.

Campo unione account_identifier. REQUIRED: è l'identificatore dell'account a cui deve essere inviata una OTP. account_identifier può essere solo uno dei seguenti:
accountPhoneNumber

string

Questo è un numero di telefono in formato E.164. Gli esempi includono +14035551111 e +918067218000. Sarà sempre preceduto da + e include solo i numeri successivi (senza trattini).

Questo campo viene completato quando un utente associa inizialmente il proprio account a Google e durante la riassociazione.

associationId

string

Si tratta dell'identificatore dell'associazione utilizzato come riferimento per l'account di un utente.

Il campo viene completato per tutte le chiamate successive dopo l'associazione iniziale.

Corpo della risposta

Oggetto della risposta per il metodo sendOtp.

In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorSendOtpId": string,
  "result": enum (SendOtpResultCode)
}
Campi
responseHeader

object (ResponseHeader)

REQUIRED: intestazione comune per tutte le risposte.

paymentIntegratorSendOtpId

string

FACOLTATIVO: identifica come l'integratore sa che questa richiesta di OTP è stata inviata. Si tratta di un integratore generato.

result

enum (SendOtpResultCode)

REQUIRED: risultato della richiesta.

Contesto Otp

Contesto in cui viene richiesta una OTP.

Rappresentazione 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.
}
Campi
Campo unione otp_context. REQUIRED: contesto in cui viene richiesta una OTP. otp_context può essere solo uno dei seguenti:
association

object (Empty)

La OTP viene richiesta nel contesto dell'associazione/riassociazione.

mandateCreation

object (Empty)

La richiesta OTP viene richiesta nel contesto della creazione del mandato.

associationWithMandateCreation

object (Empty)

È in corso la richiesta di associazione dell'OTP insieme alla creazione di mandato.

Vuoto

Questo tipo non contiene campi.

Questo oggetto viene utilizzato per l'estensibilità, poiché i valori booleani e le enumerazioni devono essere spesso estesi con dati aggiuntivi. L'implementatore lo utilizza per determinare la presenza in casa. L'enumerazione che rappresenta potrebbe essere estesa per contenere i dati nelle versioni future.

La rappresentazione JSON per Empty è un oggetto JSON vuoto {}.

Codice risultato OTp

Codici risultato per l'invio di una richiesta OTP.

Enum
UNKNOWN_RESULT Non impostare questo valore predefinito.
SUCCESS L'integratore ha inviato l'OTP.
PHONE_NUMBER_NOT_ASSOCIATED_WITH_ACCOUNT Il numero di telefono non è associato all'account identificato da associationId.
UNKNOWN_PHONE_NUMBER Il numero di telefono non è associato ad alcun account. Viene utilizzato quando associationId non è impostato.
MESSAGE_UNABLE_TO_BE_SENT L'integratore non è riuscito a inviare la OTP per qualche motivo. Questo è un errore temporaneo e potrebbe causare un nuovo tentativo di chiamata.
INVALID_PHONE_NUMBER Il formato del numero di telefono non era corretto.
NOT_ELIGIBLE L'account utente non è idoneo per questo servizio.
OTP_LIMIT_REACHED L'utente ha richiesto o ha provato a verificare troppe OTP.
ACCOUNT_CLOSED

L'account dell'utente interessato dall'integratore è stato chiuso. Questo deve essere utilizzato solo quando l'"associationId" viene usato per identificare l'utente.

Se restituisci questo valore, lo strumento dell'utente verrà chiuso con Google. L'utente sarà costretto ad aggiungere un nuovo strumento attraversando nuovamente la procedura di associazione.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

L'account dell'utente con l'integratore è stato chiuso, il sospetto sospetto di violazione dell'account. Questo deve essere utilizzato solo quando l'"associationId" viene usato per identificare l'utente.

Se restituisci questo valore, lo strumento dell'utente verrà chiuso con Google. L'utente sarà costretto ad aggiungere un nuovo strumento attraversando nuovamente la procedura di associazione.

ACCOUNT_CLOSED_FRAUD

L'account dell'utente in possesso dell'integratore è stato chiuso a causa di attività fraudolente. Questo deve essere utilizzato solo quando l'"associationId" viene usato per identificare l'utente.

Se restituisci questo valore, lo strumento dell'utente verrà chiuso con Google. L'utente sarà costretto ad aggiungere un nuovo strumento attraversando nuovamente la procedura di associazione.