Автоматизация платных подписок для Xray Doctor
Xray Doctor — небольшое медицинское медиа с дополнительным платным контентом по подписке. До начала проекта доступ пользователей администратор продлевал вручную: после каждой оплаты нужно было найти подписчика в Tilda, проверить его статус, добавить в нужную группу или изменить срок доступа.
Мы разработали серверную систему, которая автоматизировала этот процесс практически полностью.
После успешной оплаты сервис получает данные платежа, находит пользователя в Tilda и автоматически продлевает доступ на один календарный месяц. Если подписчик ещё не зарегистрирован, система создаёт его и добавляет в нужную группу. Все операции проверяются повторно после выполнения, чтобы убедиться, что Tilda действительно сохранила изменения.
Отдельное внимание уделили надёжности. Повторный webhook не приводит к двойному продлению, существующий более длинный срок не уменьшается, а платежи обрабатываются через отдельную очередь.
Во время эксплуатации обнаружилось, что авторизованная сессия Tilda имеет ограниченный срок жизни. Поэтому был реализован механизм автоматической переавторизации и отдельный watchdog, который контролирует работу всей цепочки и отправляет уведомление в Telegram при сбое или зависшей обработке.
Решение работает автономно на сервере Yandex Cloud. Стек: Python, FastAPI, SQLite, Playwright, systemd, Nginx, Cloudflare Workers, Telegram Bot API.
В результате рутинная операция администратора превратилась в автоматический бизнес-процесс.