Skip to main content

GitHub Repository

Kode sumber lengkap dan panduan pengaturan

Pengaturan Cepat

1. Prasyarat

Anda memerlukan:

2. Instal Dependensi

3. Penyiapan Database

  1. Daftar ke Neon dan buat proyek.
  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 Anda memiliki URL webhook.

5. Inisialisasi & Deploy

6. Dapatkan URL Webhook Anda

URL webhook Anda adalah:

7. Daftarkan Webhook di Dashboard 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 Webhook Key & Deploy Ulang

Cara Kerjanya

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

Fitur Utama

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

File Konfigurasi

Skema Database

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

Kode Implementasi

Cara Kerjanya

Webhook handler:
  1. Memverifikasi tanda tangan — Menggunakan Dodo Payments SDK untuk memverifikasi request dengan HMAC-SHA256
  2. Memeriksa duplikat — Menggunakan header webhook-id untuk mencegah pemrosesan event yang sama dua kali
  3. Mencatat event — Menyimpan webhook mentah di tabel webhook_events untuk jejak audit
  4. Memproses event — Membuat atau memperbarui customer dan subscription di Neon
  5. Menangani error — Mencatat kegagalan dan menandai event sebagai belum diproses untuk dicoba kembali

Pengujian

Pengembangan lokal:
Lihat log di dashboard Netlify:
  1. Pilih situs Anda dan buka Functions.
  2. Klik function webhook.
  3. Lihat log real-time dan riwayat pemanggilan.
Konfigurasikan di dashboard Dodo Payments:
  1. Buka Developer → Webhooks.
  2. Tambahkan endpoint dengan URL Netlify Functions Anda.
  3. Pilih subscription.active, subscription.cancelled, dan subscription.renewed.

Masalah Umum

Sumber Daya

Terakhir diubah pada 26 September 2026