Tutoriel

Comment créer un bot paywall Discord avec Stripe

Josselin Liebe profile Josselin Liebe
Publié le 19 mars 2025 Mis à jour le 12 août 2025

Les serveurs Discord sont devenus plus que de simples plateformes de communication - ce sont des communautés florissantes qui fournissent souvent du contenu et des services précieux. Alors que les propriétaires de serveurs cherchent à monétiser leurs communautés, implémenter un système de paywall fiable devient crucial. C’est là qu’intervient notre bot Discord Stripe. Il est gratuit et open source.

Contrairement aux solutions traditionnelles comme Donatebot.io, notre bot communique directement avec Stripe, éliminant les frais intermédiaires et fournissant une expérience plus fluide pour les propriétaires de serveurs et les utilisateurs.

La Stack

[
    { name: 'Node.js', version: 'v16+' },
    { name: 'PostgreSQL', version: 'v13+' },
    { name: 'Discord.js', version: 'latest' },
    { name: 'Stripe API', version: 'latest' },
    { name: 'TypeORM', version: 'latest' },
    { name: 'Sentry', version: 'latest' }
]

Fonctionnalités

Notre bot gratuit implémente un système d’abonnement robuste qui gère tout, de l’enregistrement des utilisateurs à la gestion des abonnements :

  • Attribution instantanée de rôles lors de l’abonnement
  • Système de vérification d’email avec validation regex
  • Support pour les abonnements récurrents et à vie
  • Vérifications automatiques du statut d’abonnement
  • Système progressif de rappels pour les abonnements expirants

Le bot Discord effectue des vérifications quotidiennes pour assurer la validité de l’abonnement et gère automatiquement les rôles utilisateur basés sur leur statut d’abonnement.

Commandes faciles à utiliser

Nous avons conçu un système de commandes intuitif qui facilite aux utilisateurs la gestion de leurs abonnements. Le bot supporte à la fois les commandes slash et les commandes de message traditionnelles :

// Exemple de l'implémentation de la commande subscribe
export const commands = [
    {
        name: "subscribe",
        description: "Abonnez-vous ou réclamez votre abonnement actif !",
        options: [
            {
                name: "email",
                description: "Votre adresse email",
                type: ApplicationCommandOptionType.String,
                required: false
            }
        ]
    }
];

Le système de commandes inclut :

  • /subscribe - Liez votre compte Discord avec un abonnement Stripe
  • /status - Vérifiez le statut de votre abonnement
  • /cancel - Annulez votre abonnement
  • /admin-access - Gérez l’accès administrateur (admin uniquement)

Toutes les commandes sont restreintes par canal pour maintenir l’organisation du serveur. Par exemple, les commandes d’abonnement ne peuvent être utilisées que dans des canaux désignés.

Système de vérification

Le bot inclut un système de vérification sophistiqué qui effectue des vérifications quotidiennes :

export const crons = [
   '0 0 1 * * *'
];

const getExpiredEmbed = (daysLeft: 0 | 1 | 2): EmbedBuilder => {
    const title = daysLeft > 0 ? 'Votre abonnement va bientôt expirer' : 'Votre abonnement a expiré';
    const embed = new EmbedBuilder()
        .setTitle(title)
        .setURL(process.env.STRIPE_PAYMENT_LINK)
        .setColor(process.env.EMBED_COLOR)
        .setDescription(`Veuillez visiter ${process.env.STRIPE_PAYMENT_LINK} pour maintenir votre accès exclusif ! ${daysLeft > 0 ? `Votre abonnement expire dans ${daysLeft * 24} heures.` : ''}`);
    return embed;
}

Fonctionnalités :

  • Vérification quotidienne du statut d’abonnement
  • Système progressif de rappels (3 jours, 2 jours, 1 jour avant expiration)
  • Gestion automatique des rôles
  • Journalisation détaillée administrateur
  • Support pour les abonnements à vie

Intégration Stripe

Notre intégration directe avec Stripe assure un traitement de paiements fiable :

export const findSubscriptionsFromCustomerId = async (customerId: string) => {
    const subscriptions = await queue.add(async () =>
        await fetch(`https://api.stripe.com/v1/subscriptions?customer=${customerId}`, {
            headers: {
                Authorization: `Bearer ${process.env.STRIPE_API_KEY}`
            }
        }).json()
    );
    return subscriptions.data || [];
}

export const findActiveSubscriptions = (subscriptions: any[]) => {
    return subscriptions.filter(sub =>
        sub.status === 'active' ||
        sub.status === 'trialing' ||
        (sub.cancel_at && sub.current_period_end > Date.now() / 1000)
    );
}

Installation

Configurer le bot est simple :

  1. Installez Node.js et PostgreSQL
  2. Créez et configurez votre base de données
  3. Installez les dépendances :
  4. Construisez le projet :
  5. Configurez vos variables d’environnement :
  6. Déployez en utilisant PM2 ou votre gestionnaire de processus préféré

Conclusion

Notre bot Discord Stripe fournit une solution puissante, sécurisée et efficace pour implémenter des paywalls sur les serveurs Discord. Son intégration directe avec Stripe, son système de vérification automatisé et ses contrôles administratifs complets en font un choix idéal pour les propriétaires de serveurs cherchant à monétiser leurs communautés.

Vous pouvez obtenir le code source sur ce lien.

Prêt à transformer votre passion en profit ?

Rejoignez des milliers de créateurs qui gagnent déjà de l'argent avec Sublyna.
Commencer gratuitement Aucune carte de crédit requise. Aucun problème de configuration.
Image CTA femmes