Защита от двойной отправки формы или заказа
Защитим формы, заявки и оформление заказа от дублей, которые появляются при двойном клике, медленном ответе, обновлении страницы или повторе сетевого запроса. Добавим уникальный ключ операции, безопасное повторное получение результата и проверим, что один пользовательский шаг создаёт одну запись на сайте и в подключённой системе.
Когда стоит обратиться
Обычно к нам обращаются в таких ситуациях:
- Клиент дважды нажимает кнопку на медленной форме, и менеджер получает одинаковые обращения.
- После тайм-аута браузер повторяет запрос, хотя заказ уже создан на сервере.
- Пользователь обновляет страницу подтверждения и запускает операцию второй раз.
- Сайт защищён на интерфейсе, но повторный запрос к API всё равно создаёт дубль в CRM или учётной системе.
Что именно мы сделаем
Находим точки, где повторный запрос создаёт вторую заявку, заказ или платёжное действие.
Добавляем уникальный ключ операции и блокируем повторную отправку интерфейсом.
Сохраняем результат первого запроса и корректно отвечаем на повтор с тем же ключом.
Связываем ключ с CRM или внешней системой, если она участвует в создании записи.
Проверяем двойной клик, обновление страницы, тайм-аут и повтор запроса на контрольных данных.
Что входит в стоимость
19 900 ₽ за всю работу
Разбираем выбранные формы или заказ от браузера до базы и внешней системы, добавляем idempotency key, серверное хранение результата, понятное состояние кнопки и журнал. Проверяем быстрый повтор, тайм-аут, обновление и повтор фоновой интеграции.
Что будет готово
Передадим вам
- Серверная защита выбранных форм или заказа с уникальным ключом операции.
- Понятные состояния интерфейса и журнал обработки повторных запросов.
- Протокол тестов двойного клика, обновления, тайм-аута и повтора интеграции.
Перед сдачей проверим
- Двойной клик и повтор одного ключа создают одну запись на стороне сайта.
- После обновления или повторного запроса пользователь получает результат уже начатой операции, а не новый объект.
- Для выбранной внешней системы дубль также исключён или однозначно обнаруживается по переданному идентификатору.
Как это выглядит на практике
Одна заявка после повторного клика
Отправляем форму и сразу повторяем запрос с тем же ключом. Сайт возвращает состояние первой операции без создания второй записи. Сверяем один идентификатор в базе, уведомлении и подключённой CRM. Защита проверяется на сервере; простого отключения кнопки в браузере недостаточно.
- 01
Отправляем форму и сразу повторяем запрос с тем же ключом.
- 02
Сайт возвращает состояние первой операции без создания второй записи.
- 03
Сверяем один идентификатор в базе, уведомлении и подключённой CRM.
Что понадобится для работы
От вас
- Адреса форм или сценарий заказа, примеры дублей и время их возникновения.
- Доступ к коду, базе и журналам сайта, а при интеграции — к тестовому контуру CRM или API.
- Контрольные данные и сотрудник, который подтвердит число полученных заявок или заказов.
Если у вас немного другая ситуация
Небольшие уточнения, которые помогают довести согласованный результат до рабочего состояния, уже учитываем в цене. Если по ходу работы появится отдельный крупный блок или понадобится платная лицензия, сначала обсудим варианты и стоимость. Расскажите о своей ситуации — подстроим план под неё.
- 3 000 ₽после подписания договора через Диадок
- 16 900 ₽после выполнения, демонстрации и приёмки результата
Предоплата входит в общую стоимость. Оставшуюся сумму оплачиваете после демонстрации и приёмки готовой работы.
Часто спрашивают
Об этой услуге
Чем idempotency key отличается от проверки одинакового телефона?
Ключ относится к одной попытке операции и не мешает человеку отправить новую заявку позже. Сравнение телефона может ошибочно склеить разные обращения или пропустить дубль с другим форматированием.
Можно защитить оплату тем же способом?
Да, если платёжный провайдер поддерживает ключи идемпотентности или устойчивый идентификатор заказа. Платёжный сценарий проверяем отдельно, включая уведомления и ситуацию с потерянным ответом.
Почему блокировки кнопки недостаточно?
Пользователь может обновить страницу, сеть или прокси могут повторить запрос, а интеграция — запустить повтор после тайм-аута. Сервер должен распознать ту же логическую операцию независимо от интерфейса.
Старые дубли тоже можно объединить?
Можно подготовить отдельную очистку по выбранным признакам. В этой работе останавливаем появление новых дублей и используем тестовые записи, не меняя историю без отдельной проверки.
Что увидит пользователь при долгой обработке?
Показываем состояние отправки и безопасно запрашиваем результат первой операции. Текст зависит от процесса: заявка принята, заказ создаётся или ответ пока ожидается.
Цена и изменения по ходу работы
Цена на странице окончательная?
Да. Перед началом мы сверяем исходные данные и фиксируем результат в договоре. Указанная на странице сумма покрывает согласованную работу целиком, даже если её техническая реализация потребует больше времени, чем ожидалось при оценке.
Что означает резерв незапланированных работ?
Это уже включённый в цену запас времени на небольшие связанные уточнения заказчика, которые появляются после старта: например, добавить поле, изменить формат уведомления или учесть ещё одно условие обработки.
Резерв рассчитывается по формуле: стоимость услуги × 30% ÷ 1 500 ₽. Для услуги за 30 000 ₽ это 6 часов. Эти часы относятся только к дополнительным, заранее незапланированным уточнениям. Они не являются сроком проекта и не ограничивают время на основную работу: согласованный результат мы выполняем полностью.
Можно уточнять детали уже во время работы?
Да. Небольшие связанные изменения обычно помещаются во включённый резерв и не требуют доплаты. Если новая идея заметно меняет результат или превращается в самостоятельную задачу, сначала обсудим подход и стоимость. Любое решение согласуем до выполнения.
Начало работы и оплата
Как оформляются договор и оплата?
Подписываем договор через Диадок. Предоплата составляет 3 000 ₽ и входит в общую стоимость услуги. Остаток оплачивается после демонстрации и приёмки готового результата.
Когда начинается срок выполнения?
Срок отсчитывается после согласования задачи, получения необходимых доступов и материалов, подписания договора и поступления предоплаты. Конкретную дату старта и плановый день готовности подтверждаем перед началом.
Как учитываются платные лицензии и внешние сервисы?
До старта проверяем, нужны ли тарифы, лицензии, сертификаты или дополнительные ресурсы внешних систем. Если они потребуются, заранее покажем варианты и стоимость. По возможности аккаунты и лицензии оформляются сразу на заказчика.
Проверка результата и гарантия
Как принимается готовая работа?
Вместе проверяем согласованные сценарии на контрольных данных или тестовой копии, а затем демонстрируем результат. Для интеграций сверяем передачу данных и обработку ошибок, для сайта — работу нужных страниц и действий пользователя, для отчёта — расчёты и обновление данных.
Какая гарантия действует после сдачи?
На выполненные изменения действует гарантия 3 месяца. Если в изменённой нами части обнаружится ошибка нашей реализации, проверим и исправим её без дополнительной оплаты. Переданные материалы, настройки и код остаются у заказчика.