Пятый фактор
Обсудить задачу
1С-Битрикс

Защита платёжных webhook от дублей и потери событий

Разбираем формат уведомления и официальный способ проверки подлинности для одного согласованного провайдера. Формируем уникальный ключ события и добавляем идемпотентную проверку до изменения заказа или создания оплаты.

Срок: 6 рабочих дней

Когда стоит обратиться

Обычно к нам обращаются в таких ситуациях:

  • Повторное уведомление платёжной системы дважды меняет заказ, создаёт дубль операции или повторно запускает бизнес-процесс.
  • При временном HTTP 500 уведомление теряется, а ответственный узнаёт о проблеме только после обращения покупателя.
  • В журнале Битрикс невозможно доказать, какой запрос пришёл, прошёл ли проверку и чем завершилась обработка.

Что именно мы сделаем

01

Разбираем формат уведомления и официальный способ проверки подлинности для одного согласованного провайдера.

02

Формируем уникальный ключ события и добавляем идемпотентную проверку до изменения заказа или создания оплаты.

03

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

04

Добавляем очередь до пяти повторов с задержкой и карантин для событий, которые требуют ручного разбора.

05

Проверяем дубль, неверную подпись, задержку, HTTP 500 и успешную повторную доставку.

Что входит в стоимость

24 900 ₽ за всю работу

Один сайт на 1С-Битрикс, один платёжный провайдер и один webhook-обработчик. Нужны документированный способ проверки подлинности и устойчивый ID события; если ID нет, используем составной ключ «тип события + payment_id». Добавляем журнал, очередь до пяти повторов, карантин и ручной перезапуск; проводим пять тестов.

Что будет готово

Материалы

Передадим вам

  • Защищённый обработчик webhook с проверкой подписи и идемпотентности.
  • Журнал входящих событий, повторов и окончательных ошибок.
  • Протокол пяти тестов с ожидаемыми и фактическими результатами.
Проверка

Перед сдачей проверим

  • Повторная доставка одного тестового события сохраняет одну оплату и однократное изменение заказа.
  • Событие после временной ошибки обрабатывается очередью и получает итоговый статус в журнале.
  • Запрос с неверной подписью отклоняется до выполнения действий с заказом.

Как это выглядит на практике

Надёжная обработка оплаты с проверкой подписи, защитой от дублей, повторами и журналом

Повтор webhook после временной ошибки

Типичная ситуация: повторное уведомление платёжной системы дважды меняет заказ, создаёт дубль операции или повторно запускает бизнес-процесс. Сначала отправляем корректно подписанное тестовое уведомление и временно возвращаем ошибку сервера, затем убеждаемся, что событие сохранено в журнале и поставлено в очередь повторов, а в финале возвращаем штатную работу обработчика и запускаем безопасную повторную попытку.

  1. 01

    Отправляем корректно подписанное тестовое уведомление и временно возвращаем ошибку сервера.

  2. 02

    Убеждаемся, что событие сохранено в журнале и поставлено в очередь повторов.

  3. 03

    Возвращаем штатную работу обработчика и запускаем безопасную повторную попытку.

  4. 04

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

Что понадобится для работы

От вас

  • Версии Битрикс, PHP и базы данных, список установленных модулей и описание проблемы на конкретном примере.
  • Доступ к тестовой копии, административной части и журналам либо контакт разработчика и администратора.
  • Типичный рабочий сценарий для итоговой проверки: по нему подтвердим, что запрос с неверной подписью отклоняется до выполнения действий с заказом.

Если у вас немного другая ситуация

Небольшие уточнения, которые помогают довести согласованный результат до рабочего состояния, уже учитываем в цене. Если по ходу работы появится отдельный крупный блок или понадобится платная лицензия, сначала обсудим варианты и стоимость. Расскажите о своей ситуации — подстроим план под неё.

Стоимость работ 24 900 ₽ полная стоимость известна заранее
  1. 3 000 ₽после подписания договора через Диадок
  2. 21 900 ₽после выполнения, демонстрации и приёмки результата

Предоплата входит в общую стоимость. Оставшуюся сумму оплачиваете после демонстрации и приёмки готовой работы.

Часто спрашивают

Об этой услуге

Почему провайдер присылает одно уведомление несколько раз?

Повторная доставка является штатным механизмом надёжности. Обработчик сайта должен распознавать уже выполненное событие и отвечать без повторного действия.

Журнал будет хранить данные банковской карты?

В журнале будут только технические идентификаторы, время, тип события и результат обработки. Секреты и полные платёжные реквизиты исключим из хранения; это отдельно проверим перед запуском.

Можно подключить два платёжных сервиса?

Настраиваем защиту webhook для одного провайдера и одного обработчика. Если сервисов несколько, пришлите их документацию — сравним подпись, формат и логику повторов и предлагаем общую схему.

Цена и изменения по ходу работы

Цена на странице окончательная?

Да. Перед началом мы сверяем исходные данные и фиксируем результат в договоре. Указанная на странице сумма покрывает согласованную работу целиком, даже если её техническая реализация потребует больше времени, чем ожидалось при оценке.

Что означает резерв незапланированных работ?

Это уже включённый в цену запас времени на небольшие связанные уточнения заказчика, которые появляются после старта: например, добавить поле, изменить формат уведомления или учесть ещё одно условие обработки.

Резерв рассчитывается по формуле: стоимость услуги × 30% ÷ 1 500 ₽. Для услуги за 30 000 ₽ это 6 часов. Эти часы относятся только к дополнительным, заранее незапланированным уточнениям. Они не являются сроком проекта и не ограничивают время на основную работу: согласованный результат мы выполняем полностью.

Можно уточнять детали уже во время работы?

Да. Небольшие связанные изменения обычно помещаются во включённый резерв и не требуют доплаты. Если новая идея заметно меняет результат или превращается в самостоятельную задачу, сначала обсудим подход и стоимость. Любое решение согласуем до выполнения.

Начало работы и оплата

Как оформляются договор и оплата?

Подписываем договор через Диадок. Предоплата составляет 3 000 ₽ и входит в общую стоимость услуги. Остаток оплачивается после демонстрации и приёмки готового результата.

Когда начинается срок выполнения?

Срок отсчитывается после согласования задачи, получения необходимых доступов и материалов, подписания договора и поступления предоплаты. Конкретную дату старта и плановый день готовности подтверждаем перед началом.

Как учитываются платные лицензии и внешние сервисы?

До старта проверяем, нужны ли тарифы, лицензии, сертификаты или дополнительные ресурсы внешних систем. Если они потребуются, заранее покажем варианты и стоимость. По возможности аккаунты и лицензии оформляются сразу на заказчика.

Проверка результата и гарантия

Как принимается готовая работа?

Вместе проверяем согласованные сценарии на контрольных данных или тестовой копии, а затем демонстрируем результат. Для интеграций сверяем передачу данных и обработку ошибок, для сайта — работу нужных страниц и действий пользователя, для отчёта — расчёты и обновление данных.

Какая гарантия действует после сдачи?

На выполненные изменения действует гарантия 3 месяца. Если в изменённой нами части обнаружится ошибка нашей реализации, проверим и исправим её без дополнительной оплаты. Переданные материалы, настройки и код остаются у заказчика.

Следующий шаг

Опишите задачу

Расскажите, что происходит сейчас и какой результат хотите получить. Можно указать сайт, CMS, 1С, CRM, ERP или другую систему. Если подходящую услугу выбирать рано, просто опишите ситуацию — мы разберёмся и предложим следующий шаг.