Telegram-Zahlungsbot mit Stars erstellen – Keine IP oder ID nötig
Entwickler können Spenden entgegennehmen und digitale Produkte über Telegram verkaufen, ohne sich als Einzelunternehmer (IP) anmelden oder Passdaten anzugeben. Mit Telegram Stars als Zahlungsmittel generiert der Bot automatisch Rechnungen und verarbeitet Zahlungen. Die Lösung basiert auf Python mit aiogram 3, SQLite für die Datenspeicherung und aiohttp für die Mini-App-API. So kann jeder Telegram-Nutzer innerhalb von Sekunden Produkte erstellen und Zahlungslinks generieren.
Systemarchitektur
Der aiogram 3-Bot kommuniziert mit einer SQLite-Datenbank, die Produkte, Verkäufer und Zahlungslinks speichert. Eine separate aiohttp-API stellt die Mini-App über folgende Endpunkte bereit:
/api/products– Produktkatalog/api/donate– Daten für die Spenden-Schaltfläche/api/create_invoice– Erstellung von Rechnungen
Die Zahlungslogik wird vollständig im Bot selbst abgewickelt: Die Mini-App holt die Daten per API ab, der Bot erstellt die Rechnung und bestätigt erfolgreiche Zahlungen über das successful_payment-Ereignis.
Einzigartige Zahlungslinks generieren
Zur Sicherheit werden Links mit eindeutigen Codes wie prod_fgU7d erzeugt und in der Tabelle payment_links gespeichert. Vollständige URL: https://t.me/System_Paybot?start=prod_fgU7d. Dies verhindert Brute-Force-Angriffe auf IDs und ermöglicht die Quellverfolgung von Traffic.
Beim Inhaltssendung erkennt der Bot den Dateityp anhand des file_id und nutzt einen universellen Versandmechanismus:
try:
await message.answer_document(document=content, caption=thanks)
except:
try:
await message.answer_photo(photo=content, caption=thanks)
except:
# weitere Versuche für Video, Audio usw.
Die Methode sendDocument funktioniert zuverlässig bei den meisten Telegram-Dateitypen.
Verarbeitung von Stars-Zahlungen
Rechnungen werden mit der Methode create_invoice_link und folgenden Parametern erstellt:
invoice_link = await bot.create_invoice_link(
title=title,
description=f"Kauf: {title}",
payload=f"pay_{product_id}_{user_id}",
provider_token="",
currency="XTR",
prices=[{"label": title, "amount": amount}]
)
Telegram verarbeitet die Zahlung und sendet ein successful_payment-Update mit dem payload, um das Produkt zu identifizieren und an den Nutzer zu übermitteln.
Admin-Funktionen & Analytics
Besitzer haben Zugriff auf folgende Befehle:
/admin_stats– Gesamtstatistiken/admin_users– Letzte Nutzer/admin_broadcast– Massen-Nachrichten/admin_ban//admin_unban– Zugriffssteuerung
Verkäufer nutzen /stats für persönliche Analysen.
Bereitstellung & Fehlerbehebung
Einschränkungen von Stars
Stars werden direkt dem Bot-Betreiber gutgeschrieben und können nicht an andere weitergegeben werden. Lösung: Der Open-Source-Code ermöglicht es jedem, seinen eigenen Bot zu betreiben.
HTTPS für die Mini-App
Die Mini-App erfordert HTTPS. Ist Port 443 belegt (z. B. durch Xray VPN), verwendet man einen Subdomain mit Nginx auf Port 8443:
- Subdomain:
shop.system-dev.ru - Certbot für SSL-Zertifikate
- Port 8443 in iptables freigeben
- BotFather-URL:
https://shop.system-dev.ru:8443
Setze die Berechtigungen für /var/www/systempay auf chmod 755 für www-data.
CORS in der API
Füge Middleware in aiohttp hinzu:
@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
Endfunktionen
Der Bot unterstützt:
- Hochladen beliebiger Dateitypen oder Freigabe von Links
- Spenden in beliebiger Höhe
- Mini-App mit Produktkatalog und responsivem UI
- Persönliche Analytik-Dashboard
- Admin-Panel
Fertig zum sofortigen Einsatz zur Automatisierung von Verkäufen in Telegram.
Wichtige Erkenntnisse
- Einzigartige Link-Codes sorgen für Sicherheit und Traffic-Analyse ohne ID-Raten.
- Universeller Dateiversand via
sendDocumentmit Fallbacks funktioniert für alle Telegram-Formate. - Stars-Integration ist einfach, aber die Gelder gehen an den Bot-Betreiber – Open Source ermöglicht Selbsthosting.
- HTTPS auf nicht-standardmäßigen Ports wird gelöst mit Nginx + Certbot ohne Konflikte mit VPNs.
- CORS-Middleware in aiohttp behebt Cross-Origin-Probleme für die Mini-App.
— Editorial Team
Noch keine Kommentare.