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 à recevoir un SMS au numéro de téléphone.

Google fournit uniquement un accountPhoneNumber lorsqu'un utilisateur associe initialement son compte à Google. Par la suite, seul associationId sera 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.

Voici un exemple de requête:


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

Voici un 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)

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

smsMatchingToken

string

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

Par exemple, si le SMS se présente normalement comme suit:

Here's the OTP you requested: <OTP>

Et Google envoie "0123456789A". pour ce champ, le SMS doit ressembler à ce qui suit:

0123456789A

Here's the OTP you requested: YYXXZZ

Sinon, il pourrait se présenter comme suit:

Here's the OTP you requested: YYXXZZ

0123456789A

otpContext

object (OtpContext)

FACULTATIF: il s'agit du contexte dans lequel un mot de passe à usage unique est demandé.

Champ d'union account_identifier. OBLIGATOIRE: il s'agit de l'identifiant du compte pour lequel un OTP 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. Cette action est toujours précédée d'un signe + et n'inclut que les chiffres qui suivent (sans tirets).

Ce champ est renseigné lorsqu'un utilisateur associe initialement son compte à Google et 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.

Ce champ est renseigné 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)

OBLIGATOIRE: en-tête commun à toutes les réponses.

paymentIntegratorSendOtpId

string

FACULTATIF: Identifiez l'intégrateur sous lequel la demande de mot de passe à usage unique est envoyée. Il s'agit d'un code généré par un intégrateur.

result

enum (SendOtpResultCode)

OBLIGATOIRE: résultat de cette requête.

OtpContext

Contexte dans lequel un mot de passe à usage unique 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. OBLIGATOIRE: contexte dans lequel un mot de passe à usage unique est demandé. La otp_context ne peut être qu'un des éléments suivants :
association

object (Empty)

La demande de mot de passe à usage unique est demandée dans le cadre d'une association/réassociation.

mandateCreation

object (Empty)

L'OTP est demandé lors de la création du mandat.

associationWithMandateCreation

object (Empty)

Une demande d'association de mot de passe à usage unique est demandée en même temps que la création du mandat.

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 la mise en œuvre l'utilise pour déterminer la présence. L'énumération qu'il représente peut être étendue pour contenir des données dans les versions futures.

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

SendOtpResultCode

Codes de résultat pour la requête d'envoi de mot de passe à usage unique.

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. Il est utilisé lorsque associationId n'est pas défini.
MESSAGE_UNABLE_TO_BE_SENT L'intégrateur n'a pas pu envoyer l'OTP pour une raison inconnue. Il s'agit d'une erreur temporaire qui peut entraîner de nouvelles tentatives d'appel.
INVALID_PHONE_NUMBER Le format du numéro de téléphone est incorrect.
NOT_ELIGIBLE Le compte de l'utilisateur n'est pas éligible pour ce service.
OTP_LIMIT_REACHED L'utilisateur a demandé ou tenté de valider un trop grand nombre de mots de passe à usage unique.
ACCOUNT_CLOSED

Le compte de l'utilisateur détenu par l'intégrateur a été clôturé. N'utilisez ce paramètre que si "associationId" est utilisé pour identifier cet utilisateur.

Le renvoi de cette valeur entraîne la clôture du mode de paiement de l'utilisateur auprès de Google. L'utilisateur sera obligé d'ajouter un nouvel instrument en reprenant le flux d'association.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

Le compte de l'utilisateur associé à l'intégrateur a été clôturé. Le compte a probablement été piraté. N'utilisez ce paramètre que si "associationId" est utilisé pour identifier cet utilisateur.

Le renvoi de cette valeur entraîne la clôture du mode de paiement de l'utilisateur auprès de Google. L'utilisateur sera obligé d'ajouter un nouvel instrument en reprenant le flux d'association.

ACCOUNT_CLOSED_FRAUD

Le compte de l'utilisateur détenu par l'intégrateur a été clôturé pour fraude. N'utilisez ce paramètre que si "associationId" est utilisé pour identifier cet utilisateur.

Le renvoi de cette valeur entraîne la clôture du mode de paiement de l'utilisateur auprès de Google. L'utilisateur sera obligé d'ajouter un nouvel instrument en reprenant le flux d'association.