Method: sendOtp

Demande à l'intégrateur d'envoyer un mot de passe à usage unique au numéro de téléphone.

Si l'intégrateur renvoie SUCCESS, Google s'attend à ce qu'un SMS soit envoyé au numéro de téléphone.

Google ne fournit un accountPhoneNumber que lorsqu'un utilisateur associe initialement son compte à Google. Ensuite, seul associationId serait envoyé pour tous les appels suivants.

Si le point de terminaison rencontre une erreur lors du traitement de la requête, le corps de la réponse de ce point de terminaison doit être de type ErrorResponse.

Exemple de requête:


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

Exemple de réponse:


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

Requête HTTP :

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

Corps de la requête

Le corps de la requête contient des données présentant la structure suivante :

Représentation 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.
}
Champs
requestHeader

object (RequestHeader)

REQUIRED: en-tête commun à toutes les requêtes.

smsMatchingToken

string

REQUIRED: cette valeur est fournie par Google et doit être incluse dans le SMS envoyé à l'utilisateur. Cela permet à Google de faire correspondre automatiquement le SMS sur l'appareil Android O (voir la référence). Cela représente 11 caractères.

Par exemple, si le SMS ressemble généralement à ceci:

Here's the OTP you requested: <OTP>

Et si Google envoie "0123456789A" à ce champ, le SMS devrait ressembler à ceci:

0123456789A

Here's the OTP you requested: YYXXZZ

Voici un exemple:

Here's the OTP you requested: YYXXZZ

0123456789A

otpContext

object (OtpContext)

FACULTATIF: il s'agit du contexte dans lequel un OTP est demandé.

Champ d'union account_identifier. OBLIGATOIRE: il s'agit de l'identifiant du compte pour lequel un mot de passe à usage unique doit être envoyé. La account_identifier ne peut être qu'un des éléments suivants :
accountPhoneNumber

string

Il s'agit d'un numéro de téléphone au format E.164. Exemples : +14035551111 et +918067218000. Le signe "+" est alors toujours ajouté, suivi des chiffres (pas de tirets).

Ce champ est renseigné lorsqu'un utilisateur associe son compte à Google lors de la réassociation.

associationId

string

Il s'agit de l'identifiant d'association utilisé pour référencer le compte d'un utilisateur.

Valeur renseignée pour tous les appels suivants après l'association initiale

Corps de la réponse

Objet de réponse pour la méthode sendOtp.

Si la requête aboutit, le corps de la réponse contient des données qui ont la structure suivante :

Représentation JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorSendOtpId": string,
  "result": enum (SendOtpResultCode)
}
Champs
responseHeader

object (ResponseHeader)

REQUIRED: en-tête commun pour toutes les réponses.

paymentIntegratorSendOtpId

string

FACULTATIF: identifiant de l'intégrateur envoyé pour cette requête d'envoi de mot de passe à usage unique. Il est généré par l'intégrateur.

result

enum (SendOtpResultCode)

REQUIRED: résultat de cette requête

Contexte OTP

Contexte dans lequel un OTP est demandé.

Représentation 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.
}
Champs
Champ d'union otp_context. REQUIRED: contexte dans lequel un OTP est demandé. La otp_context ne peut être qu'un des éléments suivants :
association

object (Empty)

L'OTP est demandé dans le contexte de l'association ou de la réassociation.

mandateCreation

object (Empty)

Le mot de passe à usage unique est demandé dans le cadre de la création du mandat.

associationWithMandateCreation

object (Empty)

L'association et la création du mandat sont demandées.

Vide

Ce type ne comporte aucun champ.

Cet objet est utilisé pour l'extensibilité, car les valeurs booléennes et les énumérations doivent souvent être étendues avec des données supplémentaires. Le responsable de l'implémentation l'utilise pour déterminer la présence. L'énumération que vous représentez peut être étendue pour contenir des données dans les futures versions.

La représentation JSON pour Empty est un objet JSON vide {}.

Envoyer le code OtpResult

Codes de résultat pour l'envoi de la requête OTP.

Enums
UNKNOWN_RESULT Ne définissez jamais cette valeur par défaut.
SUCCESS L'intégrateur a envoyé le mot de passe à usage unique.
PHONE_NUMBER_NOT_ASSOCIATED_WITH_ACCOUNT Le numéro de téléphone n'est pas associé au compte identifié par associationId.
UNKNOWN_PHONE_NUMBER Le numéro de téléphone n'est associé à aucun compte. Utilisée lorsque associationId n'est pas défini.
MESSAGE_UNABLE_TO_BE_SENT L'intégrateur n'a pas pu envoyer le mot de passe à usage unique pour une raison inconnue. Il s'agit d'une erreur temporaire qui peut entraîner une nouvelle tentative de l'appel.
INVALID_PHONE_NUMBER Le format du numéro de téléphone était incorrect.
NOT_ELIGIBLE Le compte de l'utilisateur n'est pas éligible pour ce service.
OTP_LIMIT_REACHED L'utilisateur a demandé ou essayé de valider un trop grand nombre de mots de passe à usage unique.
ACCOUNT_CLOSED

Le compte de l'utilisateur associé à l'intégrateur a été clôturé. Ce champ ne doit être utilisé que pour identifier l'utilisateur grâce à "associationId".

Si vous renvoyez cette valeur, l'instrument de l'utilisateur sera fermé avec Google. L'utilisateur sera contraint d'ajouter un nouvel instrument en suivant à nouveau le flux d'association.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

Le compte de l'utilisateur associé à l'intégrateur a été clôturé. Il risque d'être piraté. Ce champ ne doit être utilisé que pour identifier l'utilisateur grâce à "associationId".

Si vous renvoyez cette valeur, l'instrument de l'utilisateur sera fermé avec Google. L'utilisateur sera contraint d'ajouter un nouvel instrument en suivant à nouveau le flux d'association.

ACCOUNT_CLOSED_FRAUD

Le compte de l'utilisateur détenu par l'intégrateur a été clôturé pour cause de fraude. Ce champ ne doit être utilisé que pour identifier l'utilisateur grâce à "associationId".

Si vous renvoyez cette valeur, l'instrument de l'utilisateur sera fermé avec Google. L'utilisateur sera contraint d'ajouter un nouvel instrument en suivant à nouveau le flux d'association.