Method: sendOtp

Meminta integrator untuk mengirim OTP ke nomor telepon.

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

Google hanya menyediakan accountPhoneNumber saat pengguna pertama kali 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:


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

Contoh respons akan 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)

WAJIB: Header umum untuk semua permintaan.

smsMatchingToken

string

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

Jadi, misalnya, jika SMS biasanya terlihat seperti:

Here's the OTP you requested: <OTP>

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

0123456789A

Here's the OTP you requested: YYXXZZ

Atau, halaman dapat terlihat seperti ini:

Here's the OTP you requested: YYXXZZ

0123456789A

otpContext

object (OtpContext)

OPSIONAL: Ini adalah konteks saat OTP diminta.

Kolom union account_identifier. WAJIB: ID akun ini memerlukan pengiriman OTP. account_identifier hanya dapat berupa salah satu dari yang berikut:
accountPhoneNumber

string

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

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

associationId

string

Ini adalah ID pengaitan yang digunakan untuk mereferensikan akun pengguna.

Ini akan 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)

WAJIB: Header umum untuk semua respons.

paymentIntegratorSendOtpId

string

OPSIONAL: ID integrator mengetahui permintaan OTP pengiriman ini. Ini adalah integrator yang dihasilkan.

result

enum (SendOtpResultCode)

WAJIB: Hasil permintaan ini

OtpContext

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. WAJIB: Konteks saat OTP diminta. otp_context hanya dapat berupa salah satu dari yang berikut:
association

object (Empty)

OTP diminta dalam konteks pengaitan/pengaitan ulang.

mandateCreation

object (Empty)

OTP diminta dalam konteks pembuatan mandat.

associationWithMandateCreation

object (Empty)

OTP diminta untuk dikaitkan bersama dengan pembuatan mandat.

Kosong

Jenis ini tidak memiliki kolom.

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

Representasi JSON untuk Empty adalah objek JSON kosong {}.

SendOtpResultCode

Kode hasil untuk permintaan kirim OTP.

Enum
UNKNOWN_RESULT Jangan pernah menetapkan nilai default ini!
SUCCESS Integrator telah mengirimkan OTP.
PHONE_NUMBER_NOT_ASSOCIATED_WITH_ACCOUNT Nomor telepon tidak terkait dengan akun yang diidentifikasi oleh associationId.
UNKNOWN_PHONE_NUMBER Nomor telepon tidak terkait dengan akun apa pun. Ini digunakan saat associationId tidak ditetapkan.
MESSAGE_UNABLE_TO_BE_SENT Integrator tidak dapat mengirim OTP karena beberapa alasan. Hal ini merupakan error sementara, dan dapat mengakibatkan 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 disimpan 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, 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 disimpan dengan 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.