Verifikasi sinkron
Cara pemeriksaan registrasi WhatsApp real-time masuk ke alur kerja sinkron
Pelajari cara memeriksa apakah satu nomor telepon terdaftar di WhatsApp dan memakai hasilnya dalam respons API sinkron yang sama.

Apa arti “real-time” untuk produk ini
Real-time berarti keputusan registrasi dikembalikan dalam permintaan HTTP yang sama, bukan melalui job latar belakang, webhook, atau ekspor di kemudian hari.
Pemanggil mengirim satu nomor telepon yang telah dinormalisasi dan menunggu respons. Ketika pemeriksaan selesai, data.registered melaporkan apakah nomor tersebut terdaftar di WhatsApp pada saat permintaan dibuat. Pemanggil dapat langsung menggunakan hasilnya tanpa melakukan polling ke endpoint lain.
Ini adalah kontrak produk yang sempit. WA Lookup memeriksa status registrasi; layanan ini tidak mengidentifikasi orang di balik nomor, tidak memantau aktivitas akun, dan tidak mengoperasikan layanan perpesanan. Menjaga cakupan ini tetap eksplisit membuat field yang dikembalikan lebih mudah digunakan dengan benar.
| Data yang dikembalikan | Arti | Tindakan yang disarankan |
|---|---|---|
code=0, registered=true |
Pemeriksaan yang selesai melaporkan terdaftar | Gunakan hasil boolean yang dikembalikan oleh permintaan ini |
code=0, registered=false |
Pemeriksaan yang selesai melaporkan tidak terdaftar | Gunakan false sebagai hasil yang selesai |
| Kode bisnis bukan nol | Layanan tidak mengembalikan keputusan registrasi | Jangan mengarang nilai boolean; tangani error atau coba lagi sesuai dokumentasi API |
Mengapa pemeriksaan sinkron bermanfaat
Hasil sinkron bermanfaat ketika langkah perangkat lunak berikutnya bergantung pada jawaban registrasi terkini. Aplikasi tidak perlu membuat job, menyimpan token polling, atau menunggu callback sebelum dapat mengklasifikasikan nomor.
Integrasi yang umum mencakup formulir internal yang memeriksa satu nomor, alat dukungan yang memverifikasi catatan sesuai permintaan, atau worker backend. Untuk daftar kecil, endpoint batch sinkron menerima hingga 100 identifier E.164 dan mengembalikan batch yang selesai dalam respons awal. Klien tetap harus mengendalikan konkurensinya sendiri.
Manfaat arsitektural utamanya adalah determinisme: respons yang selesai berisi satu keputusan registrasi boolean. Error API dan pemeriksaan yang tidak dapat ditentukan menggunakan amplop luar code, msg, dan data, alih-alih menambahkan nilai lain ke registered.
Jalur permintaan, langkah demi langkah
- Normalisasi nomor telepon — Ubah kode panggilan negara dan nomor nasional yang sudah jelas ke format E.164. Jangan menebak konteks negara yang hilang.
- Kirim satu pemeriksaan — Panggil endpoint pemeriksaan terautentikasi dengan nomor yang telah dinormalisasi dan
service_type=ws. - Baca hasil yang selesai — Gunakan
data.registeredketikacode=0; biarkan kosong ketika API mengembalikan kode bisnis bukan nol. - Simpan waktu observasi — Registrasi adalah hasil pada satu titik waktu, jadi simpan kapan pemeriksaan dilakukan.
- Tangani non-hasil secara terpisah — Permintaan yang tidak valid atau kegagalan sementara perlu diperbaiki atau dicoba ulang, bukan diberi nilai registrasi false.
Memodelkan hasil tanpa kehilangan makna
Hindari field generik seperti valid. Field tersebut tidak dapat membedakan input yang salah format dari nomor valid yang selesai diperiksa sebagai tidak terdaftar. Catatan kecil yang eksplisit lebih aman:
| Field | Tujuan |
|---|---|
source_phone |
Menyimpan nilai asli yang diberikan oleh sistem sumber |
e164_phone |
Menyimpan nomor kanonis yang dikirim untuk diperiksa |
outcome |
Klasifikasi aplikasi Anda: selesai, dapat dicoba ulang, atau permintaan gagal |
registered |
Menyimpan true atau false hanya untuk pemeriksaan yang selesai |
checked_at |
Mencatat kapan observasi pada titik waktu tersebut dilakukan |
service_type |
Mencatat kontrak produk mana yang menghasilkan hasil tersebut |
Error HTTP bukanlah nilai tambahan untuk catatan ini. Jika aplikasi mencatatnya di log, aplikasi harus menyimpan status HTTP dan code API yang dikembalikan secara terpisah dari observasi registrasi.
Aturan integrasi praktis
Hanya lakukan percabangan berdasarkan data.registered ketika respons luar memiliki code=0.
Satu aturan ini mencegah kesalahan interpretasi yang paling umum: memperlakukan timeout, permintaan yang ditolak, atau nomor yang salah format seolah-olah WhatsApp melaporkan nomor tersebut tidak terdaftar. Jika keputusan perlu tetap terkini di lain waktu, lakukan pemeriksaan sinkron baru dan simpan sebagai observasi baru, alih-alih diam-diam mengubah stempel waktu lama.