Dapatkan notifikasi acara real-time untuk integrasi Zonos Anda.
Webhook menyediakan cara bagi Zonos untuk secara proaktif memberi tahu sistem eksternal Anda setiap kali acara tertentu terjadi. Ketika acara yang dilanggan terjadi, Zonos akan mengirim permintaan HTTP POST ke URL webhook yang Anda tentukan. Badan permintaan akan berisi detail acara, memungkinkan sistem Anda menangani acara secara terprogram.
Webhook berguna untuk mengintegrasikan Zonos dengan platform lain, memicu alur kerja otomatis, dan menjaga data tetap sinkron di seluruh sistem secara real-time. Misalnya, Anda dapat menggunakan webhook untuk:
Perbarui sistem manajemen pesanan Anda ketika pesanan dibuat di Zonos
Beri tahu penyedia pemenuhan Anda ketika pengiriman dibatalkan
Catat perubahan status pesanan internasional untuk tujuan audit
Semua jenis webhook yang tersedia disertakan dalam enum WebhookType. Contoh payload untuk masing-masing dapat ditemukan dalam panduan Jenis acara kami.
Penting: Simpan nilai secret saat Anda membuat webhook — nilai ini hanya dikembalikan di sini, dan Anda akan memerlukannya untuk memverifikasi tanda tangan webhook. Lihat Memverifikasi tanda tangan webhook di bawah.
Setiap permintaan webhook yang dikirim Zonos menyertakan header zonos-signature sehingga Anda dapat memastikan permintaan tersebut benar-benar berasal dari Zonos dan payload-nya tidak diubah selama pengiriman.
timestamp — waktu, dalam milidetik epoch Unix, saat permintaan ditandatangani.
hmac — tanda tangan HMAC-SHA256 dari isi permintaan JSON mentah, dihitung menggunakan secret webhook Anda sebagai kunci dan dienkode Base64.
Untuk memverifikasi permintaan:
Uraikan nilai timestamp dan hmac dari header zonos-signature.
Hitung tanda tangan HMAC-SHA256 Anda sendiri atas isi permintaan mentah yang belum diurai, menggunakan secret yang Anda terima saat membuat webhook.
Bandingkan tanda tangan yang Anda hitung dengan nilai hmac menggunakan perbandingan waktu konstan, dan tolak permintaan jika keduanya tidak cocok.
Secara opsional, tolak permintaan yang timestamp-nya lebih tua dari beberapa menit untuk mencegah replay dari permintaan yang direkam. Zonos sendiri tidak menerapkan batas waktu pengiriman, jadi pemeriksaan ini terserah Anda.
Catatan: Jika Anda mengonfigurasi header kustom pada webhook Anda, header tersebut juga disertakan apa adanya pada setiap permintaan bersama zonos-signature.
Webhook
Dengarkan acara dengan webhook
Dapatkan notifikasi acara real-time untuk integrasi Zonos Anda.
Webhook menyediakan cara bagi Zonos untuk secara proaktif memberi tahu sistem eksternal Anda setiap kali acara tertentu terjadi. Ketika acara yang dilanggan terjadi, Zonos akan mengirim permintaan HTTP POST ke URL webhook yang Anda tentukan. Badan permintaan akan berisi detail acara, memungkinkan sistem Anda menangani acara secara terprogram.
Webhook berguna untuk mengintegrasikan Zonos dengan platform lain, memicu alur kerja otomatis, dan menjaga data tetap sinkron di seluruh sistem secara real-time. Misalnya, Anda dapat menggunakan webhook untuk:
Jenis webhook
Semua jenis webhook yang tersedia disertakan dalam enum
WebhookType. Contoh payload untuk masing-masing dapat ditemukan dalam panduan Jenis acara kami.Membuat webhook
Untuk membuat webhook melalui API:
mutation WebhookCreate($input: WebhookCreateInput!) {webhookCreate(input: $input) {idurltypestatussecretheaders {key}}}Edit detail webhook
Untuk mengedit webhook yang ada melalui API:
mutation WebhookUpdate($input: WebhookUpdateInput!) {webhookUpdate(input: $input) {idurltypestatus}}Memverifikasi tanda tangan webhook
Setiap permintaan webhook yang dikirim Zonos menyertakan header
zonos-signaturesehingga Anda dapat memastikan permintaan tersebut benar-benar berasal dari Zonos dan payload-nya tidak diubah selama pengiriman.Nilai header memiliki format:
timestamp— waktu, dalam milidetik epoch Unix, saat permintaan ditandatangani.hmac— tanda tangan HMAC-SHA256 dari isi permintaan JSON mentah, dihitung menggunakan secret webhook Anda sebagai kunci dan dienkode Base64.Untuk memverifikasi permintaan:
timestampdanhmacdari headerzonos-signature.hmacmenggunakan perbandingan waktu konstan, dan tolak permintaan jika keduanya tidak cocok.timestamp-nya lebih tua dari beberapa menit untuk mencegah replay dari permintaan yang direkam. Zonos sendiri tidak menerapkan batas waktu pengiriman, jadi pemeriksaan ini terserah Anda.const crypto = require('crypto');function verifyZonosWebhook(rawBody, signatureHeader, secret) {const [timestampPart, hmacPart] = signatureHeader.split(',');const receivedHmac = hmacPart.split('=')[1];const expectedHmac = crypto.createHmac('sha256', secret).update(rawBody).digest('base64');const receivedBuffer = Buffer.from(receivedHmac);const expectedBuffer = Buffer.from(expectedHmac);if (receivedBuffer.length !== expectedBuffer.length) {return false;}return crypto.timingSafeEqual(receivedBuffer, expectedBuffer);}Lihat log webhook
Untuk melihat log webhook melalui API:
query WebhookLogs($first: Int$after: String$filter: WebhookLogsFilterInput) {webhookLogs(first: $first, after: $after, filter: $filter) {edges {node {idtypeurlcreatedAtresponseStatus}}}}WebhookCreateInput WebhookLogsFilterInput WebhookUpdateInput
webhookCreate webhookUpdate
Apakah halaman ini bermanfaat?