Method: sendOtp

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

Wenn der Integrationspartner SUCCESS zurückgibt, erwartet Google eine SMS, die 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 nur associationId für alle nachfolgenden Aufrufe gesendet.

Wenn der Endpunkt bei der Verarbeitung der Anfrage auf einen Fehler stößt, sollte der Antworttext dieses Endpunkts vom Typ ErrorResponse sein.

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)

REQUIRED: Allgemeiner 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 wird. Dadurch kann Google die SMS auf Geräten mit Android O automatisch zuordnen (siehe Referenz). Diese ID ist 11 Zeichen.

Das kann z. B. so aussehen:

Here's the OTP you requested: <OTP>

Google sendet außerdem „0123456789A“ für dieses Feld. Die SMS sollte dann so aussehen:

0123456789A

Here's the OTP you requested: YYXXZZ

Oder es könnte 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 ID des Kontos, für das ein OTP gesendet werden muss. Für account_identifier ist nur einer der folgenden Werte zulässig:
accountPhoneNumber

string

Dies ist eine E.164-formatierte Telefonnummer. Beispiele hierfür sind +14035551111 und +918067218000. Dies führt immer zu einem Pluszeichen und danach nur Zahlen, keine Bindestriche.

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, mit der auf das Konto eines Nutzers verwiesen wird.

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

Antworttext

Antwortobjekt für die Methode „sendOtp“.

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)

REQUIRED: Allgemeiner Header für alle Antworten.

paymentIntegratorSendOtpId

string

OPTIONAL: Kennt den Integrator, der diese OTP-Anfrage kennt. Dies wurde vom Integrationsintegrator generiert.

result

enum (SendOtpResultCode)

ERFORDERLICH: Ergebnis dieser Anfrage

OTP-Kontext

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

object (Empty)

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

mandateCreation

object (Empty)

OTP wird im Rahmen der Lastschriftmandat erstellt.

associationWithMandateCreation

object (Empty)

OTP wird zusammen mit dem Lastschriftmandat für eine Verknüpfung angefordert.

Leer

Dieser Typ hat keine Felder.

Dieses Objekt wird für die Erweiterbarkeit verwendet, da boolesche Werte und Aufzählungen häufig mit zusätzlichen Daten erweitert werden müssen. Anhand dieser Daten ermittelt der Implementierer die Anwesenheit. Die Aufzählung, die diese repräsentiert, kann erweitert werden, um Daten in zukünftigen Versionen zu enthalten.

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

SendOtpResultCode

Ergebniscodes für die OTP-Anfrage.

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

Das Nutzerkonto des Integrationspartners wurde geschlossen. Dieser Parameter sollte nur verwendet werden, wenn das Element „associationId“ verwendet wird, um diesen Nutzer zu identifizieren.

Die Rückgabe dieses Werts führt dazu, dass das Zahlungsmittel des Nutzers bei Google geschlossen wird. Der Nutzer wird gezwungen, ein neues Zahlungsmittel hinzuzufügen, indem er den Verknüpfungsvorgang noch einmal durchläuft.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

Das Konto des Nutzers beim Integrationspartner wurde geschlossen. Verdacht auf eine Kontoübernahme. Dieser Parameter sollte nur verwendet werden, wenn das Element „associationId“ verwendet wird, um diesen Nutzer zu identifizieren.

Die Rückgabe dieses Werts führt dazu, dass das Zahlungsmittel des Nutzers bei Google geschlossen wird. Der Nutzer wird gezwungen, ein neues Zahlungsmittel hinzuzufügen, indem er den Verknüpfungsvorgang noch einmal durchläuft.

ACCOUNT_CLOSED_FRAUD

Das Konto des Integrationspartners wurde aufgrund von Betrug geschlossen. Dieser Parameter sollte nur verwendet werden, wenn das Element „associationId“ verwendet wird, um diesen Nutzer zu identifizieren.

Die Rückgabe dieses Werts führt dazu, dass das Zahlungsmittel des Nutzers bei Google geschlossen wird. Der Nutzer wird gezwungen, ein neues Zahlungsmittel hinzuzufügen, indem er den Verknüpfungsvorgang noch einmal durchläuft.