Получайте уведомления о событиях в реальном времени для вашей интеграции Zonos.
Вебхуки предоставляют способ для Zonos активно уведомлять ваши внешние системы всякий раз, когда происходят определенные события. Когда происходит событие, на которое подписан вебхук, Zonos отправит HTTP POST запрос на указанный вами URL вебхука. Тело запроса будет содержать детали события, что позволит вашей системе обработать событие программно.
Вебхуки полезны для интеграции Zonos с другими платформами, запуска автоматизированных рабочих процессов и синхронизации данных между системами в реальном времени. Например, вы можете использовать вебхуки для:
Обновления системы управления заказами при создании заказа в Zonos
Уведомления фулфилмент-провайдера при отмене отправки
Логирования изменений статуса международных заказов в целях аудита
Важно: Сохраните значение secret при создании вебхука — оно возвращается только здесь, и оно понадобится вам для проверки подписей вебхуков. См. Проверка подписей вебхуков ниже.
Каждый запрос вебхука, отправляемый Zonos, включает заголовок zonos-signature, чтобы вы могли подтвердить, что запрос действительно пришел от Zonos и что содержимое не было изменено при передаче.
timestamp — время в миллисекундах Unix-эпохи, когда запрос был подписан.
hmac — подпись HMAC-SHA256 необработанного тела JSON-запроса, вычисленная с использованием секрета вашего вебхука в качестве ключа и закодированная в Base64.
Чтобы проверить запрос:
Извлеките значения timestamp и hmac из заголовка zonos-signature.
Вычислите собственную подпись HMAC-SHA256 по необработанному, неразобранному телу запроса, используя секрет, полученный при создании вебхука.
Сравните вычисленную подпись со значением hmac, используя сравнение за постоянное время, и отклоните запрос, если они не совпадают.
При необходимости отклоняйте запросы, в которых timestamp старше нескольких минут, чтобы защититься от повторного воспроизведения перехваченного запроса. Zonos не применяет собственное окно доставки, поэтому эта проверка остается на ваше усмотрение.
Примечание: Если вы настроили пользовательские заголовки для своего вебхука, они также включаются без изменений в каждый запрос вместе с zonos-signature.
Вебхуки
Прослушивайте события с вебхуками
Получайте уведомления о событиях в реальном времени для вашей интеграции Zonos.
Вебхуки предоставляют способ для Zonos активно уведомлять ваши внешние системы всякий раз, когда происходят определенные события. Когда происходит событие, на которое подписан вебхук, Zonos отправит HTTP POST запрос на указанный вами URL вебхука. Тело запроса будет содержать детали события, что позволит вашей системе обработать событие программно.
Вебхуки полезны для интеграции Zonos с другими платформами, запуска автоматизированных рабочих процессов и синхронизации данных между системами в реальном времени. Например, вы можете использовать вебхуки для:
Типы вебхуков
Все доступные типы вебхуков включены в перечисление
WebhookType. Примеры полезных данных для каждого можно найти в нашем руководстве Типы событий.Создание вебхуков
Для создания вебхука через API:
mutation WebhookCreate($input: WebhookCreateInput!) {webhookCreate(input: $input) {idurltypestatussecretheaders {key}}}Редактирование деталей вебхука
Для редактирования существующего вебхука через API:
mutation WebhookUpdate($input: WebhookUpdateInput!) {webhookUpdate(input: $input) {idurltypestatus}}Проверка подписей вебхуков
Каждый запрос вебхука, отправляемый Zonos, включает заголовок
zonos-signature, чтобы вы могли подтвердить, что запрос действительно пришел от Zonos и что содержимое не было изменено при передаче.Значение заголовка имеет формат:
timestamp— время в миллисекундах Unix-эпохи, когда запрос был подписан.hmac— подпись HMAC-SHA256 необработанного тела JSON-запроса, вычисленная с использованием секрета вашего вебхука в качестве ключа и закодированная в Base64.Чтобы проверить запрос:
timestampиhmacиз заголовкаzonos-signature.hmac, используя сравнение за постоянное время, и отклоните запрос, если они не совпадают.timestampстарше нескольких минут, чтобы защититься от повторного воспроизведения перехваченного запроса. Zonos не применяет собственное окно доставки, поэтому эта проверка остается на ваше усмотрение.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);}Просмотр логов вебхука
Для просмотра логов вебхука через API:
query WebhookLogs($first: Int$after: String$filter: WebhookLogsFilterInput) {webhookLogs(first: $first, after: $after, filter: $filter) {edges {node {idtypeurlcreatedAtresponseStatus}}}}WebhookCreateInput WebhookLogsFilterInput WebhookUpdateInput
webhookCreate webhookUpdate
Была ли эта страница полезной?