Method: sendOtp

Chiede all'integratore di inviare una OTP al numero di telefono.

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

Google fornisce un valore accountPhoneNumber solo quando un utente associa inizialmente il proprio account a Google. Dopodiché, per tutte le chiamate successive viene inviato solo associationId.

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

Ecco un esempio di richiesta:


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

Ecco 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 nell'SMS inviato all'utente. In questo modo Google può associare automaticamente l'SMS sul dispositivo per i dispositivi Android O (consulta la documentazione di riferimento ). Deve contenere 11 caratteri.

Ad esempio, se normalmente l'SMS è simile al:

Here's the OTP you requested: <OTP>

E Google invia "0123456789A" per questo campo, 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)

FACOLTATIVO: questo è il contesto in cui viene richiesta una OTP.

Campo unione account_identifier. REQUIRED: si tratta dell'identificatore dell'account a cui inviare 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. Questa opzione inizierà sempre con un + e includerà solo numeri (senza trattini).

Il campo viene compilato quando un utente associa per la prima volta il proprio account a Google e durante la riassociazione.

associationId

string

L'identificatore di associazione utilizzato per fare riferimento all'account di un utente.

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

Corpo della risposta

Oggetto di 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: identificatore utilizzato dall'integratore per l'invio della richiesta OTP. Questo è stato generato dall'integratore.

result

enum (SendOtpResultCode)

REQUIRED: il risultato della richiesta

OtpContext

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: il contesto in cui viene richiesta una OTP. otp_context può essere solo uno dei seguenti:
association

object (Empty)

È stata richiesta una OTP nel contesto dell'associazione/riassociazione.

mandateCreation

object (Empty)

Richiesta di OTP nell'ambito della creazione del mandato.

associationWithMandateCreation

object (Empty)

È stata richiesta l'associazione della OTP insieme alla creazione del mandato.

Vuoto

Questo tipo non contiene campi.

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

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

SendOtpResultCode

Codici risultato per l'invio di una richiesta OTP.

Enum
UNKNOWN_RESULT Non impostare mai 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 ha potuto inviare la OTP per un motivo non determinato. Si tratta di un errore temporaneo che potrebbe comportare un nuovo tentativo di questa chiamata.
INVALID_PHONE_NUMBER Il formato del numero di telefono non era corretto.
NOT_ELIGIBLE L'account dell'utente non è idoneo per questo servizio.
OTP_LIMIT_REACHED L'utente ha richiesto o provato a verificare troppe OTP.
ACCOUNT_CLOSED

L'account dell'utente presso l'integratore è stato chiuso. Deve essere utilizzato solo quando "associationId" viene utilizzato 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 ripetendo il flusso di associazione.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

L'account dell'utente con l'integratore è stato chiuso e si è verificata una presenza di presunte violazioni dell'account. Deve essere utilizzato solo quando "associationId" viene utilizzato 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 ripetendo il flusso di associazione.

ACCOUNT_CLOSED_FRAUD

L'account dell'utente presso l'integratore è stato chiuso a causa di attività fraudolente. Deve essere utilizzato solo quando "associationId" viene utilizzato 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 ripetendo il flusso di associazione.