Debugging Webhooks: Panduan Teknis dan Alat Inspeksi

Inti Debugging Webhooks

Debugging webhooks adalah proses melacak kegagalan pengiriman data HTTP POST dari sistem pengirim (source) ke sistem penerima (destination). Masalah utama biasanya terletak pada kegagalan handshake SSL, format payload yang tidak valid, timeout server, atau kode status HTTP 4xx/5xx. Langkah pertama yang wajib dilakukan adalah memverifikasi apakah request benar-benar sampai ke endpoint Anda dengan menggunakan alat inspeksi pihak ketiga.

Alat Inspeksi Webhook Terpercaya

Gunakan alat berikut untuk menangkap request masuk secara real-time guna membedah struktur header dan body payload.

Nama ToolDomain ResmiFitur Utama
Webhook.sitewebhook.siteInspeksi instan, tanpa registrasi
RequestBinrequestbin.comAnalisis mendalam, mendukung private bin
Ngrokngrok.comTunneling lokal ke publik untuk testing
Beeceptorbeeceptor.comMocking API dan simulasi respon

Langkah Teknis Debugging

  1. Verifikasi Endpoint: Pastikan URL endpoint Anda dapat diakses publik dan tidak terhalang oleh firewall atau aturan CORS yang salah.
  2. Inspeksi Payload: Gunakan alat seperti Webhook.site untuk melihat apakah data yang dikirim sesuai dengan dokumentasi API penyedia.
  3. Analisis Log Server: Periksa log akses web server (Nginx/Apache) atau log aplikasi (Node.js/Python/PHP). Cari entri dengan status 400 (Bad Request) atau 500 (Internal Server Error).
  4. Validasi Signature: Jika penyedia menggunakan HMAC signature untuk keamanan, pastikan kunci rahasia (secret key) yang digunakan untuk verifikasi sudah benar.

Contoh Kode Verifikasi Signature (Node.js)

const crypto = require('crypto');

function verifySignature(payload, signature, secret) {
  const hmac = crypto.createHmac('sha256', secret);
  const digest = hmac.update(JSON.stringify(payload)).digest('hex');
  return signature === digest;
}

Troubleshooting Umum

  • Timeout: Jika server Anda memproses data terlalu lama, pengirim akan memutus koneksi. Gunakan antrean (queue) seperti Redis atau RabbitMQ untuk memproses webhook secara asinkron.
  • Status 403 Forbidden: Periksa apakah IP pengirim masuk dalam daftar blokir atau apakah header otorisasi sudah disertakan.
  • Payload Kosong: Pastikan server Anda membaca stream body request dengan benar sebelum mencoba melakukan parsing JSON.