Александр Зуев
AutoGift - Telegram-бот, который в автоматическом режиме скупает новые Telegram-подарки
Александр Зуев
#Разработка чат-ботов и Mini Apps

AutoGift - Telegram-бот, который в автоматическом режиме скупает новые Telegram-подарки

113 
Александр Зуев Россия, Краснодар
Поделиться: 0 0 0
AutoGift - Telegram-бот, который в автоматическом режиме скупает новые Telegram-подарки
Бюджет

40 000

Сфера

Информационные технологии и интернет

Сдано

Апрель 2025

Задача

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

Основные требования:

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

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

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

- Реферальная программа для органического роста аудитории.

- Полная локализация на русский и английский языки.

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

Решение

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

Ядром продукта стал контур автопокупки на базе планировщика Quartz с двумя независимыми циклами: быстрый цикл с интервалом в 5 секунд отвечает за обнаружение новых подарков и исполнение покупок, медленный минутный цикл агрегирует метрики и обслуживает кэш состояния. Каждое задание помечено атрибутом запрета параллельного запуска, что исключает гонки и двойные списания при затянувшемся цикле.

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

Платежный модуль принимает Telegram Stars через нативные инвойсы Telegram, удерживает сервисную комиссию 5 процентов и моментально зачисляет средства на внутренний баланс пользователя с мгновенным уведомлением. Реферальная программа реализована двухуровневой, с начислением процента от пополнений приглашенных.

Результат

  • Запущен полностью рабочий коммерческий сервис, который в автоматическом режиме скупает новые Telegram-подарки в первые секунды после релиза без участия пользователя.

  • Достигнута реакция на появление подарка в пределах 5-секундного цикла с параллельным исполнением покупок сразу для всей активной базы при одном релизе.

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

  • Гибридная схема работы с данными обеспечила высокую пропускную способность горячего пути при сохранении удобства миграций и эволюции схемы.

  • Автоматические миграции при старте сделали выкатку новых версий бесшовной, без ручных операций с базой.

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

  • Полная двуязычная локализация открыла продукт для русско- и англоязычной аудитории одновременно.

https://t.me/autogiftalexxx_bot

Стек технологий

  • С# С# Язык программирования

Оцените кейс
Спасибо за оценку
Выскажите мнение
Авторизуйтесь, чтобы добавить свой комментарий.
оставить заявку

Хотите заказать похожий проект?

Оставить заявку