Как создать бота для продажи звёзд в Телеграм: от витрины до автовыдачи
Как создать тг бота по продаже звезд — главный вопрос здесь не в кнопках и красивом меню, а в самой выдаче Stars. Официальный Bot API умеет принимать Звёзды от пользователей за цифровые товары, но не содержит метода, который позволяет вашему боту купить Stars за рубли и автоматически отправить их клиенту. Поэтому магазин строится из двух частей: сам бот принимает заказ, а выдачу выполняет отдельный поставщик или собственная интеграция.
Если хочется сделать свой тг бот по продаже звезд, базовая схема выглядит так: пользователь выбирает пакет, вводит username, оплачивает заказ, после чего сервер передаёт заявку поставщику Stars. Когда выдача завершена, поставщик возвращает финальный статус, а бот сообщает клиенту, что заказ выполнен.
Самая частая ошибка при создании такого магазина — путать Bot API и Fragment. Запрос подключение fragment api продажа звезд звучит логично, но у Fragment нет опубликованного официального API для автоматической покупки Stars. Всё, что сегодня называют Fragment API для реселлеров, — сторонние сервисы, собственные обёртки или API поставщиков.
С чего начинается разработка
Создание бота продажи звезд телеграм начинается с обычного @BotFather.
Нужно:
- Создать нового бота.
- Получить токен.
- Поднять серверную часть.
- Подключить базу данных.
- Сделать каталог пакетов.
- Добавить оплату.
- Подключить поставщика Stars.
- Настроить автоматическую проверку результата.
Сам @BotFather создаёт только аккаунт бота.
Вся логика магазина работает уже на вашем сервере.
Удобный сервис для Stars, подарков и TON/Gram
Если хочется сначала посмотреть, как выглядит уже работающий сервис с понятной витриной, можно использовать Stars Mint Bot.
Через Stars Mint можно:
- купить Звёзды Телеграм;
- приобрести TON/Gram;
- купить Телеграм Premium;
- выбрать обычные и коллекционные подарки;
- приобрести НФТ-подарки;
- часть продуктов оформить напрямую без предварительной покупки Stars.
Stars Mint удобен и как пример самой логики магазина: пользователь выбирает продукт, указывает получателя, оплачивает заказ и получает результат без ручной переписки с администратором. Для собственного проекта именно к такой схеме обычно и стремятся — максимум автоматизации и минимум действий со стороны клиента.
Ссылка для доступа: Stars Mint Bot
Как выглядит нормальная архитектура
Бот по продаже звезд телеграм с нуля лучше сразу строить не как один огромный файл, а разделить на несколько частей.
Обычно нужны:
- интерфейс бота;
- база пользователей;
- таблица заказов;
- модуль оплаты;
- модуль поставщика;
- обработка вебхуков;
- журнал ошибок;
- админ-панель или хотя бы служебные команды.
Это особенно важно для автовыдачи.
Если всё завязано на один скрипт и один запрос, первая же задержка поставщика может превратить магазин в хаос.
Python подходит отлично
Как создать тг бота по продаже звезд на python — один из самых простых вариантов для старта.
Чаще всего используют:
- aiogram;
- python-telegram-bot;
- FastAPI или Flask для вебхуков;
- PostgreSQL или SQLite для заказов.
Для небольшого проекта хватит Python + aiogram + PostgreSQL.
SQLite можно использовать на тестовом этапе, но для магазина с параллельными заказами надёжнее полноценная база.
Что должен уметь бот
Как сделать бота продажи звезд тг удобно для покупателя:
- пользователь нажимает «Купить Stars»;
- выбирает 50, 100, 500, 1000 или другое количество;
- указывает username;
- бот показывает цену;
- клиент оплачивает;
- создаётся заказ;
- поставщик получает заявку;
- после успешной выдачи бот отправляет подтверждение.
Дополнительно можно добавить:
- историю заказов;
- промокоды;
- реферальную программу;
- баланс клиента;
- поддержку;
- уведомления о статусе.
Чем меньше ручных действий, тем проще масштабировать магазин.
Откуда бот вообще берёт Stars
Вот здесь находится главная техническая часть.
Официальный Bot API не умеет выполнять операцию:
«купи 500 Stars пользователю @username за деньги владельца бота».
Bot API предназначен прежде всего для обратной модели: пользователь платит Stars вашему боту за цифровой продукт. Для таких платежей используется валюта XTR.
Для продажи Stars пользователю нужен другой источник выдачи:
- API поставщика;
- собственная инфраструктура;
- неофициальная автоматизация Fragment.
Для коммерческого проекта наиболее предсказуемый вариант — API поставщика с документированными заказами, статусами и вебхуками.
Почему «Fragment API» — спорное название
Сделать бот по продаже звезд телеграм через fragment напрямую хочется многим разработчикам, потому что Fragment используется самим Телеграм для покупки крупных объёмов Stars.
Но публичной официальной документации Fragment API для таких заказов нет.
На рынке существуют сторонние сервисы, которые называют свои интерфейсы Fragment API.
Например, они предоставляют:
- API-ключ;
- баланс TON или USDT;
- запрос на проверку username;
- создание заказа;
- получение статуса;
- webhook после выдачи.
Это может быть удобно, но юридически и технически вы работаете именно с этим поставщиком, а не с официальным API Fragment.
Как работает API поставщика
Типичный сценарий очень простой.
Ваш сервер сначала проверяет получателя.
Затем получает актуальную цену.
После оплаты клиента создаёт заказ на выдачу Stars.
Поставщик возвращает ID заказа.
Дальше происходит одно из двух:
- бот периодически спрашивает статус;
- или поставщик сам отправляет webhook.
Когда приходит финальный статус completed, бот сообщает пользователю об успешной выдаче.
Именно так строится автоматизация продажи звезд телеграм бот без участия оператора.
Автовыдача — главный элемент магазина
Как создать бота продажи звезд тг с автовыдачей — нужно убрать человека из цепочки после оплаты.
Правильная схема:
платёж подтверждён → заказ создаётся автоматически → Stars выдаются → статус фиксируется → клиент получает уведомление.
Не должно быть:
«оплатите и пришлите чек менеджеру».
Это уже ручной магазин.
Автовыдача позволяет принимать заказы ночью, в выходные и одновременно от десятков клиентов.
Что такое idempotency и зачем она нужна
При продаже цифрового товара особенно опасны повторные запросы.
Представим:
- клиент купил 500 Stars;
- сервер отправил заказ поставщику;
- ответ задержался;
- ваш код решил, что запрос не дошёл;
- отправил его ещё раз.
В результате пользователь получил 1000 Stars, а вы оплатили две выдачи.
Поэтому хороший API использует idempotency key — уникальный идентификатор одного заказа.
Если запрос повторяется с тем же ключом, второй заказ не создаётся.
Для автовыдачи это одна из самых важных защит.
Вебхуки тоже нужно проверять
Поставщик может сообщать о завершении заказа через webhook.
Но нельзя просто доверять любому запросу на ваш URL.
Нужно проверять подпись, HMAC или другой механизм авторизации.
Иначе злоумышленник может отправить вашему серверу фальшивое сообщение:
«заказ выполнен».
Система отметит покупку завершённой, хотя фактической выдачи не было.
Поэтому скрипт бота продажи звезд телеграм должен проверять не только оплату клиента, но и подлинность ответа поставщика.
Как принимать деньги
Как подключить оплату в бота продажи звезд телеграм зависит от аудитории.
Можно использовать:
- СБП;
- банковскую карту;
- платёжный агрегатор;
- криптовалюту;
- TON/Gram;
- USDT.
Важно понимать: если вы продаёте пользователю Stars за рубли, встроенная оплата XTR здесь не решает задачу.
XTR используется, когда клиент уже владеет Stars и оплачивает ими ваш цифровой товар.
Для продажи самих Stars обычно нужен обычный фиатный или криптовалютный платёж.
Почему нельзя принимать Stars за Stars
Схема:
пользователь платит 100 Stars → получает 100 Stars
не имеет практического смысла.
Если клиент уже обладает Stars, ему не нужно покупать их у вас.
Поэтому нормальный магазин принимает рубли, TON, USDT или другой внешний платёж и выдаёт Stars получателю.
Встроенные счета XTR подходят уже для других товаров вашего бота.
Как формировать цену
Разработка бота для продажи звезд должна учитывать плавающую закупочную стоимость.
Нельзя один раз поставить:
1 Star = 1,50 ₽
и забыть на год.
Если поставщик изменит тариф, бот начнёт продавать в убыток.
Лучше считать цену автоматически:
закупочная стоимость + ваша маржа + комиссия платежа.
Например:
- закупка 1000 Stars — 1450 ₽;
- эквайринг — 2%;
- ваша маржа — 8%.
Бот должен рассчитать конечную цену непосредственно перед созданием заказа.
Почему цену лучше получать с сервера
Не храните все тарифы только в кнопках бота.
Правильнее:
- пользователь выбирает количество;
- сервер получает актуальную закупочную цену;
- добавляет вашу наценку;
- возвращает итог.
Так вы сможете менять маржу без обновления самого интерфейса.
А при резком изменении стоимости поставщика магазин автоматически перестанет продавать по старому тарифу.
Что хранить в базе
Минимально нужно сохранить:
- внутренний ID заказа;
- Telegram ID клиента;
- username получателя;
- количество Stars;
- стоимость;
- статус оплаты;
- ID платежа;
- ID заказа поставщика;
- дату создания;
- финальный статус.
Без этого невозможно нормально разбирать спорные ситуации.
Например, клиент пишет:
«деньги списались, Stars не пришли».
Вы должны за минуту увидеть весь путь заказа.
Какие статусы нужны
Не ограничивайтесь success и error.
Удобнее использовать:
new;
waiting_payment;
paid;
processing;
completed;
failed;
refunded.
Тогда пользователь понимает, что происходит.
Особенно важен processing.
Выдача Stars может занимать некоторое время, и клиент не должен думать, что магазин сломался.
Нужна ли админка
Для первых 20 заказов можно обойтись служебными командами в Телеграм.
Но если проект растёт, админ-панель сильно упрощает жизнь.
В ней полезно видеть:
- оборот;
- прибыль;
- количество заказов;
- ошибки;
- баланс у поставщика;
- заказы в обработке;
- возвраты;
- самых активных клиентов.
Также стоит настроить уведомление, если баланс поставщика опускается ниже определённой суммы.
Иначе автовыдача внезапно остановится ночью.
Что искать в исходниках
Запрос бот продажа звезд телеграм исходники выдаёт много готовых проектов.
Использовать их можно скорее как референс.
Не стоит брать неизвестный репозиторий, вставлять свои API-ключи и сразу запускать магазин.
Проверьте:
- куда отправляются данные;
- нет ли скрытого доступа;
- как хранятся секреты;
- какой API используется;
- есть ли проверка webhook;
- есть ли идемпотентность;
- правильно ли работает база.
Особенно опасны готовые сборки, которым нужно передать seed-фразу кошелька прямо в конфигурации.
Где хранить API-ключи
Не в коде.
Не в GitHub.
Не в сообщениях бота.
Используйте переменные окружения или secret manager.
Разделяйте:
- ключ платёжной системы;
- ключ поставщика;
- токен Телеграм;
- ключ webhook.
Если один секрет утечёт, злоумышленник не должен получить сразу полный контроль над магазином.
Можно ли написать всё самому
Да.
Если есть опыт с Python, API и базами данных, технически магазин не слишком сложный.
Самая трудная часть — не интерфейс.
Главные проблемы начинаются вокруг:
- платежей;
- дублей;
- возвратов;
- задержек выдачи;
- безопасности ключей;
- изменения API поставщика.
Поэтому хороший магазин — это прежде всего надёжная серверная логика.
Когда лучше заказать разработку
Разработка тг бота продажи звезд под ключ имеет смысл, если нужен не простой MVP, а полноценный магазин.
Например:
- несколько платёжных систем;
- автовыдача;
- рефералы;
- промокоды;
- личный кабинет;
- аналитика;
- автоматическое ценообразование;
- резервный поставщик;
- Mini App.
В таком случае разработчику нужно давать ТЗ не «сделайте бот как у конкурента», а описывать всю цепочку:
заказ → оплата → выдача → проверка → возврат.
Нужен ли резервный поставщик
Для серьёзного магазина — желательно.
Если основной API недоступен, продажи полностью остановятся.
Можно настроить:
- основной поставщик;
- резервный поставщик;
- автоматическое переключение при ошибке.
Но важно не отправить один заказ сразу двум поставщикам.
Поэтому переключение опять же должно быть связано с ID заказа и идемпотентностью.
Можно ли продавать через Mini App
Да.
Бот необязательно должен состоять только из кнопок.
Можно сделать красивую Mini App-витрину:
- выбор пакета;
- динамическая цена;
- история заказов;
- промокоды;
- баланс;
- поддержка.
Сам бот тогда используется для запуска приложения и отправки уведомлений.
Для крупного сервиса такой интерфейс удобнее обычного меню.
Итог
Как создать тг бота по продаже звезд — создать самого бота через @BotFather несложно. Настоящая работа начинается дальше: нужен приём оплаты, база заказов, поставщик Stars, автоматическая выдача, обработка статусов и защита от повторных операций.
Официальный Bot API умеет принимать Stars за цифровые товары, но не содержит публичного метода для покупки Stars пользователю. Публичного официального Fragment API для продажи Stars тоже нет, поэтому магазины используют собственную автоматизацию или API стороннего поставщика.
Если сначала хочется посмотреть, как подобная логика выглядит со стороны покупателя, можно открыть Stars Mint Bot: там доступны Stars, Premium, подарки и TON/Gram. Для своего проекта разумно ориентироваться на такую же простую цепочку — выбрал продукт, оплатил, получил результат без ручного общения с менеджером.