Dasar retry dan idempotensi Webhook
Bangun penerima MangoOTP Webhook yang memverifikasi tanda tangan, memberi acknowledgement tepat, idempoten, dan menangani jadwal retry terbatas.
Webhook adalah notifikasi, bukan izin mengulang tindakan bisnis. Penerima harus memverifikasi, mengenali event yang sudah diproses, dan mengirim acknowledgement setelah pencatatan aman.
Gunakan endpoint HTTPS publik
Atur URL HTTPS yang dapat dijangkau internet dan khusus untuk webhook. Jangan gunakan alamat privat, rantai redirect, atau halaman login.
Untuk “Dasar retry dan idempotensi Webhook”, perlakukan “Gunakan endpoint HTTPS publik” sebagai satu titik pemeriksaan, bukan alasan untuk mengubah banyak hal sekaligus. Catat hasil, waktu, dan nomor terkait, lalu lakukan hanya satu langkah yang beralasan.
Verifikasi sebelum memproses
Gunakan webhook secret aktif dan field tanda tangan sesuai dokumentasi. Tolak permintaan yang tidak dapat diverifikasi tanpa perubahan bisnis.
Untuk “Dasar retry dan idempotensi Webhook”, perlakukan “Verifikasi sebelum memproses” sebagai satu titik pemeriksaan, bukan alasan untuk mengubah banyak hal sekaligus. Catat hasil, waktu, dan nomor terkait, lalu lakukan hanya satu langkah yang beralasan.
Simpan identitas idempoten
Simpan identitas event atau bisnis sebelum side effect. Delivery berulang harus mengembalikan hasil lama, bukan membuat tindakan kedua.
Untuk “Dasar retry dan idempotensi Webhook”, perlakukan “Simpan identitas idempoten” sebagai satu titik pemeriksaan, bukan alasan untuk mengubah banyak hal sekaligus. Catat hasil, waktu, dan nomor terkait, lalu lakukan hanya satu langkah yang beralasan.
Kirim SUCCESS secara tepat
Hanya HTTP 2xx dengan body setelah trim tepat SUCCESS dianggap acknowledgement. Body lain, non-2xx, dan kegagalan transport belum berhasil.
Untuk “Dasar retry dan idempotensi Webhook”, perlakukan “Kirim SUCCESS secara tepat” sebagai satu titik pemeriksaan, bukan alasan untuk mengubah banyak hal sekaligus. Catat hasil, waktu, dan nomor terkait, lalu lakukan hanya satu langkah yang beralasan.
Pahami jadwal retry
Event yang belum diakui dapat dikirim lagi setelah 1, 3, 5, dan 15 menit, dengan total maksimal lima notifikasi.
Untuk “Dasar retry dan idempotensi Webhook”, perlakukan “Pahami jadwal retry” sebagai satu titik pemeriksaan, bukan alasan untuk mengubah banyak hal sekaligus. Catat hasil, waktu, dan nomor terkait, lalu lakukan hanya satu langkah yang beralasan.
Pisahkan penerimaan dari tugas panjang
Validasi, catat, dan antrekan pemrosesan dengan cepat. Jangan menahan HTTP untuk pekerjaan lambat yang dapat timeout.
Untuk “Dasar retry dan idempotensi Webhook”, perlakukan “Pisahkan penerimaan dari tugas panjang” sebagai satu titik pemeriksaan, bukan alasan untuk mengubah banyak hal sekaligus. Catat hasil, waktu, dan nomor terkait, lalu lakukan hanya satu langkah yang beralasan.
Amati tanpa membocorkan secret
Log identitas aman, hasil, percobaan, waktu, kelas kesalahan, dan traceId. Jangan log secret, signature, API key, atau payload sensitif.
Untuk “Dasar retry dan idempotensi Webhook”, perlakukan “Amati tanpa membocorkan secret” sebagai satu titik pemeriksaan, bukan alasan untuk mengubah banyak hal sekaligus. Catat hasil, waktu, dan nomor terkait, lalu lakukan hanya satu langkah yang beralasan.
Hormati batas event bisnis
Proses hanya event SMS diterima dan terminal yang didokumentasikan. Alokasi nomor atau review perantara bukan hasil akhir.
Untuk “Dasar retry dan idempotensi Webhook”, perlakukan “Hormati batas event bisnis” sebagai satu titik pemeriksaan, bukan alasan untuk mengubah banyak hal sekaligus. Catat hasil, waktu, dan nomor terkait, lalu lakukan hanya satu langkah yang beralasan.
Daftar pemeriksaan praktis
- Verifikasi “Gunakan endpoint HTTPS publik”, simpan hasilnya, dan lanjutkan hanya bila tindakan berikutnya sudah jelas.
- Verifikasi “Verifikasi sebelum memproses”, simpan hasilnya, dan lanjutkan hanya bila tindakan berikutnya sudah jelas.
- Verifikasi “Simpan identitas idempoten”, simpan hasilnya, dan lanjutkan hanya bila tindakan berikutnya sudah jelas.
- Verifikasi “Kirim SUCCESS secara tepat”, simpan hasilnya, dan lanjutkan hanya bila tindakan berikutnya sudah jelas.
- Verifikasi “Pahami jadwal retry”, simpan hasilnya, dan lanjutkan hanya bila tindakan berikutnya sudah jelas.
- Verifikasi “Pisahkan penerimaan dari tugas panjang”, simpan hasilnya, dan lanjutkan hanya bila tindakan berikutnya sudah jelas.
- Verifikasi “Amati tanpa membocorkan secret”, simpan hasilnya, dan lanjutkan hanya bila tindakan berikutnya sudah jelas.
- Verifikasi “Hormati batas event bisnis”, simpan hasilnya, dan lanjutkan hanya bila tindakan berikutnya sudah jelas.
Status akhir platform dan riwayat akun adalah sumber kebenaran. Jangan mengirim kata sandi, kode verifikasi lengkap, rahasia autentikasi, access token, API key, atau dokumen yang belum disamarkan. Panduan lain tersedia di Pusat Bantuan MangoOTP.
