- Cel projektu
Opracować bota Telegram, który:
Sprzedaje subskrypcję na prywatny kanał przez WayForPay;
Automatycznie przyznaje dostęp do kanału po pomyślnej płatności;
Zarządza subskrypcjami — usuwa użytkowników po upływie terminu, wysyła przypomnienia o przedłużeniu;
Prowadzi ewidencję w Google Arkuszach (Google Sheets);
Może być uruchomiony na VPS (na przykład, Ubuntu / Docker).
- Funkcjonalność bota Telegram Użytkownik:
Po uruchomieniu widzi przyciski z taryfami:
1 miesiąc (10 UAH)
3 miesiące (25 UAH)
6 miesięcy (45 UAH)
Naciska przycisk → bot generuje link WayForPay do płatności.
Po płatności bot wysyła link zapraszający do kanału.
Jeśli użytkownik ma już aktywną subskrypcję — bot pokazuje status (“Subskrypcja aktywna do: ...”).
Administrator:
Otrzymuje powiadomienia o nowych płatnościach.
Może ręcznie przedłużyć / dezaktywować subskrypcję użytkownika.
Ma komendę /list do przeglądania aktywnych użytkowników (opcjonalnie).
- System kontroli subskrypcji
Osobny skrypt Python lub moduł:
Uruchamiany raz dziennie / lub przy starcie (później można dodać cron);
Sprawdza daty zakończenia subskrypcji w Google Sheet;
Jeśli termin minął — usuwa użytkownika z kanału;
Na 1 dzień przed zakończeniem — wysyła przypomnienie z przyciskiem “Przedłuż”;
Jeśli użytkownik przedłużył — aktualizuje datę w tabeli.
- Integracja z Google Sheets
Tabela ma następujące kolumny:
| telegram_id | order_ref | amount | months | start_date | end_date | status |
status może być: active, expired, refunded
Rekord dodawany jest tylko jeśli:
transakcja Approved
taki order_ref jeszcze nie istnieje w tabeli
Jeśli użytkownik już jest w tabeli — aktualizuje end_date (przedłużenie subskrypcji).
- Serwer Flask (Webhook dla WayForPay)
Przyjmuje zapytania z WayForPay po płatności;
Sprawdza transactionStatus == "Approved";
Jeśli płatność jest nowa:
dodaje rekord do Google Sheet;
tworzy link zapraszający do kanału;
wysyła link do użytkownika w Telegramie;
Ignoruje transakcje ze statusami Refunded, Expired, InProcessing;
Ma logowanie wszystkich zapytań do konsoli lub pliku (print / logging).
- Dodatkowo
Kod musi być dobrze zorganizowany: bot_payment.py, webhook_server.py, subscription_checker.py.
Wszystkie tokeny, klucze, ID — przeniesione do osobnego pliku config.py.
- Wynik pracy
W pełni działający system:
Bot Telegram z płatnościami
Integracja z WayForPay
Łącze z Google Sheets
Automatyczne zarządzanie subskrypcjami
Gotowy do uruchomienia na VPS