Method: sendOtp

Fordert den Integrator auf, ein OTP an die Telefonnummer zu senden.

Wenn der Integrator SUCCESS zurückgibt, erwartet Google, dass eine SMS an die Telefonnummer gesendet wird.

Google stellt nur dann eine accountPhoneNumber bereit, wenn ein Nutzer sein Konto zum ersten Mal mit Google verknüpft. Danach wird für alle nachfolgenden Aufrufe nur associationId gesendet.

Wenn am Endpunkt bei der Verarbeitung der Anfrage ein Fehler auftritt, sollte der Antworttext von diesem Endpunkt den Typ ErrorResponse haben.

Eine Beispielanfrage sieht so aus:


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

Eine Beispielantwort sieht so aus:


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

HTTP-Anfrage

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

Anfragetext

Der Anfragetext enthält Daten mit folgender Struktur:

JSON-Darstellung
{
  "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.
}
Felder
requestHeader

object (RequestHeader)

ERFORDERLICH: Gemeinsamer Header für alle Anfragen.

smsMatchingToken

string

ERFORDERLICH: Dieser Wert wird von Google bereitgestellt und muss in der SMS enthalten sein, die an den Nutzer gesendet werden. So kann Google die SMS auf dem Gerät automatisch für Android O-Geräte abgleichen (siehe Referenz). Das sind 11 Zeichen.

Wenn die SMS normalerweise wie folgt aussieht:

Here's the OTP you requested: <OTP>

Und Google sendet „0123456789A“ für dieses Feld, dann sollte die SMS so aussehen:

0123456789A

Here's the OTP you requested: YYXXZZ

Alternativ könnte er auch so aussehen:

Here's the OTP you requested: YYXXZZ

0123456789A

otpContext

object (OtpContext)

OPTIONAL: Dies ist der Kontext, in dem ein OTP angefordert wird.

Union-Feld account_identifier. ERFORDERLICH: Das ist die Konto-ID, für die ein OTP gesendet werden muss. Für account_identifier ist nur einer der folgenden Werte zulässig:
accountPhoneNumber

string

Dies ist eine Telefonnummer im E.164-Format. Beispiele: +14035551111 und +918067218000. Dieser beginnt immer mit einem Pluszeichen und beinhaltet danach nur Zahlen (keine Bindestriche).

Dieses Feld wird erfasst, wenn ein Nutzer sein Konto zum ersten Mal mit Google verknüpft und während der erneuten Verknüpfung.

associationId

string

Dies ist die Verknüpfungs-ID, die verwendet wird, um auf das Konto eines Nutzers zu verweisen.

Dieses Feld wird für alle nachfolgenden Aufrufe nach der ersten Verknüpfung ausgefüllt.

Antworttext

Antwortobjekt für die sendOtp-Methode.

Bei Erfolg enthält der Antworttext Daten mit der folgenden Struktur:

JSON-Darstellung
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorSendOtpId": string,
  "result": enum (SendOtpResultCode)
}
Felder
responseHeader

object (ResponseHeader)

ERFORDERLICH: Gemeinsamer Header für alle Antworten.

paymentIntegratorSendOtpId

string

OPTIONAL: Kennung, die dem Integrator bekannt ist, um die OTP-Anfrage zu senden. Dies wird von einem Integrator generiert.

result

enum (SendOtpResultCode)

REQUIRED: Ergebnis dieser Anfrage

OtpContext

Kontext, in dem ein OTP angefordert wird.

JSON-Darstellung
{

  // 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.
}
Felder
Union-Feld otp_context. ERFORDERLICH: Kontext, in dem ein OTP angefordert wird. Für otp_context ist nur einer der folgenden Werte zulässig:
association

object (Empty)

Das OTP wird im Zusammenhang mit der Verknüpfung/Neuverknüpfung angefordert.

mandateCreation

object (Empty)

Das OTP wird bei der Erstellung eines Lastschriftmandats angefordert.

associationWithMandateCreation

object (Empty)

Das OTP wird zur Verknüpfung mit der Erstellung des Lastschriftmandats angefordert.

Leer

Dieser Typ hat keine Felder.

Dieses Objekt dient der Erweiterbarkeit, da boolesche Werte und Aufzählungen häufig um zusätzliche Daten erweitert werden müssen. Der Implementer verwendet sie, um die Präsenz zu bestimmen. Die hier dargestellte Aufzählung kann auf Daten in zukünftigen Versionen erweitert werden.

Die JSON-Darstellung für Empty ist ein leeres JSON-Objekt {}.

SendOtpResultCode

Ergebniscodes für das Senden einer OTP-Anfrage.

Enums
UNKNOWN_RESULT Legen Sie diesen Standardwert niemals fest.
SUCCESS Der Integrator hat das OTP gesendet.
PHONE_NUMBER_NOT_ASSOCIATED_WITH_ACCOUNT Die Telefonnummer ist nicht mit dem von associationId angegebenen Konto verknüpft.
UNKNOWN_PHONE_NUMBER Die Telefonnummer ist mit keinem Konto verknüpft. Wird verwendet, wenn associationId nicht festgelegt ist.
MESSAGE_UNABLE_TO_BE_SENT Der Integrator konnte das OTP aus irgendeinem Grund nicht senden. Dies ist ein vorübergehender Fehler, der dazu führen kann, dass der Aufruf wiederholt wird.
INVALID_PHONE_NUMBER Das Format der Telefonnummer war falsch.
NOT_ELIGIBLE Das Nutzerkonto ist für diesen Dienst nicht berechtigt.
OTP_LIMIT_REACHED Der Nutzer hat zu viele OTPs angefordert oder versucht, zu bestätigen.
ACCOUNT_CLOSED

Das beim Integrator geführte Nutzerkonto wurde geschlossen. Sollte nur verwendet werden, wenn die "associationId" zur Identifizierung dieses Nutzers verwendet wird.

Wird dieser Wert zurückgegeben, wird das Zahlungsmittel des Nutzers mit Google geschlossen. Der Nutzer wird gezwungen, ein neues Zahlungsmittel hinzuzufügen, indem er den Verknüpfungsvorgang noch einmal durchläuft.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

Das Nutzerkonto beim Integrator wurde geschlossen, da eine Kontoübernahme vermutet wird. Sollte nur verwendet werden, wenn die "associationId" zur Identifizierung dieses Nutzers verwendet wird.

Wird dieser Wert zurückgegeben, wird das Zahlungsmittel des Nutzers mit Google geschlossen. Der Nutzer wird gezwungen, ein neues Zahlungsmittel hinzuzufügen, indem er den Verknüpfungsvorgang noch einmal durchläuft.

ACCOUNT_CLOSED_FRAUD

Das Konto des Integrators wurde wegen Betrugs geschlossen. Sollte nur verwendet werden, wenn die "associationId" zur Identifizierung dieses Nutzers verwendet wird.

Wird dieser Wert zurückgegeben, wird das Zahlungsmittel des Nutzers mit Google geschlossen. Der Nutzer wird gezwungen, ein neues Zahlungsmittel hinzuzufügen, indem er den Verknüpfungsvorgang noch einmal durchläuft.