← Назад в блог

Есть Запрос в августе 2026: платежи, безопасность, почта и генерация контента

Опубликовано
•
4 мин чтения
•
--- просмотров

В августе 2026 года я потратил 17 рабочих дней на estzapros.ru, сервис подбора подрядчиков. За месяц вышло 196 коммитов в 413 файлах: добавлено 38 744 строки, удалено 15 897. Все цифры здесь взяты из истории репозитория.

Работа разделилась на несколько линий: платежи, безопасность, почта, генерация контента, новые возможности, интерфейс и финальная проверка боевого сайта. Ниже каждая идёт в одном порядке: что было не так, что изменили и к чему это привело.

Платежи

Проблема. Оплата тарифов работала с ошибками, которые приводили к потере денег и зависшим покупкам. Сумма местами считалась неверно, а при сбое обработки сайт всё равно отвечал банку OK.

Решение. Шесть исправлений. Статус покупки и выдача купленного теперь проходят одной транзакцией, а при сбое обработки банк получает RETRY вместо OK. Подписки ищутся по статусу, а не по колонке, которой не существовало, а реквизиты T-Bank читаются из конфигурации, а не из окружения.

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

Безопасность

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

Решение. Восемь исправлений. Право на ответ теперь проверяется в контроллере, модераторские ручки закрыты авторизацией, документация API убрана под пароль, а файл .env закрывается от посторонних после каждой выкатки.

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

Почта

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

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

Результат. Письма сайта снова доходят до адресатов, а люди, застрявшие без доступа, могут войти.

Генерация контента

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

Решение. Четыре воркфлоу в n8n: новые объявления по расписанию, отклики на свежие и на старые запросы по двум расписаниям, общий подчинённый воркфлоу генерации откликов и воркфлоу алертов, если серия падает. Сгенерированные записи помечены is_fake, генерация переведена на строгую JSON-схему OpenAI, а служебные контакты сгенерированных записей скрыты на сервере.

Результат. Контент приходит по расписанию в фиксированном формате, а упавшая серия видна как алерт, а не как тихий пробел.

Новые возможности и интерфейс

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

Решение. На главной появилась лента свежих запросов, где вкладки, города и страницы переключаются без перезагрузки, с кэшем в Redis. Появилась загрузка аватарок: они перекодируются через GD и хранятся вне webroot под случайным именем. На новые запросы в категории можно подписаться бесплатно, справочники городов и категорий доступны через /api/v1, а порядок рубрик и тексты интерфейса задаются из админки. По интерфейсу было 17 исправлений: убрана горизонтальная прокрутка, зоны касания доведены до 44px, контраст текста до уровня WCAG AA.

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

Проверка боевого сайта

30 августа я прошёл живые сценарии от начала до конца: заявку, отклик, личное сообщение, подписку, восстановление пароля и личный кабинет. Проверка нашла шесть дефектов, и все они закрыты. Два из них роняли форму в ошибку 500, а в разделе «Мои предложения» 366 человек видели собственные запросы.

Качество

В наборе 751 тест в 83 файлах, все зелёные, статический анализ замечаний не находит. Каждое исправление закрыто тестом, который до правки падал, а набор и статический анализ прогоняются перед каждой выкаткой. За месяц ни один деплой не ушёл с красными тестами.

Полный отчёт ниже.

Открыт для работы по контракту

Я доступен для работы по контракту. Если у вас есть интересная идея проекта, запишитесь на звонок через Calendly.

Записаться на 30-минутный звонок