Telegram-бот с платным доступом (Stripe + автоматическая подписка)
5000 UAHПроект: Telegram-бот с платным доступом (Stripe + автоматическая выдача доступа)
Краткое описание проекта
Требуется разработчик для завершения и стабилизации проекта Telegram-бота с платным доступом к закрытому каналу/группе.
Основная задача системы — автоматизировать продажу доступа к Telegram-сообществу:
пользователь выбирает тариф в боте
оплачивает через Stripe
получает доступ в закрытый канал
по окончании подписки автоматически удаляется
Проект уже частично реализован.
Часть функционала была разработана с использованием ChatGPT и Cursor, поэтому кодовая база уже существует. Однако архитектура получилась неоднородной, и в ряде мест система работает нестабильно.
На текущий момент:
некоторые функции работают
некоторые части требуют исправления
архитектуру необходимо привести к стабильному production-виду
Основная задача разработчика — привести проект в рабочее состояние и завершить систему.
Цель проекта
Создать стабильную систему платных Telegram-подписок, которая:
принимает платежи через Stripe
автоматически выдает доступ к Telegram-каналу
автоматически удаляет пользователей после окончания подписки
корректно обрабатывает возвраты и chargeback
устойчиво работает при перезапусках сервера
Основной пользовательский сценарий
Пользователь открывает Telegram-бота
Нажимает Start
Видит тарифы
Нажимает Купить
Бот открывает Stripe Checkout
Пользователь оплачивает
Stripe отправляет webhook
Система активирует подписку
Пользователь получает invite-link в закрытый канал
После окончания срока доступа пользователь автоматически удаляется из канала.
Текущее состояние проекта
Проект уже содержит:
базовый Telegram-бот
интеграцию со Stripe Checkout
серверную инфраструктуру
частично реализованную логику подписок
Однако:
архитектура местами не структурирована
обработка Stripe webhook реализована не полностью
автоматическая выдача/удаление доступа работает нестабильно
требуется реорганизация кода и стабилизация логики
Задача разработчика — проанализировать текущий код и довести систему до стабильного состояния.
Требуемая архитектура
Система должна состоять из следующих компонентов.
1. Telegram Bot
Функции:
отображение меню
выбор тарифов
создание Stripe Checkout
проверка статуса подписки
отправка invite-link
Бот выполняет только функции интерфейса и не должен содержать сложную платежную логику.
2. Stripe Checkout
Используется для приема оплат.
Планируемые тарифы:
7 дней
1 месяц
3 месяца
Поддержка:
одноразовые платежи
при необходимости — подписки (subscription)
3. Webhook сервис
Отдельный endpoint для обработки событий Stripe.
Функции:
прием webhook событий Stripe
проверка подписи Stripe
запись информации о платежах в базу данных
Основные события:
checkout.session.completed
invoice.paid
charge.refunded
charge.dispute.created
Webhook не должен напрямую выполнять действия в Telegram.
4. База данных
Рекомендуется использовать:
Supabase или PostgreSQL.
Минимальная структура:
users
tg_user_id
created_at
subscriptions
tg_user_id
plan
status
access_until
stripe_customer_id
stripe_subscription_id
created_at
Статусы:
pending
active
expired
canceled
refunded
chargeback
payments
stripe_event_id (unique)
amount
currency
type
created_at
5. Access Worker
Отдельный сервис или скрипт, который запускается периодически.
Функции:
Найти пользователей с активной подпиской
Если доступ не выдан — отправить invite-link
Найти пользователей с истекшим доступом — удалить из Telegram-канала
Обработать возвраты или chargeback — удалить доступ
Worker должен быть безопасным при повторных запусках.
Требования к устойчивости
Система должна корректно работать при:
перезапуске сервера
повторных webhook событиях Stripe
временных ошибках Telegram API
временной недоступности Stripe
Все операции должны быть повторяемыми и не приводить к потере данных.
Развертывание
Предполагается запуск на Linux VPS.
Основные сервисы:
bot.service
worker.service
Scheduler:
cron или systemd timer.
Используемые технологии
Желательно:
Python
или
Node.js
Дополнительно:
Telegram Bot API
Stripe API
PostgreSQL / Supabase
Webhook endpoint
systemd / Docker (по желанию)
Функции Telegram-бота
Основные команды:
/start — запуск бота
/status — проверка статуса подписки
/buy — выбор тарифов
Меню кнопок:
7 дней
1 месяц
3 месяца
Проверить статус
Требования к безопасности
Обязательно:
проверка Stripe webhook signature
защита от повторной обработки событий
использование environment variables для ключей
обработка ошибок Telegram API
Результат работы
Разработчик должен предоставить:
полностью рабочий Telegram-бот
webhook сервис для Stripe
worker для управления доступом
настроенную базу данных
инструкции по запуску и деплою
Ожидаемый результат
После завершения работы система должна полностью автоматизировать процесс:
пользователь оплачивает доступ
автоматически получает доступ к Telegram-каналу
по окончании подписки автоматически удаляется
администратор не выполняет никаких ручных действий.
-
Здравствуйте.
Я занимаюсь разработкой Telegram-ботов более 3 лет. Основной стек — Python (aiogram v3.x), PostgreSQL и интеграции с платёжными системами, включая Stripe.
Я уже реализовывал ботов с похожей архитектурой:
— Telegram бот с подписками
— Stripe Checkout + Webhooks
— автоматическая активация доступа
— выдача инвайтов в приватные каналы
… — хранение подписок и платежей в PostgreSQL
По архитектуре предлагаю реализовать систему следующим образом:
• Telegram бот (aiogram v3) — пользовательский интерфейс
• Stripe Checkout — создание платежной страницы
• Webhook сервис — обработка событий Stripe
• PostgreSQL — хранение пользователей, подписок и платежей
• Nginx + HTTPS — безопасная обработка webhook
После оплаты Stripe отправляет webhook, который:
1. проверяет подпись Stripe
2. проверяет, что событие ещё не было обработано (защита от повторной обработки)
3. активирует или продлевает подписку пользователя
4. сохраняет информацию о платеже в базе данных
После этого пользователь может получить приглашение в закрытый Telegram-канал через бота.
Для защиты от передачи доступа другим людям можно использовать механизм одноразовых или ограниченных invite-links, которые:
— генерируются ботом через Telegram API
— имеют ограничение по количеству использований
— могут иметь время жизни
— выдаются только пользователям с активной подпиской
Перед выдачей ссылки бот проверяет:
• наличие активной подписки
• дату окончания доступа
• статус пользователя
Также можно реализовать:
— раздел "Мой доступ" для проверки статуса подписки
— логирование платежей и действий пользователей
— админ-команды для проверки пользователя и ручной выдачи доступа
Архитектура будет сделана так, чтобы:
• систему можно было легко перенести на другой сервер
• можно было добавлять новые каналы и тарифы
• бот стабильно работал при большом количестве пользователей
Готов обсудить детали проекта и предложить оптимальную архитектуру.
Спасибо.
-
1328 35 1 Здравствуйте. Есть подобное решение но на пхп. Проще поставит и настроить, то что уже работает. Обращайтесь.
-
4975 41 4 1 Добрый день!
Профессионально разрабатываю ботов Telegram и веб-приложения на Python. Имею значительный опыт работы с Telegram Bot API, интеграцией Stripe (Checkout, Webhooks) и PostgreSQL/Supabase. Готов доработать, стабилизировать архитектуру и развернуть ваш проект подписки.
Напишите мне в личные сообщения, уточним детали.
-
564 1 0 Добрый день,можем выполнить вашу задачу,делали подобных ботов с оплатой и доступом под бд
-
196 Ознакомился с ТЗ. Имею опыт разработки Telegram-ботов и интеграции Stripe. Могу проанализировать текущий код, привести архитектуру в стабильное состояние и доработать систему с автоматической выдачей и удалением доступа к каналу. Готов обсудить детали и начать работу.
-
4611 52 1 Добрый день.
Я Python-разработчик и могу помочь завершить и стабилизировать ваш проект Telegram-бота с платным доступом через Stripe.
Судя по описанию, основная задача — привести текущую кодовую базу к стабильной production-архитектуре, исправить обработку Stripe webhook и обеспечить надежную автоматическую выдачу и отзыв доступа к Telegram-каналу.
Как я предлагаю организовать решение:
Стек:
… • Python
• aiogram для Telegram-бота
• FastAPI для webhook сервиса Stripe
• PostgreSQL / Supabase для хранения пользователей, подписок и платежей
• Stripe API + проверка webhook signature
• отдельный worker для управления доступом
• systemd или Docker для стабильного запуска сервисов
Архитектура будет разделена на независимые компоненты:
1. Telegram Bot
Отвечает только за пользовательский интерфейс:
• меню
• выбор тарифов
• создание Stripe Checkout Session
• проверку статуса подписки
2. Stripe Webhook Service
Отдельный endpoint, который:
• принимает события Stripe
• проверяет подпись webhook
• записывает платежи в базу данных
• обновляет статус подписки
3. Access Worker
Фоновый сервис, который:
• выдает invite-links пользователям с активной подпиской
• удаляет пользователей после окончания доступа
• обрабатывает возвраты и chargeback
• безопасно работает при повторных запусках
Также будет реализовано:
• защита от повторной обработки webhook событий
• устойчивость к перезапуску сервера
• корректная обработка ошибок Telegram API
• логирование работы системы
Я также смогу проанализировать существующий код, провести рефакторинг архитектуры и довести систему до стабильного состояния для работы 24/7.
После завершения вы получите:
• полностью рабочий Telegram-бот
• стабильно работающий Stripe webhook сервис
• worker для управления доступом
• настроенную базу данных
• инструкции по деплою и запуску на VPS
Буду рад посмотреть текущую кодовую базу и обсудить детали проекта.
-
1545 9 0 Здравствуйте! Меня заинтересовал ваш проект. У меня большой опыт разработки Telegram-ботов на Python (aiogram), работы с PostgreSQL и настройки серверов, поэтому ваше ТЗ мне абсолютно понятно и совпадает с моим стеком.
Как я реализую ключевые требования:
Stripe и Webhooks: Настрою интеграцию со Stripe Checkout. Обязательно реализую проверку подписи вебхуков (signature verification) и идемпотентность (через таблицу processed_events), чтобы полностью исключить двойную обработку платежей.
Управление доступом: Для защиты от передачи приглашений третьим лицам, бот будет генерировать уникальные одноразовые инвайт-ссылки. Также реализую фоновый процесс, который ежедневно будет проверять expires_at и автоматически удалять пользователей, у которых закончилась подписка.
База данных: Спроектирую реляционную базу на PostgreSQL точно по вашей структуре (users, subscriptions, payments, events).
Деплой (VPS) и Надежность: Настрою ваш сервер "под ключ" — подниму Nginx как reverse proxy, привяжу SSL-сертификат для безопасной работы вебхуков и создам systemd-сервис для бесперебойной работы бота 24/7 (с автоматическим перезапуском в случае сбоев).
Админ-панель: Добавлю необходимые команды для проверки статусов пользователей и ручной выдачи/отмены доступа.
Архитектура кода будет модульной, что позволит вам легко масштабировать проект (добавлять новые каналы или тарифы) в будущем.
… Готов более подробно обсудить проект и приступить к работе. Пишите в личные сообщения!