Langsung ke konten utama

GitHub Repository

Kode sumber lengkap dan panduan pengaturan

Pengaturan Cepat

1. Prasyarat

2. Instal Ketergantungan

3. Pengaturan Database

  1. Daftar di Neon
  2. Buat proyek baru
  3. Buka Editor SQL
  4. Salin dan tempel isi schema.sql
  5. Jalankan kueri
  6. Dapatkan string koneksi Anda dari Neon → Rincian Koneksi

4. Atur Variabel Lingkungan Awal

Catatan: Kami akan mengatur DODO_PAYMENTS_WEBHOOK_KEY setelah deployment begitu Anda memiliki URL webhook Anda.

5. Inisialisasi & Terapkan

6. Dapatkan URL Webhook Anda

URL webhook Anda adalah:

7. Daftarkan Webhook di Dasbor DodoPayments

  1. Buka DodoPayments Dashboard → Developer → Webhooks
  2. Buat endpoint webhook baru
  3. Konfigurasikan URL webhook Anda sebagai endpoint
  4. Aktifkan event langganan berikut ini:
    • subscription.active
    • subscription.cancelled
    • subscription.renewed
  5. Salin Signing Secret

8. Atur Kunci Webhook & Terapkan Kembali

Apa yang Dilakukan

Memproses acara langganan dan menyimpannya di PostgreSQL:
  • subscription.active - Membuat/memperbarui catatan pelanggan dan langganan
  • subscription.cancelled - Menandai langganan sebagai dibatalkan
  • subscription.renewed - Memperbarui tanggal penagihan berikutnya

Fitur Utama

Verifikasi tanda tangan - Menggunakan library dodopayments
Idempotensi - Mencegah pemrosesan ganda dengan ID webhook
Pencatatan event - Jejak audit lengkap di tabel webhook_events
Penanganan error - Dicatat dan bisa dicoba ulang
Catatan: Implementasi ini menunjukkan penanganan tiga event langganan inti (subscription.active, subscription.cancelled, subscription.renewed) dengan field minimal. Anda bisa dengan mudah memperluasnya untuk mendukung tipe event dan field tambahan sesuai kebutuhan Anda.

Berkas Konfigurasi

Skema Database

Tabel yang dibuat:
  • customers - Email, nama, dodo_customer_id
  • subscriptions - Status, jumlah, next_billing_date, terhubung ke pelanggan
  • webhook_events - Log acara dengan webhook_id untuk idempotensi

Kode Implementasi

Cara Kerjanya

Penangan webhook:
  1. Memverifikasi tanda tangan - Memastikan permintaan berasal dari DodoPayments menggunakan HMAC-SHA256
  2. Memeriksa duplikat - Menggunakan ID webhook 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 pelanggan dan langganan di Neon
  5. Menangani error - Mencatat kegagalan dan menandai event sebagai belum diproses agar bisa dicoba ulang

Pengujian

Pengembangan lokal:
Lihat log di Dashboard Netlify:
  1. Pilih situs Anda → tab Functions
  2. Klik fungsi webhook
  3. Lihat log real-time dan riwayat pemanggilan
Konfigurasi di Dasbor DodoPayments:
  1. Pergi ke Pengembang → Webhooks
  2. Tambahkan endpoint dengan URL Fungsi Netlify Anda
  3. Aktifkan: subscription.active, subscription.cancelled, subscription.renewed

Masalah Umum

Sumber Daya

Terakhir diubah pada 22 Mei 2026