Crea un bot de pagos en Telegram con Stars — Sin IP ni ID
Los desarrolladores pueden recibir donaciones y vender productos digitales en Telegram sin registrarse como empresario individual (IP) ni proporcionar datos del pasaporte. Al usar las Estrellas de Telegram como moneda, el bot genera facturas y procesa pagos automáticamente. El sistema utiliza Python con aiogram 3, SQLite para almacenar datos y aiohttp para la API de la Mini App. Esto permite a cualquier usuario de Telegram crear productos y generar enlaces de pago en cuestión de segundos.
Arquitectura del sistema
El bot de aiogram 3 interactúa con una base de datos SQLite que almacena productos, vendedores y enlaces de pago. Una API separada con aiohttp sirve la Mini App mediante endpoints:
/api/products— catálogo de productos/api/donate— datos del botón de donación/api/create_invoice— generación de facturas
La lógica de pagos se gestiona completamente dentro del bot: la Mini App obtiene los datos mediante la API, el bot crea las facturas y confirma los pagos exitosos a través del evento successful_payment.
Generación de enlaces de pago únicos
Para garantizar seguridad, los enlaces se generan con códigos únicos como prod_fgU7d, almacenados en la tabla payment_links. URL completa: https://t.me/System_Paybot?start=prod_fgU7d. Esto evita intentos de fuerza bruta por ID y permite rastrear fuentes de tráfico.
Al entregar contenido, el bot detecta el tipo de archivo desde file_id y utiliza un mecanismo universal de envío:
try:
await message.answer_document(document=content, caption=thanks)
except:
try:
await message.answer_photo(photo=content, caption=thanks)
except:
# intentos adicionales para video, audio, etc.
El método sendDocument funciona de forma confiable con la mayoría de los tipos de archivos de Telegram.
Procesamiento de pagos con Estrellas
Las facturas se crean usando el método create_invoice_link con parámetros:
invoice_link = await bot.create_invoice_link(
title=title,
description=f"Compra: {title}",
payload=f"pay_{product_id}_{user_id}",
provider_token="",
currency="XTR",
prices=[{"label": title, "amount": amount}]
)
Telegram maneja el pago y envía una actualización successful_payment con el payload para identificar el producto y entregarlo al usuario.
Funciones de administrador y análisis
Los propietarios tienen acceso a comandos:
/admin_stats— estadísticas generales/admin_users— usuarios recientes/admin_broadcast— mensajes masivos/admin_ban//admin_unban— control de acceso
Los vendedores usan /stats para analíticas personales.
Solución de problemas en despliegue
Limitaciones de las Estrellas
Las Estrellas se cargan directamente al propietario del bot y no se pueden transferir a otros. Solución: código abierto permite a cualquiera desplegar su propio bot.
HTTPS para la Mini App
La Mini App requiere HTTPS. Cuando el puerto 443 está ocupado (por ejemplo, por Xray VPN), usa un subdominio con Nginx en el puerto 8443:
- Subdominio:
shop.system-dev.ru - Certbot para certificados SSL
- Abrir el puerto 8443 en iptables
- URL de BotFather:
https://shop.system-dev.ru:8443
Establece permisos en /var/www/systempay con chmod 755 para www-data.
CORS en la API
Agrega middleware en 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
Capacidad final
El bot soporta:
- Subida de archivos de cualquier tipo o compartir enlaces
- Donaciones de cualquier monto
- Mini App con catálogo de productos y UI adaptable
- Panel de análisis personal
- Panel de administración
Listo para uso inmediato y automatiza ventas en Telegram.
Conclusiones clave
- Códigos únicos de enlace aseguran seguridad y análisis de tráfico sin adivinar IDs.
- Entrega universal de archivos mediante
sendDocumentcon respaldos funciona en todos los formatos de Telegram. - La integración con Estrellas es sencilla, pero los fondos van al propietario del bot — el código abierto permite autohospedaje.
- HTTPS en puertos no estándar se resuelve con Nginx + Certbot sin conflictos con VPNs.
- El middleware CORS en aiohttp soluciona problemas de origen cruzado para la Mini App.
— Editorial Team
Aún no hay comentarios.