Method: sendOtp

Meminta integrator untuk mengirimkan OTP ke nomor telepon.

Jika integrator menampilkan SUCCESS, Google mengharapkan SMS dikirim ke nomor telepon tersebut.

Google hanya menyediakan accountPhoneNumber saat pengguna mengaitkan akunnya dengan Google. Setelah itu, hanya associationId yang akan dikirim untuk semua panggilan berikutnya.

Jika endpoint mengalami error saat memproses permintaan, isi respons dari endpoint ini harus berjenis ErrorResponse.

Contoh permintaan terlihat seperti ini:


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

Contoh respons terlihat seperti ini:


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

Permintaan HTTP

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

Isi permintaan

Isi permintaan memuat data dengan struktur berikut:

Representasi 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.
}
Kolom
requestHeader

object (RequestHeader)

DIPERLUKAN: Header umum untuk semua permintaan.

smsMatchingToken

string

DIPERLUKAN: Nilai ini diberikan oleh Google dan harus disertakan dalam SMS yang dikirim kepada pengguna. Hal ini memungkinkan Google untuk mencocokkan otomatis SMS di perangkat dengan perangkat Android O (lihat referensi ). Panjang karakter ini adalah 11 karakter.

Misalnya, jika SMS biasanya terlihat seperti ini:

Here's the OTP you requested: <OTP>

Dan Google mengirimkan "0123456789A" untuk kolom ini, maka SMS-nya akan terlihat seperti ini:

0123456789A

Here's the OTP you requested: YYXXZZ

Atau, tampilannya mungkin seperti ini:

Here's the OTP you requested: YYXXZZ

0123456789A

otpContext

object (OtpContext)

OPSIONAL: Ini adalah konteks di mana OTP diminta.

Kolom union account_identifier. REQUIRED: Ini adalah ID akun tujuan OTP yang akan dikirimkan. account_identifier hanya dapat berupa salah satu dari berikut:
accountPhoneNumber

string

Ini adalah nomor telepon berformat E.164. Contohnya mencakup +14035551111 dan +918067218000. Nama ini akan selalu diawali dengan + dan hanya menyertakan angka setelahnya (tanpa tanda hubung).

Kolom ini diisi saat pengguna pertama kali mengaitkan akun mereka dengan Google dan selama pengaitan ulang.

associationId

string

Ini adalah ID pengaitan yang digunakan untuk mereferensikan akun pengguna.

Ini diisi untuk semua panggilan berikutnya setelah pengaitan awal.

Isi respons

Objek respons untuk metode sendOtp.

Jika berhasil, isi respons memuat data dengan struktur berikut:

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

object (ResponseHeader)

DIPERLUKAN: Header umum untuk semua respons.

paymentIntegratorSendOtpId

string

OPSIONAL: Pengidentifikasi integrator mengetahui bahwa ini mengirim permintaan OTP. Ini adalah integrator yang dihasilkan.

result

enum (SendOtpResultCode)

REQUIRED: Hasil dari permintaan ini

Konteks Otp

Konteks saat OTP diminta.

Representasi 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.
}
Kolom
Kolom union otp_context. REQUIRED: Konteks tempat OTP diminta. otp_context hanya dapat berupa salah satu dari berikut:
association

object (Empty)

OTP sedang diminta dalam konteks pengaitan/pengaitan ulang.

mandateCreation

object (Empty)

OTP sedang diminta dalam konteks pembuatan mandat.

associationWithMandateCreation

object (Empty)

OTP diminta untuk dikaitkan dengan pembuatan mandat.

Kosong

Jenis ini tidak memiliki kolom.

Objek ini digunakan untuk ekstensibilitas karena boolean dan enumerasi sering kali perlu diperpanjang dengan data tambahan. Implementasi menggunakannya untuk menentukan kehadiran. Enumerasi yang diwakili ini dapat diperluas agar berisi data di versi mendatang.

Representasi JSON untuk Empty adalah objek JSON kosong {}.

SendOtpResultCode

Kode hasil untuk mengirim permintaan OTP.

Enumerasi
UNKNOWN_RESULT Jangan pernah menetapkan nilai default ini.
SUCCESS Integrator telah mengirimkan OTP.
PHONE_NUMBER_NOT_ASSOCIATED_WITH_ACCOUNT Nomor telepon tidak dikaitkan dengan akun yang diidentifikasi oleh associationId.
UNKNOWN_PHONE_NUMBER Nomor telepon tidak dikaitkan dengan akun mana pun. Ini digunakan saat associationId tidak ditetapkan.
MESSAGE_UNABLE_TO_BE_SENT Integrator tidak dapat mengirim OTP karena alasan tertentu. Ini adalah error sementara, dan dapat menyebabkan panggilan ini dicoba lagi.
INVALID_PHONE_NUMBER Format nomor telepon salah.
NOT_ELIGIBLE Akun pengguna tidak memenuhi syarat untuk layanan ini.
OTP_LIMIT_REACHED Pengguna telah meminta atau mencoba memverifikasi terlalu banyak OTP.
ACCOUNT_CLOSED

Akun pengguna yang dibekukan dengan integrator telah ditutup. Ini hanya boleh digunakan saat "associationId" digunakan untuk mengidentifikasi pengguna ini.

Menampilkan nilai ini akan menyebabkan instrumen pengguna ditutup dengan Google. Pengguna akan dipaksa untuk menambahkan instrumen baru dengan melalui alur pengaitan lagi.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

Akun pengguna dengan integrator telah ditutup, dan akun yang dicurigai mengambil alih. Ini hanya boleh digunakan saat "associationId" digunakan untuk mengidentifikasi pengguna ini.

Menampilkan nilai ini akan menyebabkan instrumen pengguna ditutup dengan Google. Pengguna akan dipaksa untuk menambahkan instrumen baru dengan melalui alur pengaitan lagi.

ACCOUNT_CLOSED_FRAUD

Akun pengguna yang ditahan oleh integrator telah ditutup karena penipuan. Ini hanya boleh digunakan saat "associationId" digunakan untuk mengidentifikasi pengguna ini.

Menampilkan nilai ini akan menyebabkan instrumen pengguna ditutup dengan Google. Pengguna akan dipaksa untuk menambahkan instrumen baru dengan melalui alur pengaitan lagi.