Telegram-bot z płatnym dostępem (Stripe + automatyczna subskrypcja)
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:
7 dni
1 miesiąc
3 miesiące
Wsparcie:
jednorazowe płatności
w razie potrzeby — subskrypcje (subscription)
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:
checkout.session.completed
invoice.paid
charge.refunded
charge.dispute.created
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:
Telegram Bot API
Stripe API
PostgreSQL / Supabase
Webhook endpoint
systemd / Docker (opcjonalnie)
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ń.
-
Cześć.
Zajmuję się tworzeniem botów Telegram od ponad 3 lat. Główny stos technologiczny — Python (aiogram v3.x), PostgreSQL oraz integracje z systemami płatności, w tym Stripe.
Już realizowałem boty o podobnej architekturze:
— Bot Telegram z subskrypcjami
— Stripe Checkout + Webhooki
— automatyczna aktywacja dostępu
— wydawanie zaproszeń do prywatnych kanałów
… — przechowywanie subskrypcji i płatności w PostgreSQL
Proponuję zrealizować system w następujący sposób:
• Bot Telegram (aiogram v3) — interfejs użytkownika
• Stripe Checkout — tworzenie strony płatności
• Serwis Webhook — przetwarzanie zdarzeń Stripe
• PostgreSQL — przechowywanie użytkowników, subskrypcji i płatności
• Nginx + HTTPS — bezpieczne przetwarzanie webhooków
Po dokonaniu płatności Stripe wysyła webhook, który:
1. sprawdza podpis Stripe
2. sprawdza, czy zdarzenie nie zostało jeszcze przetworzone (ochrona przed ponownym przetwarzaniem)
3. aktywuje lub przedłuża subskrypcję użytkownika
4. zapisuje informacje o płatności w bazie danych
Po tym użytkownik może otrzymać zaproszenie do zamkniętego kanału Telegram przez bota.
Aby chronić przed przekazywaniem dostępu innym osobom, można użyć mechanizmu jednorazowych lub ograniczonych linków zaproszeniowych, które:
— są generowane przez bota za pomocą API Telegram
— mają ograniczenie co do liczby użyć
— mogą mieć czas życia
— są wydawane tylko użytkownikom z aktywną subskrypcją
Przed wydaniem linku bot sprawdza:
• obecność aktywnej subskrypcji
• datę zakończenia dostępu
• status użytkownika
Można również zrealizować:
— sekcję "Mój dostęp" do sprawdzania statusu subskrypcji
— logowanie płatności i działań użytkowników
— komendy administracyjne do sprawdzania użytkownika i ręcznego wydawania dostępu
Architektura będzie zbudowana tak, aby:
• system można było łatwo przenieść na inny serwer
• można było dodawać nowe kanały i taryfy
• bot stabilnie działał przy dużej liczbie użytkowników
Jestem gotów omówić szczegóły projektu i zaproponować optymalną architekturę.
Dziękuję.
-
1328 35 1 Witaj. Istnieje podobne rozwiązanie, ale w PHP. Łatwiej jest zainstalować i skonfigurować to, co już działa. Proszę o kontakt.
-
4975 41 4 1 Dzień dobry!
Profesjonalnie rozwijam boty Telegram oraz aplikacje webowe w Pythonie. Mam znaczące doświadczenie w pracy z Telegram Bot API, integracją Stripe (Checkout, Webhooks) oraz PostgreSQL/Supabase. Jestem gotów dopracować, ustabilizować architekturę i wdrożyć Twój projekt subskrypcyjny.
Napisz do mnie w wiadomości prywatnej, ustalimy szczegóły.
-
564 1 0 Dzień dobry, możemy wykonać twoje zadanie, robiliśmy podobne boty z płatnością i dostępem do bazy danych.
-
196 Zapoznałem się z TZ. Mam doświadczenie w tworzeniu botów Telegram oraz integracji Stripe. Mogę przeanalizować obecny kod, doprowadzić architekturę do stabilnego stanu i dokończyć system z automatycznym wydawaniem i usuwaniem dostępu do kanału. Jestem gotów omówić szczegóły i rozpocząć pracę.
-
4611 52 1 Dzień dobry.
Jestem programistą Python i mogę pomóc w zakończeniu i stabilizacji Twojego projektu bota Telegram z płatnym dostępem przez Stripe.
Z opisu wynika, że głównym zadaniem jest doprowadzenie obecnej bazy kodu do stabilnej architektury produkcyjnej, naprawa obsługi webhooka Stripe oraz zapewnienie niezawodnego automatycznego wydawania i cofania dostępu do kanału Telegram.
Jak proponuję zorganizować rozwiązanie:
Stos:
… • Python
• aiogram dla bota Telegram
• FastAPI dla usługi webhook Stripe
• PostgreSQL / Supabase do przechowywania użytkowników, subskrypcji i płatności
• Stripe API + weryfikacja podpisu webhooka
• oddzielny worker do zarządzania dostępem
• systemd lub Docker do stabilnego uruchamiania usług
Architektura będzie podzielona na niezależne komponenty:
1. Bot Telegram
Odpowiada tylko za interfejs użytkownika:
• menu
• wybór taryf
• tworzenie sesji płatności Stripe Checkout
• weryfikacja statusu subskrypcji
2. Usługa Webhook Stripe
Oddzielny punkt końcowy, który:
• przyjmuje zdarzenia Stripe
• weryfikuje podpis webhooka
• zapisuje płatności w bazie danych
• aktualizuje status subskrypcji
3. Worker Dostępu
Usługa działająca w tle, która:
• wydaje linki zaproszeniowe użytkownikom z aktywną subskrypcją
• usuwa użytkowników po zakończeniu dostępu
• obsługuje zwroty i chargebacki
• działa bezpiecznie przy ponownych uruchomieniach
Zostanie również wdrożone:
• ochrona przed ponownym przetwarzaniem zdarzeń webhook
• odporność na ponowne uruchomienie serwera
• poprawna obsługa błędów API Telegram
• logowanie pracy systemu
Będę również w stanie przeanalizować istniejący kod, przeprowadzić refaktoryzację architektury i doprowadzić system do stabilnego stanu do pracy 24/7.
Po zakończeniu otrzymasz:
• w pełni działającego bota Telegram
• stabilnie działającą usługę webhook Stripe
• worker do zarządzania dostępem
• skonfigurowaną bazę danych
• instrukcje dotyczące wdrożenia i uruchomienia na VPS
Będę zadowolony, aby zobaczyć obecną bazę kodu i omówić szczegóły projektu.
-
1573 9 0 Cześć! Zainteresował mnie Twój projekt. Mam duże doświadczenie w tworzeniu botów Telegram w Pythonie (aiogram), pracy z PostgreSQL oraz konfiguracji serwerów, dlatego Twoje wymagania są dla mnie całkowicie zrozumiałe i pokrywają się z moim stosem technologicznym.
Jak zrealizuję kluczowe wymagania:
Stripe i Webhooki: Skonfiguruję integrację z Stripe Checkout. Z pewnością wdrożę weryfikację podpisu webhooków (signature verification) oraz idempotencję (poprzez tabelę processed_events), aby całkowicie wykluczyć podwójne przetwarzanie płatności.
Zarządzanie dostępem: Aby chronić przed przekazywaniem zaproszeń osobom trzecim, bot będzie generował unikalne jednorazowe linki zapraszające. Zrealizuję również proces w tle, który codziennie będzie sprawdzał expires_at i automatycznie usuwał użytkowników, których subskrypcja wygasła.
Baza danych: Zaprojektuję relacyjną bazę danych na PostgreSQL zgodnie z Twoją strukturą (users, subscriptions, payments, events).
Wdrożenie (VPS) i Niezawodność: Skonfiguruję Twój serwer "pod klucz" — uruchomię Nginx jako reverse proxy, podłączę certyfikat SSL dla bezpiecznej pracy webhooków oraz stworzę usługę systemd dla nieprzerwanej pracy bota 24/7 (z automatycznym restartem w przypadku awarii).
Panel administracyjny: Dodam niezbędne komendy do sprawdzania statusów użytkowników oraz ręcznego przyznawania/odwoływania dostępu.
Architektura kodu będzie modułowa, co pozwoli Ci łatwo skalować projekt (dodawać nowe kanały lub taryfy) w przyszłości.
… Jestem gotów szczegółowo omówić projekt i przystąpić do pracy. Pisz w wiadomościach prywatnych!