IOSOR База знаний

Вебхуки второго месяца: дубликаты потребления не должны списывать средства дважды

Узнайте, как IOSOR управляет повторными вебхуками и обеспечивает идемпотентность баланса при масштабировании во второй месяц работы.

Вебхуки второго месяца: дубликаты потребления не должны списывать средства дважды.

Привычки потребления во второй месяц работы

Ко второму месяцу использования платформы IOSOR разработчики обычно привыкают к тому, что доставка вебхуков — это не всегда линейный процесс. Сетевые задержки могут приводить к повторным отправкам событий. Это нормальная практика для CPaaS, а не ошибка системы. Главная задача здесь — гарантировать, что повторная доставка одного и того же уведомления не приведет к двойному списанию с вашего баланса. Наша система четко разделяет событие передачи данных и событие уведомления об этом.

Блокировка двойных транзакций по Message ID

Для обеспечения финансовой точности IOSOR использует уникальные идентификаторы сообщений, которые служат ключами идемпотентности. Каждое событие, будь то OTP или SMS, имеет свой ID. Даже если ваш сервер получит один и тот же вебхук дважды из-за специфики подпись webhook и окно replay, биллинговая логика заблокирует повторную транзакцию. Это критически важно для поддержания точности при работе с 10DLC и другими типами трафика.

Тип события ID сообщения Попытка доставки Биллинг
Исходящее SMS msg_7710 Основная Списание
Webhook DLR msg_7710 Повтор 1 Игнорирование
Webhook DLR msg_7710 Повтор 2 Игнорирование
Исходящее SMS msg_7711 Основная Списание

Целостность баланса при повторных запросах

После завершения этапа тестирования поддержание минимального порога в USD 20 становится стандартом. Этот лимит гарантирует бесперебойную работу JIT-назначения номеров. Система спроектирована так, чтобы обрабатывать тысячи вебхуков одновременно, не допуская расхождений в балансе. Мы придерживаемся модели white-label, где прозрачность расчетов является приоритетом: вы платите за «факт отправки», а не за «количество уведомлений» об этой отправке.

Пороги масштабирования и мягкий аудит

При росте трафика и приближении к этапу, когда требуется мягкий аудит (обычно при обороте около USD 1,000/month), система проверяет корректность обработки дублей. Это необходимо для защиты вашего аккаунта и подтверждения того, что логика Дубликат webhook не должен писать второй debit работает корректно на выбранных маршрутах. Такой подход исключает финансовые потери из-за технических особенностей протоколов передачи данных.

Техническая сверка окон повтора и логов

Важно различать технический повтор вебхука и финансовую отчетность. В то время как вебхук может быть отправлен несколько раз для гарантии получения, в итоговом отчете будет только одна строка для каждого ID. Это избавляет от проблемы, когда Неделя счетов вебхуков: дубли доставок в счёте мешают сверке баланса. Благодаря JIT-подходу, IOSOR фиксирует только реальные изменения состояния сети, отсекая избыточный шум.

Начните с IOSOR

Перейдите в консоль IOSOR и откройте раздел конфигурации Webhook, чтобы проверить обработку заголовков с уникальными Message ID. Настройте таблицу идемпотентности в вашей базе данных с фиксацией первичного ключа каждого входящего события, гарантируя возврат HTTP 200 на любые повторные вызовы. Это полностью защитит ваш внутренний учет от двойных списаний при сетевых задержках.

Итог IOSOR

Повторная доставка вебхуков является стандартом надежности при задержках квитирования, а не платформенным сбоем. Использование атомарных блокировок по идентификатору сообщения гарантирует, что даже при многократном повторе одного события финансовый учет останется строго корректным.

Делайте обработчики входящих уведомлений идемпотентными и проверяйте наличие ID сообщения в реестре до выполнения списания. Не полагайтесь на временные паузы между вызовами и не проводите транзакцию повторно при получении дублирующего payload.

Был ли материал полезен?

Связанные гайды