GitHub Repository
Lengkapi kode sumber dan panduan penyiapan
Pengaturan Cepat
1. Prasyarat
Anda memerlukan:- Akun Vercel
- Akun database Neon
- API key Dodo Payments dari Developer â API Keys di dashboard
2. Instal Dependensi
3. Penyiapan Database
- Daftar ke Neon dan buat project.
- Buka SQL Editor.
- Salin seluruh isi
schema.sqldan jalankan. - 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
- Buka Developer â Webhooks di dashboard Dodo Payments.
- Klik Add endpoint.
- Masukkan URL webhook Anda.
- Pilih event berikut:
subscription.active,subscription.cancelled,subscription.renewed. - 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 subscriptionsubscription.cancelledâ Menandai subscription sebagai dibatalkansubscription.renewedâ Memperbarui tanggal penagihan berikutnya
Fitur Utama
- Verifikasi signature â Menggunakan SDK Dodo Payments untuk memverifikasi keaslian webhook
- Idempotency â Menggunakan header
webhook-iduntuk mencegah pemrosesan duplikat - Pencatatan event â Menyimpan semua event di tabel
webhook_eventsuntuk 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
customersâ Email, nama, dan customer ID Dodo Paymentssubscriptionsâ Status, jumlah, tanggal penagihan berikutnya, terhubung ke customerwebhook_eventsâ Log event dengan webhook ID untuk idempotency
Kode Implementasi
Cara Kerjanya
Handler webhook:- Menonaktifkan parsing body â Untuk mengakses raw body guna verifikasi signature
- Memverifikasi signature â Menggunakan SDK Dodo Payments untuk memverifikasi request dengan HMAC-SHA256
- Memeriksa duplikat â Menggunakan header
webhook-iduntuk mencegah pemrosesan event yang sama dua kali - Mencatat event â Menyimpan raw webhook di tabel
webhook_eventsuntuk audit trail - Memproses event â Membuat atau memperbarui customer dan subscription di Neon
- Menangani error â Mencatat kegagalan dan menandai event sebagai belum diproses untuk dicoba kembali
Pengujian
Pengembangan lokal:- Pilih project Anda.
- Buka Deployments â deployment terbaru.
- Klik Functions â Logs.
- Buka Developer â Webhooks.
- Tambahkan endpoint dengan URL Vercel Functions Anda.
- Pilih
subscription.active,subscription.cancelled, dansubscription.renewed.