Zpět na domů

Telegram Stars bot pro platby bez živnosti

Článek popisuje vytvoření Telegram bota pro platby přes Stars bez registrace. Používá se aiogram 3, SQLite, aiohttp pro Mini App. Jsou zváženy unikátní odkazy, zpracování souborů, nasazení HTTPS a CORS.

Bot na Stars: platby v Telegramu bez registrace
Advertisement 728x90

Vytvoření Telegram botu pro platby pomocí Stars bez registrace

Vývojáři mohou přijímat darování a prodávat digitální zboží v Telegramu bez nutnosti založit podnikatelskou činnost nebo poskytovat pasové údaje. Použitím Telegram Stars jako měny generuje bot faktury a automaticky zpracovává platby. Architektura využívá Python s aiogram 3, SQLite pro ukládání dat a aiohttp pro API Mini App. Tímto způsobem může každý uživatel s Telegramem vytvářet produkty a získávat odkazy pro platbu.

Architektura systému

Bot na aiogram 3 komunikuje s databází SQLite, kde jsou uloženy produkty, prodejci a platební odkazy. Samostatné API na aiohttp obsluhuje Mini App přes následující koncové body:

  • /api/products — katalog produktů.
  • /api/donate — data pro tlačítko daru.
  • /api/create_invoice — generování faktury.

Logika plateb je soustředěna v botu: Mini App požaduje data přes API, bot vytváří faktury a potvrzuje úspěšné platby prostřednictvím události successful_payment.

Google AdInline article slot

Generování jedinečných odkazů

Pro zajištění bezpečnosti jsou odkazy tvořeny s unikátními kódy typu prod_fgU7d, které jsou uloženy v tabulce payment_links. Plný URL: https://t.me/System_Paybot?start=prod_fgU7d. Toto zabrání bruteforce útokům a umožňuje analýzu zdrojů provozu.

Při vyplnění obsahu produktu určí bot typ souboru podle file_id a použije univerzální mechanismus odeslání:

try:
    await message.answer_document(document=content, caption=thanks)
except:
    try:
        await message.answer_photo(photo=content, caption=thanks)
    except:
        # další pokusy pro video, audio atd.

Metoda sendDocument funguje univerzálne pro většinu formátů Telegramu.

Google AdInline article slot

Zpracování plateb prostřednictvím Stars

Faktury se vytvářejí metodou create_invoice_link s parametry:

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

Telegram zpracovává platbu a odesílá successful_payment s payload, který slouží k identifikaci produktu a vydání obsahu uživateli.

Admin funkce a statistika

Pro správce jsou k dispozici příkazy:

Google AdInline article slot
  • /admin_stats — celková statistika.
  • /admin_users — poslední uživatelé.
  • /admin_broadcast — hromadná zpráva.
  • /admin_ban / /admin_unban — řízení přístupu.

Prodejci používají /stats pro osobní analýzu.

Řešení problémů nasazení

Omezení Stars

Stars se zúčtovávají vlastníkovi bota, převody jiným uživatelům nejsou možné. Řešení: poskytnutí zdrojového kódu pro samostatné nasazení bota.

HTTPS pro Mini App

Mini App vyžaduje HTTPS. Při obsazeném portu 443 (Xray VPN) se používá podsítě s Nginxem na 8443:

  • Podsítě shop.system-dev.ru.
  • Certbot pro SSL.
  • Otevření portu 8443 v iptables.
  • URL v BotFather: https://shop.system-dev.ru:8443.

Oprávnění k /var/www/systempaychmod 755 pro www-data.

CORS v API

Do aiohttp byl přidán middleware:

@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

Konečné možnosti

Bot podporuje:

  • Nahrávání souborů jakéhokoli typu nebo odkazů.
  • Darování libovolné částky.
  • Mini App s katalogem a adaptivním rozhraním.
  • Osobní statistiku.
  • Admin panel.

Systém je připraven k použití pro automatizaci prodeje v Telegramu.

Co je důležité

  • Jedinečné kódy odkazů zajišťují bezpečnost a analýzu bez možnosti bruteforce.
  • Univerzální odesílání souborů prostřednictvím sendDocument s fallbackem funguje pro všechny formáty Telegramu.
  • Stars se snadno integrují, ale zúčtování probíhá vlastníkovi bota – zdrojový kód je otevřený pro samostatné nasazení.
  • HTTPS na nestandardním portu řeší Nginx + Certbot bez konfliktu s VPN.
  • Middleware CORS v aiohttp řeší křížové požadavky Mini App.

— Editorial Team

Advertisement 728x90

Číst dál