Skip to main content

GitHub Repository

Lengkapi kode sumber dan panduan penyiapan

Pengaturan Cepat

1. Prasyarat

Anda memerlukan:

2. Instal Dependensi

3. Penyiapan Database

  1. Daftar ke Neon dan buat project.
  2. Buka SQL Editor.
  3. Salin seluruh isi schema.sql dan jalankan.
  4. Salin connection string Anda dari Connection Details.

4. Atur Environment Variables Awal

Anda akan mengatur DODO_PAYMENTS_WEBHOOK_KEY setelah deployment, setelah memiliki URL webhook.

5. Deploy

6. Dapatkan URL Webhook Anda

URL webhook Anda adalah:

7. Daftarkan Webhook di Dasbor DodoPayments

  1. Buka Developer → Webhooks di dashboard Dodo Payments.
  2. Klik Add endpoint.
  3. Masukkan URL webhook Anda.
  4. Pilih event berikut: subscription.active, subscription.cancelled, subscription.renewed.
  5. Klik Create endpoint dan salin signing secret.

8. Atur Kunci Webhook & Redeploy

Apa yang Dilakukan

Handler webhook memproses event subscription dan menyimpannya di PostgreSQL:
  • subscription.active — Membuat atau memperbarui record customer dan subscription
  • subscription.cancelled — Menandai subscription sebagai dibatalkan
  • subscription.renewed — Memperbarui tanggal penagihan berikutnya

Fitur Utama

  • Verifikasi signature — Menggunakan SDK Dodo Payments untuk memverifikasi keaslian webhook
  • Idempotency — Menggunakan header webhook-id untuk mencegah pemrosesan duplikat
  • Pencatatan event — Menyimpan semua event di tabel webhook_events untuk audit trail
  • Penanganan error — Mencatat kegagalan dan menandai event untuk dicoba kembali
Contoh ini menangani tiga event inti subscription dengan field minimal. Anda dapat mengembangkannya untuk mendukung jenis event dan field tambahan sesuai kebutuhan.

Berkas Konfigurasi

Skema Database

Tabel yang dibuat:
  • customers — Email, nama, dan customer ID Dodo Payments
  • subscriptions — Status, jumlah, tanggal penagihan berikutnya, terhubung ke customer
  • webhook_events — Log event dengan webhook ID untuk idempotency

Kode Implementasi

Cara Kerjanya

Handler webhook:
  1. Menonaktifkan parsing body — Untuk mengakses raw body guna verifikasi signature
  2. Memverifikasi signature — Menggunakan SDK Dodo Payments untuk memverifikasi request dengan HMAC-SHA256
  3. Memeriksa duplikat — Menggunakan header webhook-id untuk mencegah pemrosesan event yang sama dua kali
  4. Mencatat event — Menyimpan raw webhook di tabel webhook_events untuk audit trail
  5. Memproses event — Membuat atau memperbarui customer dan subscription di Neon
  6. Menangani error — Mencatat kegagalan dan menandai event sebagai belum diproses untuk dicoba kembali

Pengujian

Pengembangan lokal:
Lihat log di dashboard Vercel:
  1. Pilih project Anda.
  2. Buka Deployments → deployment terbaru.
  3. Klik Functions → Logs.
Konfigurasikan di dashboard Dodo Payments:
  1. Buka Developer → Webhooks.
  2. Tambahkan endpoint dengan URL Vercel Functions Anda.
  3. Pilih subscription.active, subscription.cancelled, dan subscription.renewed.

Masalah Umum

Sumber Daya

Terakhir diubah pada 26 September 2026