Method: sendOtp

prosi integratora o wysłanie hasła jednorazowego na numer telefonu.

Jeśli integrator zwróci wartość SUCCESS, Google oczekuje SMS-a wysłanego na numer telefonu.

Google udostępnia usługę accountPhoneNumber tylko wtedy, gdy użytkownik po raz pierwszy powiążesz swoje konto z Google. Od tego momentu w przypadku wszystkich kolejnych połączeń będzie wysyłane tylko associationId.

Jeśli podczas przetwarzania żądania punkt końcowy napotka błąd, treść odpowiedzi z tego punktu końcowego powinna być typu ErrorResponse.

Przykładowe żądanie wygląda tak:


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

Przykładowa odpowiedź wygląda tak:


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

Żądanie HTTP

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

Treść żądania

Treść żądania zawiera dane o następującej strukturze:

Zapis 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.
}
Pola
requestHeader

object (RequestHeader)

WYMAGANE: wspólny nagłówek dla wszystkich żądań.

smsMatchingToken

string

WYMAGANE: ta wartość jest podawana przez Google i musi być zawarta w SMS-ie dostarczanym do użytkownika. To pozwala Google na automatyczne dopasowywanie SMS-ów na urządzeniu z Androidem O (patrz źródło informacji). Będzie to 11 znaków.

Jeśli na przykład SMS wygląda zwykle tak:

Here's the OTP you requested: <OTP>

Google wysyła kod „0123456789A” w tym polu wiadomość SMS powinna wyglądać tak:

0123456789A

Here's the OTP you requested: YYXXZZ

Może też wyglądać tak:

Here's the OTP you requested: YYXXZZ

0123456789A

otpContext

object (OtpContext)

OPCJONALNY: to kontekst, w którym żądane jest hasło jednorazowe.

Pole sumy account_identifier. WYMAGANE: to jest identyfikator konta, w którego przypadku ma zostać wysłane hasło jednorazowe. account_identifier może mieć tylko jedną z tych wartości:
accountPhoneNumber

string

To jest numer telefonu w formacie E.164. Przykłady: +14035551111 i +918067218000. Zawsze zaczyna się od znaku +, a po nim zawiera tylko cyfry (bez myślników).

To pole jest wypełniane, gdy użytkownik po raz pierwszy powiąże swoje konto z Google i w trakcie anulowania powiązania.

associationId

string

Jest to identyfikator powiązania używany do odwoływania się do konta użytkownika.

Pole jest wypełniane przy wszystkich kolejnych wywołaniach po pierwszym powiązaniu.

Treść odpowiedzi

Obiekt odpowiedzi dla metody sendOtp.

W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:

Zapis JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorSendOtpId": string,
  "result": enum (SendOtpResultCode)
}
Pola
responseHeader

object (ResponseHeader)

WYMAGANE: wspólny nagłówek wszystkich odpowiedzi.

paymentIntegratorSendOtpId

string

OPCJONALNE: identyfikator, który integrator wie, że to żądanie wysłane z użyciem hasła jednorazowego jest wysyłane. Wygenerowano go przez integratora.

result

enum (SendOtpResultCode)

WYMAGANE: wynik tego żądania.

OtpContext

Kontekst, w którym żądane jest hasło jednorazowe.

Zapis 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.
}
Pola
Pole sumy otp_context. WYMAGANE: kontekst, w którym wysyłane jest żądanie hasła jednorazowego. otp_context może mieć tylko jedną z tych wartości:
association

object (Empty)

Zażądano hasła jednorazowego w kontekście powiązania/ponownego powiązania.

mandateCreation

object (Empty)

Hasło jednorazowe jest wysyłane w kontekście tworzenia upoważnienia.

associationWithMandateCreation

object (Empty)

Zgłasza się prośbę o utworzenie powiązania z hasłem jednorazowym wraz z utworzeniem upoważnienia.

Pusta

Ten typ nie zawiera pól.

Ten obiekt służy do rozszerzania, ponieważ wartości logiczne i wyliczenia często wymagają rozszerzenia o dodatkowe dane. Na jego podstawie realizator określa obecność. Przedstawione tu wyliczenie może zostać rozszerzone, aby obejmowało dane w przyszłych wersjach.

Reprezentacja pola Empty w formacie JSON to pusty obiekt JSON {}.

SendOtpResultCode

Kody wyników do wysłania żądania hasła jednorazowego.

Wartości w polu enum
UNKNOWN_RESULT Nigdy nie ustawiaj tej wartości domyślnej.
SUCCESS Integrator wysłał hasło jednorazowe.
PHONE_NUMBER_NOT_ASSOCIATED_WITH_ACCOUNT Numer telefonu nie jest powiązany z kontem zidentyfikowanym przez associationId.
UNKNOWN_PHONE_NUMBER Numer telefonu nie jest powiązany z żadnym kontem. Jest ona używana, gdy zasada associationId nie jest skonfigurowana.
MESSAGE_UNABLE_TO_BE_SENT Z jakiegoś powodu integrator nie mógł wysłać hasła jednorazowego. Jest to chwilowy błąd i może spowodować ponowienie próby połączenia.
INVALID_PHONE_NUMBER Nieprawidłowy format numeru telefonu.
NOT_ELIGIBLE Konto użytkownika nie ma dostępu do tej usługi.
OTP_LIMIT_REACHED Użytkownik poprosił lub próbował zweryfikować zbyt wiele haseł jednorazowych.
ACCOUNT_CLOSED

Konto użytkownika przypisane do integratora zostało zamknięte. Należy go używać tylko wtedy, gdy „associationId” jest wykorzystywany do identyfikacji tego użytkownika.

Zwrócenie tej wartości spowoduje zamknięcie instrumentu użytkownika przez Google. Użytkownik będzie musiał dodać nowy instrument, wykonując ponownie proces tworzenia powiązania.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

Konto użytkownika u integratora zostało zamknięte. Istnieje podejrzenie przejęcia konta. Należy go używać tylko wtedy, gdy „associationId” jest wykorzystywany do identyfikacji tego użytkownika.

Zwrócenie tej wartości spowoduje zamknięcie instrumentu użytkownika przez Google. Użytkownik będzie musiał dodać nowy instrument, wykonując ponownie proces tworzenia powiązania.

ACCOUNT_CLOSED_FRAUD

Konto użytkownika powiązane z integratorem zostało zamknięte z powodu oszustwa. Należy go używać tylko wtedy, gdy „associationId” jest wykorzystywany do identyfikacji tego użytkownika.

Zwrócenie tej wartości spowoduje zamknięcie instrumentu użytkownika przez Google. Użytkownik będzie musiał dodać nowy instrument, wykonując ponownie proces tworzenia powiązania.