Powrót do strony głównej

Telegram Stars bot do płatności bez IP

Artykuł opisuje tworzenie bota Telegram do płatności przez Stars bez rejestracji. Używa się aiogram 3, SQLite, aiohttp dla Mini App. Omówiono unikalne linki, obsługę plików, wdrożenie HTTPS i CORS.

Bot na Stars: płatności w Telegramie bez rejestracji
Advertisement 728x90

Tworzenie bota Telegram do płatności za pomocą Stars bez rejestracji

Programiści mogą przyjmować donaty i sprzedawać produkty cyfrowe w Telegramie bez potrzeby rejestrowania IP ani podawania danych z paszportu. Korzystając z Telegrama Stars jako waluty, bot generuje faktury i automatycznie przetwarza płatności. Architektura opiera się na Pythonie z aiogram 3, SQLite do przechowywania danych oraz aiohttp do API Mini App. Dzięki temu każdy użytkownik z Telegramem może tworzyć produkty i uzyskiwać linki do płatności.

Architektura systemu

Bot na aiogram 3 komunikuje się z bazą SQLite, gdzie przechowywane są produkty, sprzedawcy i linki płatności. Oddzielny API na aiohttp obsługuje Mini App przez następujące punkty końcowe:

  • /api/products — katalog produktów.
  • /api/donate — dane dla przycisku donatu.
  • /api/create_invoice — generowanie faktury.

Logika płatności skupia się w bocie: Mini App pobiera dane przez API, bot tworzy faktury i potwierdza pomyślne płatności poprzez zdarzenie successful_payment.

Google AdInline article slot

Generowanie unikalnych linków

Dla bezpieczeństwa linki tworzone są z unikalnymi kodami typu prod_fgU7d, przechowywanymi w tabeli payment_links. Pełny URL: https://t.me/System_Paybot?start=prod_fgU7d. Zapobiega to próbom przebicia ID i umożliwia analizę źródeł ruchu.

Przy wydaniu treści produktu bot określa typ pliku po file_id i używa uniwersalnego mechanizmu wysyłania:

try:
    await message.answer_document(document=content, caption=thanks)
except:
    try:
        await message.answer_photo(photo=content, caption=thanks)
    except:
        # kolejne próby dla video, audio itp.

Metoda sendDocument działa uniwersalnie dla większości formatów Telegrama.

Google AdInline article slot

Przetwarzanie płatności za pomocą Stars

Faktury tworzone są metodą create_invoice_link z parametrami:

invoice_link = await bot.create_invoice_link(
    title=title,
    description=f"Kupno: {title}",
    payload=f"pay_{product_id}_{user_id}",
    provider_token="",
    currency="XTR",
    prices=[{"label": title, "amount": amount}]
)

Telegram przetwarza płatność, wysyłając successful_payment z payload, który służy do identyfikacji produktu i wydania go użytkownikowi.

Funkcje admina i statystyki

Właściciel ma dostęp do poleceń:

Google AdInline article slot
  • /admin_stats — ogólna statystyka.
  • /admin_users — ostatni użytkownicy.
  • /admin_broadcast — rozsyłka masowa.
  • /admin_ban / /admin_unban — zarządzanie dostępem.

Sprzedawcy korzystają z /stats do własnej analizy.

Rozwiązanie problemów wdrożenia

Ograniczenia Stars

Stars są naliczane właścicielowi bota, przesyłanie innym użytkownikom jest niemożliwe. Rozwiązanie: udostępnienie kodu źródłowego do samodzielnego uruchomienia botów.

HTTPS dla Mini App

Mini App wymaga HTTPS. Gdy port 443 jest zajęty (np. przez Xray VPN), używany jest podsłownik z Nginxem na porcie 8443:

  • Podsłownik shop.system-dev.ru.
  • Certbot do SSL.
  • Otwarcie portu 8443 w iptables.
  • URL w BotFather: https://shop.system-dev.ru:8443.

Prawa dostępu do /var/www/systempaychmod 755 dla www-data.

CORS w API

Dodano middleware w aiohttp:

@web.middleware
async def cors_middleware(request, handler):
    response = await handler(request)
    response.headers['Access-Control-Allow-Origin'] = '*'
    response.headers['Access-Control-Allow-Methods'] = 'GET, POST, OPTIONS'
    response.headers['Access-Control-Allow-Headers'] = 'Content-Type'
    return response

Ostateczne możliwości

Bot obsługuje:

  • Przesyłanie plików dowolnego typu lub linków.
  • Donaty dowolnej kwoty.
  • Mini App z katalogiem i adaptacyjnym interfejsem.
  • Indywidualną statystykę.
  • Panel administracyjny.

System gotowy do automatyzacji sprzedaży w Telegramie.

Co warto pamiętać

  • Unikalne kody linków zapewniają bezpieczeństwo i analizę bez prób przebicia ID.
  • Uniwersalna wysyłka plików przez sendDocument z fallback działa dla wszystkich formatów Telegrama.
  • Stars łatwo integrują się, ale są naliczane właścicielowi bota — kod jest otwarty do samodzielnego wdrożenia.
  • HTTPS na niestandardowym porcie rozwiązuje Nginx + Certbot bez konfliktów z VPN.
  • Middleware CORS w aiohttp rozwiązuje żądania międzydomenowe Mini App.

— Editorial Team

Advertisement 728x90

Czytaj dalej