Retour à l'accueil

Bot Telegram Stars pour paiements sans IP

L'article décrit la création d'un bot Telegram pour paiements via Stars sans inscription. Utilise aiogram 3, SQLite, aiohttp pour Mini App. Couvre liens uniques, traitement de fichiers, déploiement HTTPS et CORS.

Bot Stars : paiements dans Telegram sans inscription
Advertisement 728x90

Créez un bot de paiement Telegram avec Stars — Sans IP ni ID

Les développeurs peuvent désormais accepter des dons et vendre des produits numériques sur Telegram sans s'inscrire en tant qu'entrepreneur individuel (IP) ni fournir de documents d'identité. En utilisant les Stars de Telegram comme monnaie, le bot génère automatiquement des factures et traite les paiements. Le système repose sur Python avec aiogram 3, SQLite pour le stockage des données et aiohttp pour l'API Mini App. Cela permet à tout utilisateur Telegram de créer des produits et de générer des liens de paiement en quelques secondes.

Architecture du système

Le bot aiogram 3 interagit avec une base de données SQLite qui stocke les produits, les vendeurs et les liens de paiement. Une API séparée via aiohttp sert la Mini App grâce à plusieurs points de terminaison :

  • /api/products — catalogue des produits
  • /api/donate — données du bouton de don
  • /api/create_invoice — génération de facture

La logique de paiement est entièrement gérée par le bot : la Mini App récupère les données via l'API, le bot crée la facture, puis confirme le paiement réussi grâce à l'événement successful_payment.

Google AdInline article slot

Génération de liens de paiement uniques

Pour garantir la sécurité, les liens sont générés avec des codes uniques tels que prod_fgU7d, stockés dans la table payment_links. URL complète : https://t.me/System_Paybot?start=prod_fgU7d. Cette méthode empêche les attaques par force brute sur les identifiants et permet de suivre précisément les sources de trafic.

Lors de la livraison du contenu, le bot détecte automatiquement le type de fichier à partir de file_id et utilise un mécanisme universel d'envoi :

try:
    await message.answer_document(document=content, caption=thanks)
except:
    try:
        await message.answer_photo(photo=content, caption=thanks)
    except:
        # tentatives supplémentaires pour vidéo, audio, etc.

La méthode sendDocument fonctionne de manière fiable pour la plupart des types de fichiers Telegram.

Google AdInline article slot

Traitement des paiements en Stars

Les factures sont créées à l’aide de la méthode create_invoice_link avec les paramètres suivants :

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

Telegram gère le paiement et envoie une mise à jour successful_payment contenant le payload, permettant d’identifier le produit et de le livrer au client.

Fonctionnalités administratives et analyse

Les administrateurs ont accès aux commandes suivantes :

Google AdInline article slot
  • /admin_stats — statistiques globales
  • /admin_users — liste des utilisateurs récents
  • /admin_broadcast — diffusion massive de messages
  • /admin_ban / /admin_unban — gestion des accès

Les vendeurs utilisent /stats pour consulter leurs analyses personnelles.

Déploiement et résolution des problèmes

Limites des Stars

Les Stars sont créditées directement au propriétaire du bot et ne peuvent pas être transférées. Solution : le code open source permet à tout le monde de déployer son propre bot.

HTTPS pour la Mini App

La Mini App nécessite HTTPS. Si le port 443 est occupé (ex. par Xray VPN), utilisez un sous-domaine avec Nginx sur le port 8443 :

  • Sous-domaine : shop.system-dev.ru
  • Certbot pour les certificats SSL
  • Ouvrir le port 8443 dans iptables
  • URL BotFather : https://shop.system-dev.ru:8443

Attribuez les permissions correctes sur /var/www/systempay avec chmod 755 pour l'utilisateur www-data.

CORS dans l’API

Ajoutez un middleware dans 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

Fonctionnalités finales

Ce bot permet :

  • Télécharger n'importe quel type de fichier ou partager des liens
  • Recevoir des dons de tout montant
  • Une Mini App avec catalogue de produits et interface réactive
  • Tableau de bord d'analyse personnalisé
  • Panneau d'administration

Prêt à être utilisé immédiatement pour automatiser les ventes sur Telegram.

Points clés

  • Les codes de lien uniques assurent sécurité et suivi du trafic sans risque de devinette d'ID.
  • L'envoi universel de fichiers via sendDocument avec mécanismes de secours fonctionne pour tous les formats Telegram.
  • L'intégration des Stars est simple, mais les fonds vont au propriétaire du bot — le code open source permet l'hébergement autonome.
  • L'utilisation d'HTTPS sur des ports non standards est résolue via Nginx + Certbot, sans conflit avec les VPNs.
  • Le middleware CORS dans aiohttp règle les problèmes d'accès croisé pour la Mini App.

— Editorial Team

Advertisement 728x90

Lire ensuite