Langsung ke konten utama

GitHub Repository

Panduan lengkap kode sumber dan 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 dari schema.sql
  5. Jalankan kueri
  6. Dapatkan string koneksi Anda dari Neon → Connection Details

4. Konfigurasi Rahasia Awal

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

5. Perbarui wrangler.toml

Edit wrangler.toml dan tentukan nama worker Anda:

6. Terapkan

7. Dapatkan URL Webhook Anda

URL webhook Anda adalah:

8. 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:
    • subscription.active
    • subscription.cancelled
    • subscription.renewed
  5. Salin Signing Secret

9. 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 kesalahan - Dicatat dan dapat dicoba ulang
Catatan: Implementasi ini menunjukkan penanganan tiga event langganan inti (subscription.active, subscription.cancelled, subscription.renewed) dengan field minimal. Anda dapat dengan mudah memperluasnya untuk mendukung jenis 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
  5. Menangani kesalahan - Mencatat kegagalan dan menandai event sebagai belum diproses agar dapat dicoba ulang

Pengujian

Pengembangan lokal:
Konfigurasi di Dasbor DodoPayments:
  1. Pergi ke Pengembang → Webhooks
  2. Tambahkan endpoint dengan URL Pekerja Anda
  3. Aktifkan: subscription.active, subscription.cancelled, subscription.renewed

Masalah Umum

Sumber Daya

Terakhir diubah pada 22 Mei 2026