
Implementasi webhook kami mengikuti spesifikasi Standard Webhooks, memastikan kompatibilitas dengan praktik terbaik industri dan pustaka webhook yang ada.
Fitur Utama
Pengiriman Waktu Nyata
Terima notifikasi instan saat peristiwa terjadi
Aman Secara Default
Verifikasi tanda tangan HMAC SHA256 termasuk
Pengulangan Otomatis
Logika pengulangan bawaan dengan backoff eksponensial
Penyaringan Peristiwa
Berlangganan hanya pada peristiwa yang Anda butuhkan
Memulai
Pilih Peristiwa untuk Diterima
Pilih peristiwa spesifik yang harus didengarkan oleh endpoint webhook Anda dengan memilihnya dari daftar peristiwa.
Dapatkan Kunci Rahasia
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
Navigasikan ke Detail Webhook
Pergi ke Dasbor Dodo Payments Anda dan navigasikan ke
Settings > Webhooks.Mengelola Langganan Peristiwa
Lihat Acara yang Tersedia
Antarmuka menampilkan semua acara webhook yang tersedia yang diorganisir dalam struktur hierarkis. Acara dikelompokkan berdasarkan kategori (misalnya,
dispute, payment, subscription).Cari dan Saring
Gunakan bilah pencarian untuk dengan cepat menemukan peristiwa tertentu dengan mengetikkan nama peristiwa atau kata kunci.
Pilih Acara
Centang kotak di sebelah acara yang ingin Anda terima. Anda dapat:
- Memilih sub-acara individu (misalnya,
dispute.accepted,dispute.challenged) - Memilih acara induk untuk menerima semua sub-acara terkait
- Menggabungkan dan mencocokkan acara tertentu berdasarkan kebutuhan Anda
Tinjau Detail Peristiwa
Arahkan kursor ke ikon informasi (ⓘ) di sebelah setiap peristiwa untuk melihat deskripsi tentang kapan peristiwa tersebut 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 |
Maksimum 8 upaya pengulangan per peristiwa webhook. Misalnya, jika sebuah webhook gagal tiga kali sebelum berhasil, total waktu pengiriman adalah sekitar 35 menit dan 5 detik dari upaya pertama.
Idempotensi
Setiap acara webhook menyertakan header unikwebhook-id. Gunakan pengidentifikasi ini untuk menerapkan idempotensi dan mencegah pemrosesan duplikat.
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 dipancarkan.
Mengamankan Webhooks
Untuk memastikan keamanan webhook Anda, selalu validasi payload dan gunakan HTTPS.Memverifikasi Tanda Tangan
Setiap permintaan webhook menyertakan headerwebhook-signature, tanda tangan HMAC SHA256 dari payload webhook dan timestamp, ditandatangani dengan kunci rahasia Anda.
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 mentah yang tepat daripayload, 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 asli.
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 Payload Webhook.
Menanggapi Webhooks
- Penangan webhook Anda harus mengembalikan
2xx status codeuntuk mengakui penerimaan acara. - Respon lainnya akan dianggap sebagai kegagalan, dan webhook akan dicoba kembali.
Praktik Terbaik
Gunakan endpoint HTTPS saja
Gunakan endpoint HTTPS saja
Selalu gunakan URL HTTPS untuk endpoint webhook. Endpoint HTTP rentan terhadap serangan man-in-the-middle dan mengekspos data webhook Anda.
Tanggapi segera
Tanggapi segera
Kembalikan kode status
200 segera setelah menerima webhook. Proses acara secara asinkron untuk menghindari timeout.Tangani acara duplikat
Tangani acara duplikat
Terapkan idempotensi menggunakan header
webhook-id untuk memproses acara yang sama beberapa kali tanpa efek samping.Amankan rahasia webhook Anda
Amankan rahasia webhook Anda
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
Pengidentifikasi 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
Pengidentifikasi bisnis Dodo Payments Anda.
Tipe acara yang memicu webhook ini (misalnya,
payment.succeeded, subscription.created).Timestamp yang diformat ISO 8601 tentang kapan peristiwa terjadi.
Payload spesifik peristiwa yang berisi informasi rinci tentang peristiwa.
Contoh Payload
Tipe Peristiwa
Telusuri semua tipe peristiwa webhook yang tersedia
Payload Peristiwa
Lihat skema payload rinci 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:Pilih Tipe Acara
Gunakan menu dropdown untuk memilih tipe acara spesifik yang ingin Anda uji (misalnya,
payment.succeeded, payment.failed, dll.).Dropdown berisi semua tipe acara webhook yang tersedia yang dapat diterima oleh endpoint Anda.
Tinjau Skema dan Contoh
Antarmuka menampilkan baik Skema (struktur data) dan Contoh (payload sampel) untuk tipe peristiwa yang dipilih.
Memverifikasi Uji Anda
Periksa Endpoint Anda
Pantau log endpoint webhook Anda untuk mengonfirmasi bahwa peristiwa uji diterima.
Verifikasi Tanda Tangan
Pastikan verifikasi tanda tangan Anda berfungsi dengan benar dengan payload uji.
Contoh Implementasi
Berikut adalah implementasi lengkap Express.js yang menunjukkan verifikasi dan penanganan webhook:Pengaturan Lanjutan
Tab Pengaturan Lanjutan menyediakan opsi konfigurasi tambahan untuk menyempurnakan perilaku endpoint webhook Anda.Pembatasan Laju (Throttling)
Kontrol laju di mana peristiwa webhook dikirim ke endpoint Anda untuk mencegah sistem Anda kewalahan.Konfigurasi Pembatasan Laju
Klik tombol Edit untuk memodifikasi pengaturan pembatasan laju.
Secara default, webhook memiliki “Tidak ada pembatasan laju” yang diterapkan, yang berarti peristiwa dikirim segera setelah terjadi.
Header Kustom
Tambahkan header HTTP kustom ke semua permintaan webhook yang dikirim ke endpoint Anda. Ini berguna untuk otentikasi, pengalihan, atau menambahkan metadata ke permintaan webhook Anda.Tambahkan Header Kustom
Di bagian “Header Kustom”, masukkan Kunci dan Nilai untuk header kustom Anda.
Transformasi
Transformasi memungkinkan Anda untuk memodifikasi payload webhook dan mengarahkannya ke URL yang berbeda. Fitur kuat ini memungkinkan Anda untuk:- Memodifikasi struktur payload sebelum pemrosesan
- Mengarahkan webhook ke endpoint yang berbeda berdasarkan konten
- Menambahkan atau menghapus bidang dari payload
- Mengubah format data
Konfigurasi Transformasi
Klik Edit transformasi untuk mendefinisikan aturan transformasi Anda.
Anda dapat menggunakan JavaScript untuk mentransformasi payload webhook dan menentukan URL target yang berbeda.
Memantau Log Webhook
Tab Log memberikan visibilitas komprehensif ke dalam status pengiriman webhook Anda, memungkinkan Anda untuk memantau, melakukan debug, dan mengelola peristiwa webhook secara efektif.
Pemantauan Aktivitas
Tab Aktivitas memberikan wawasan waktu nyata ke dalam kinerja pengiriman webhook Anda dengan analitik visual.
Pemberitahuan Email
Tetap terinformasi tentang kesehatan webhook Anda dengan notifikasi email otomatis. Ketika pengiriman webhook mulai gagal atau endpoint Anda berhenti merespons, Anda akan menerima pemberitahuan email sehingga Anda dapat dengan cepat menangani masalah dan menjaga integrasi Anda tetap berjalan lancar.
Aktifkan Pemberitahuan Email
Navigasikan ke Pengaturan Pemberitahuan
Pergi ke Dasbor Dodo Payments Anda dan navigasikan ke Dasbor → Webhooks → Pemberitahuan.
Aktifkan Notifikasi Email
Alihkan Notifikasi email untuk mulai menerima pemberitahuan tentang masalah pengiriman webhook.
Deploy ke Platform Cloud
Siap untuk menerapkan penangan webhook Anda ke produksi? Kami menyediakan panduan spesifik platform untuk membantu Anda menerapkan webhook ke penyedia cloud populer dengan praktik terbaik untuk setiap platform.Vercel
Terapkan webhook ke Vercel dengan fungsi serverless
Cloudflare Workers
Jalankan webhook di jaringan edge Cloudflare
Supabase Edge Functions
Integrasikan webhook dengan Supabase
Netlify Functions
Terapkan webhook sebagai fungsi serverless Netlify
Setiap panduan platform mencakup pengaturan lingkungan, verifikasi tanda tangan, dan langkah-langkah penerapan yang spesifik untuk penyedia tersebut.
