GitHub Repository
Kode sumber lengkap dan panduan pemasangan
Pengaturan Cepat
1. Prasyarat
Anda memerlukan:- Akun Supabase dengan project yang telah dibuat
- API key Dodo Payments dari Developer â API Keys di dashboard
2. Autentikasi & Link
3. Penyiapan Database
- Buka dashboard Supabase.
- Buka SQL Editor.
- Salin seluruh isi
schema.sqldan jalankan.
4. Mengatur Secret Awal
Supabase secara otomatis menyediakanSUPABASE_URL dan SUPABASE_SERVICE_ROLE_KEY saat runtime.
Anda akan mengatur
DODO_PAYMENTS_WEBHOOK_KEY setelah deployment, setelah Anda memiliki URL webhook.5. Deploy
Function sudah disiapkan difunctions/webhook/index.ts.
6. Mendapatkan URL Webhook
URL webhook Anda adalah:7. Mendaftarkan Webhook di Dashboard 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. Mengatur Webhook Key & Redeploy
Fungsinya
Webhook handler memproses event subscription dan menyimpannya di Supabase PostgreSQL:subscription.activeâ Membuat atau memperbarui record customer dan subscriptionsubscription.cancelledâ Menandai subscription sebagai dibatalkansubscription.renewedâ Memperbarui tanggal billing berikutnya
Fitur Utama
- Signature verification â Menggunakan Dodo Payments SDK untuk memverifikasi keaslian webhook
- Idempotency â Menggunakan header
webhook-iduntuk mencegah pemrosesan duplikat - Event logging â Menyimpan semua event di tabel
webhook_eventsuntuk audit trail - Error handling â 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
Database Schema
customersâ Email, nama, dan customer ID Dodo Paymentssubscriptionsâ Status, jumlah, tanggal billing berikutnya, ditautkan ke customerwebhook_eventsâ Event log dengan webhook ID untuk idempotency
Kode Implementasi
Cara Kerjanya
Edge Function berbasis Deno:- Memverifikasi signature â Menggunakan Dodo Payments SDK untuk verifikasi HMAC-SHA256
- Memeriksa duplikat â Menggunakan header
webhook-iduntuk mencegah pemrosesan duplikat - Mencatat event â Menyimpan data webhook mentah di tabel
webhook_events - Memproses pembaruan â Membuat atau memperbarui customer dan subscription melalui Supabase client
- Menangani error â Mencatat kegagalan dan menandai event untuk dicoba kembali
Pengujian
Pengembangan lokal:Flag
--no-verify-jwt diperlukan karena webhook tidak menyertakan token JWT. Keamanan disediakan oleh signature verification webhook.- Buka Developer â Webhooks.
- Tambahkan endpoint dengan URL Supabase Anda.
- Pilih
subscription.active,subscription.cancelled, dansubscription.renewed.