Skip to main content

GitHub Repository

Panduan lengkap kode sumber dan pengaturan

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. Konfigurasikan Secret Awal

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

5. Perbarui wrangler.toml

Edit wrangler.toml dan tetapkan nama worker Anda:

6. Deploy

7. Dapatkan URL Webhook Anda

URL webhook Anda adalah:

8. 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.

9. Tetapkan Webhook Key & Deploy Ulang

Fungsinya

Webhook handler 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 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 audit trail
  • Penanganan error — Mencatat kegagalan dan menandai event untuk dicoba kembali
Contoh ini menangani tiga event subscription utama 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 customer ID Dodo Payments
  • subscriptions — Status, jumlah, tanggal penagihan berikutnya, ditautkan ke customer
  • webhook_events — Log event dengan webhook ID untuk idempotensi

Kode Implementasi

Cara Kerjanya

Webhook handler:
  1. Memverifikasi signature — 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 audit trail
  4. Memproses event — Membuat atau memperbarui customer dan subscription di database
  5. Menangani error — Mencatat kegagalan dan menandai event sebagai belum diproses untuk dicoba kembali

Pengujian

Pengembangan lokal:
Konfigurasikan di dashboard Dodo Payments:
  1. Buka Developer → Webhooks.
  2. Tambahkan endpoint dengan URL Worker Anda.
  3. Pilih subscription.active, subscription.cancelled, dan subscription.renewed.

Masalah Umum

Resource

Terakhir diubah pada 26 September 2026