
Implementasi webhook kami mengikuti spesifikasi Standard Webhooks, memastikan kompatibilitas dengan praktik terbaik industri dan pustaka webhook yang sudah ada.
Fitur Utama
Real-time Delivery
Terima notifikasi instan ketika peristiwa terjadi
Secure by Default
Pemeriksaan tanda tangan HMAC SHA256 disertakan
Automatic Retries
Logika percobaan ulang bawaan dengan exponential backoff
Event Filtering
Berlangganan hanya pada peristiwa yang Anda perlukan
Memulai
Select Events to Receive
Pilih peristiwa spesifik yang harus didengarkan endpoint webhook Anda dengan memilihnya dari daftar peristiwa.
Get Secret Key
Dapatkan
Secret Key webhook Anda dari halaman pengaturan. Anda akan menggunakan ini untuk memverifikasi keaslian webhook yang diterima.Mengonfigurasi Peristiwa yang Didaftarkan
Anda dapat mengonfigurasi peristiwa spesifik yang ingin mereka terima untuk setiap endpoint webhook.Mengakses Konfigurasi Peristiwa
Mengelola Langganan Peristiwa
View Available Events
Antarmuka menampilkan semua peristiwa webhook yang tersedia yang disusun dalam struktur hierarkis. Peristiwa dikelompokkan berdasarkan kategori (misalnya
dispute, payment, subscription).Search and Filter
Gunakan bilah pencarian untuk dengan cepat menemukan peristiwa tertentu dengan mengetikkan nama peristiwa atau kata kunci.
Select Events
Centang kotak di sebelah peristiwa yang ingin Anda terima. Anda dapat:
- Memilih sub-peristiwa individual (misalnya
dispute.accepted,dispute.challenged) - Memilih peristiwa induk untuk menerima semua sub-peristiwa terkait
- Menggabungkan dan menyesuaikan peristiwa tertentu sesuai kebutuhan Anda
Review Event Details
Arahkan kursor ke ikon informasi (ⓘ) di samping setiap peristiwa untuk melihat deskripsi kapan peristiwa itu dipicu.
Pengiriman Webhook
Timeout
Webhook memiliki jendela timeout 15 detik untuk operasi koneksi dan baca. Pastikan endpoint Anda merespons dengan cepat untuk menghindari timeout.Pengulangan Otomatis
Jika pengiriman webhook gagal, Dodo Payments secara otomatis mencoba ulang dengan backoff eksponensial untuk mencegah sistem Anda kewalahan.| Upaya | Penundaan | Deskripsi |
|---|---|---|
| 1 | Segera | Pengulangan pertama terjadi segera |
| 2 | 5 detik | Upaya kedua setelah penundaan singkat |
| 3 | 5 menit | Upaya ketiga dengan backoff yang meningkat |
| 4 | 30 menit | Upaya keempat melanjutkan backoff |
| 5 | 2 jam | Upaya kelima dengan penundaan yang diperpanjang |
| 6 | 5 jam | Upaya keenam dengan penundaan yang lebih lama |
| 7 | 10 jam | Upaya ketujuh dengan penundaan maksimum |
| 8 | 10 jam | Upaya terakhir - webhook ditandai sebagai gagal jika tidak berhasil |
Maksimal 8 percobaan ulang per peristiwa webhook. Misalnya, jika webhook gagal tiga kali sebelum berhasil, total waktu pengiriman sekitar 35 menit 5 detik dari percobaan pertama.
Idempotensi
Each webhook event includes a uniquewebhook-id header. Use this identifier to implement idempotency and prevent duplicate processing.
Urutan Peristiwa
Peristiwa webhook mungkin tiba tidak teratur karena pengulangan atau kondisi jaringan. Rancang sistem Anda untuk menangani peristiwa dalam urutan apa pun.Anda akan menerima payload terbaru pada saat pengiriman, terlepas dari kapan peristiwa webhook awalnya diterbitkan.
Mengamankan Webhooks
Untuk memastikan keamanan webhook Anda, selalu validasi payload dan gunakan HTTPS.Memverifikasi Tanda Tangan
Each webhook request includes awebhook-signature header, an HMAC SHA256 signature of the webhook payload and timestamp, signed with your secret key.
Verifikasi SDK (disarankan)
Semua SDK resmi menyertakan pembantu bawaan untuk memvalidasi dan mengurai webhook yang masuk dengan aman. Dua metode tersedia:unwrap(): Memverifikasi tanda tangan menggunakan kunci rahasia webhook Andaunsafe_unwrap(): Mengurai payload tanpa verifikasi
Verifikasi Manual (alternatif)
Jika Anda tidak menggunakan SDK, Anda dapat memverifikasi tanda tangan sendiri mengikuti spesifikasi Standard Webhooks:- Bangun pesan yang ditandatangani dengan menggabungkan
webhook-id,webhook-timestamp, dan string mentahpayloadyang persis, dipisahkan oleh titik (.). - Hitung HMAC SHA256 dari string tersebut menggunakan kunci rahasia webhook Anda dari Dasbor.
- Bandingkan tanda tangan yang dihitung dengan header
webhook-signature. Jika cocok, webhook tersebut otentik.
Kami mengikuti spesifikasi Standard Webhooks. Anda dapat menggunakan pustaka mereka untuk memverifikasi tanda tangan: https://github.com/standard-webhooks/standard-webhooks/tree/main/libraries. Untuk format payload peristiwa, lihat Webhook Payload.
Menanggapi Webhooks
- Handler webhook Anda harus mengembalikan kode status
2xx status codeuntuk mengakui penerimaan peristiwa. - Respons lain akan dianggap sebagai kegagalan, dan webhook akan dicoba ulang.
Praktik Terbaik
Use HTTPS endpoints only
Use HTTPS endpoints only
Selalu gunakan URL HTTPS untuk endpoint webhook. Endpoint HTTP rentan terhadap serangan man-in-the-middle dan mengekspos data webhook Anda.
Respond immediately
Respond immediately
Kembalikan kode status
200 segera setelah menerima webhook. Proses peristiwa secara asinkron agar tidak melewati batas waktu.Handle duplicate events
Handle duplicate events
Terapkan idempotensi menggunakan header
webhook-id untuk memproses peristiwa yang sama beberapa kali tanpa efek samping.Secure your webhook secret
Secure your webhook secret
Simpan rahasia webhook Anda dengan aman menggunakan variabel lingkungan atau pengelola rahasia. Jangan pernah mengkomit rahasia ke kontrol versi.
Struktur Payload Webhook
Memahami struktur payload webhook membantu Anda mengurai dan memproses peristiwa dengan benar.Format Permintaan
Header
Identitas unik untuk peristiwa webhook ini. Gunakan ini untuk pemeriksaan idempotensi.
Tanda tangan HMAC SHA256 untuk memverifikasi keaslian webhook.
Timestamp Unix (dalam detik) saat webhook dikirim.
Body Permintaan
Identifier bisnis Dodo Payments Anda.
Jenis acara yang memicu webhook ini (misalnya
payment.succeeded, subscription.active).Timestamp berformat ISO 8601 saat peristiwa terjadi.
Payload khusus peristiwa yang berisi informasi rinci tentang peristiwa tersebut.
Contoh Payload
Event Types
Jelajahi semua jenis peristiwa webhook yang tersedia
Event Payloads
Lihat skema payload terperinci untuk setiap peristiwa
Menguji Webhooks
Anda dapat menguji integrasi webhook Anda langsung dari dasbor Dodo Payments untuk memastikan endpoint Anda berfungsi dengan benar sebelum diluncurkan.
Mengakses Antarmuka Pengujian
Menguji Webhook Anda
Antarmuka pengujian menyediakan cara komprehensif untuk menguji endpoint webhook Anda:Select Event Type
Gunakan menu dropdown untuk memilih tipe peristiwa spesifik yang ingin Anda uji (misalnya
payment.succeeded, payment.failed, dll.).Dropdown berisi semua tipe peristiwa webhook yang tersedia yang dapat diterima endpoint Anda.
Review Schema and Example
Antarmuka menampilkan baik Schema (struktur data) maupun Example (payload contoh) untuk tipe peristiwa yang dipilih.
Memverifikasi Uji Anda
Contoh Implementasi
Berikut adalah implementasi lengkap Express.js yang menunjukkan verifikasi dan penanganan webhook:Menguji Webhook dengan CLI
Dodo Payments CLI menyediakan dua perintah untuk menguji webhook selama pengembangan lokal, tanpa perlu meninggalkan terminal Anda.Mendengarkan Webhook Langsung Secara Lokal
Teruskan peristiwa webhook nyata dari akun mode uji Anda ke server pengembangan lokal Anda secara real time:http://localhost:3000/webhook), mempertahankan semua header termasuk header tanda tangan untuk pengujian verifikasi.
Pendengar hanya bekerja dengan kunci API mode uji. Jalankan
dodo login dan pilih Mode Uji sebelum menggunakan perintah ini.Memicu Peristiwa Webhook Tiruan
Kirim payload webhook tiruan ke endpoint mana pun tanpa membuat transaksi nyata:CLI Webhook Testing Docs
Lihat dokumentasi lengkap pengujian webhook CLI
Pengaturan Lanjutan
Tab Pengaturan Lanjutan menyediakan opsi konfigurasi tambahan untuk menyetel perilaku endpoint webhook Anda secara halus.Pembatasan Laju (Throttling)
Kontrol laju pengiriman peristiwa webhook ke endpoint Anda untuk mencegah sistem Anda kewalahan.Configure Rate Limit
Klik tombol Edit untuk mengubah pengaturan batas laju.
Secara default, webhook memiliki “No rate limit” yang berarti peristiwa dikirimkan segera setelah terjadi.
Header Kustom
Tambahkan header HTTP kustom ke semua permintaan webhook yang dikirim ke endpoint Anda. Ini berguna untuk otentikasi, routing, atau menambahkan metadata ke permintaan webhook Anda.Transformasi
Transformasi memungkinkan Anda memodifikasi payload webhook dan mengarahkannya ke URL berbeda. Fitur kuat ini memungkinkan Anda untuk:- Mengubah struktur payload sebelum diproses
- Mengarahkan webhook ke endpoint berbeda berdasarkan isi
- Menambahkan atau menghapus field dari payload
- Mengubah format data
Configure Transformation
Klik Edit transformation untuk mendefinisikan aturan transformasi Anda.
Anda dapat menggunakan JavaScript untuk mentransformasi payload webhook dan menentukan URL target berbeda.
Memantau Log Webhook
Tab Logs menyediakan visibilitas komprehensif terhadap status pengiriman webhook Anda, memungkinkan Anda memantau, mendebug, dan mengelola peristiwa webhook secara efektif.
Pemantauan Aktivitas
Tab Activity menyediakan wawasan waktu nyata tentang kinerja pengiriman webhook Anda dengan analitik visual.
Peringatan Email
Tetap mendapat informasi tentang kesehatan webhook Anda dengan notifikasi email otomatis. Ketika pengiriman webhook mulai gagal atau endpoint Anda berhenti merespons, Anda akan menerima peringatan email agar bisa segera menangani masalah dan menjaga integrasi tetap berjalan lancar.
Mengaktifkan Peringatan Email
Navigate to Alerting Settings
Buka Dashboard Dodo Payments Anda dan arahkan ke Dashboard → Webhooks → Alerting.
Enable Email Notifications
Aktifkan Email notifications untuk mulai menerima notifikasi tentang masalah pengiriman webhook.
Menyebarkan ke Platform Cloud
Siap menyebarkan handler webhook Anda ke produksi? Kami menyediakan panduan khusus platform untuk membantu Anda menyebarkan webhook ke penyedia cloud populer dengan praktik terbaik untuk setiap platform.Vercel
Sebarkan webhook ke Vercel dengan fungsi serverless
Cloudflare Workers
Jalankan webhook di jaringan edge Cloudflare
Supabase Edge Functions
Integrasikan webhook dengan Supabase
Netlify Functions
Sebarkan webhook sebagai fungsi serverless Netlify
Setiap panduan platform mencakup pengaturan lingkungan, verifikasi tanda tangan, dan langkah penyebaran khusus penyedia tersebut.
