Projekt: Bot Telegram z płatnym dostępem (Stripe + automatyczne przyznawanie dostępu)
Krótki opis projektu
Potrzebny jest programista do zakończenia i stabilizacji projektu bota Telegram z płatnym dostępem do zamkniętego kanału/grupy.
Głównym zadaniem systemu jest automatyzacja sprzedaży dostępu do społeczności Telegram:
użytkownik wybiera taryfę w bocie
płaci przez Stripe
otrzymuje dostęp do zamkniętego kanału
po zakończeniu subskrypcji jest automatycznie usuwany
Projekt jest już częściowo zrealizowany.
Część funkcjonalności została opracowana z wykorzystaniem ChatGPT i Cursor, dlatego baza kodu już istnieje. Jednak architektura okazała się niejednorodna, a w niektórych miejscach system działa niestabilnie.
Na chwilę obecną:
niektóre funkcje działają
niektóre części wymagają poprawy
architekturę należy doprowadzić do stabilnego stanu produkcyjnego
Główne zadanie programisty to doprowadzić projekt do stanu roboczego i zakończyć system.
Cel projektu
Stworzyć stabilny system płatnych subskrypcji Telegram, który:
przyjmuje płatności przez Stripe
automatycznie przyznaje dostęp do kanału Telegram
automatycznie usuwa użytkowników po zakończeniu subskrypcji
poprawnie obsługuje zwroty i chargebacki
stabilnie działa przy ponownych uruchomieniach serwera
Główny scenariusz użytkownika
Użytkownik otwiera bota Telegram
Klika Start
Widzi taryfy
Klika Kup
Bot otwiera Stripe Checkout
Użytkownik płaci
Stripe wysyła webhook
System aktywuje subskrypcję
Użytkownik otrzymuje link zapraszający do zamkniętego kanału
Po zakończeniu okresu dostępu użytkownik jest automatycznie usuwany z kanału.
Aktualny stan projektu
Projekt już zawiera:
podstawowego bota Telegram
integrację ze Stripe Checkout
infrastrukturę serwerową
częściowo zrealizowaną logikę subskrypcji
Jednak:
architektura miejscami jest nieuporządkowana
obsługa webhooków Stripe nie została w pełni zrealizowana
automatyczne przyznawanie/usuwanie dostępu działa niestabilnie
wymagana jest reorganizacja kodu i stabilizacja logiki
Zadanie programisty to przeanalizować aktualny kod i doprowadzić system do stabilnego stanu.
Wymagana architektura
System powinien składać się z następujących komponentów.
1. Bot Telegram
Funkcje:
wyświetlanie menu
wybór taryf
tworzenie Stripe Checkout
sprawdzanie statusu subskrypcji
wysyłanie linku zapraszającego
Bot wykonuje tylko funkcje interfejsu i nie powinien zawierać skomplikowanej logiki płatności.
2. Stripe Checkout
Używany do przyjmowania płatności.
Planowane taryfy:
Wsparcie:
3. Serwis Webhook
Oddzielny endpoint do obsługi zdarzeń Stripe.
Funkcje:
przyjmowanie webhooków zdarzeń Stripe
sprawdzanie podpisu Stripe
zapisywanie informacji o płatnościach w bazie danych
Główne zdarzenia:
Webhook nie powinien bezpośrednio wykonywać działań w Telegramie.
4. Baza danych
Zaleca się użycie:
Supabase lub PostgreSQL.
Minimalna struktura:
users
tg_user_id
created_at
subscriptions
tg_user_id
plan
status
access_until
stripe_customer_id
stripe_subscription_id
created_at
Statusy:
pending
active
expired
canceled
refunded
chargeback
payments
stripe_event_id (unikalny)
amount
currency
type
created_at
5. Worker dostępu
Oddzielna usługa lub skrypt, który uruchamia się okresowo.
Funkcje:
Znajdź użytkowników z aktywną subskrypcją
Jeśli dostęp nie został przyznany — wyślij link zapraszający
Znajdź użytkowników z wygasłym dostępem — usuń z kanału Telegram
Obsłuż zwroty lub chargeback — usuń dostęp
Worker musi być bezpieczny przy ponownych uruchomieniach.
Wymagania dotyczące odporności
System powinien poprawnie działać przy:
ponownym uruchomieniu serwera
powtarzających się zdarzeniach webhook Stripe
czasowych błędach API Telegram
czasowej niedostępności Stripe
Wszystkie operacje powinny być powtarzalne i nie prowadzić do utraty danych.
Wdrożenie
Zakłada się uruchomienie na Linux VPS.
Główne usługi:
bot.service
worker.service
Scheduler:
cron lub systemd timer.
Używane technologie
Preferowane:
Python
lub
Node.js
Dodatkowo:
Funkcje bota Telegram
Podstawowe komendy:
/start — uruchomienie bota
/status — sprawdzenie statusu subskrypcji
/buy — wybór taryf
Menu przycisków:
7 dni
1 miesiąc
3 miesiące
Sprawdź status
Wymagania dotyczące bezpieczeństwa
Obowiązkowe:
sprawdzanie podpisu webhooka Stripe
ochrona przed ponownym przetwarzaniem zdarzeń
użycie zmiennych środowiskowych dla kluczy
obsługa błędów API Telegram
Wynik pracy
Programista powinien dostarczyć:
w pełni działającego bota Telegram
serwis webhook dla Stripe
worker do zarządzania dostępem
skonfigurowaną bazę danych
instrukcje dotyczące uruchamiania i wdrażania
Oczekiwany rezultat
Po zakończeniu pracy system powinien w pełni zautomatyzować proces:
użytkownik płaci za dostęp
automatycznie otrzymuje dostęp do kanału Telegram
po zakończeniu subskrypcji jest automatycznie usuwany
administrator nie wykonuje żadnych ręcznych działań.