Comment créer un bot paywall Discord avec Stripe

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 :
- Installez Node.js et PostgreSQL
- Créez et configurez votre base de données
- Installez les dépendances :
- Construisez le projet :
- Configurez vos variables d’environnement :
- 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.