Hoe maak je een Discord paywall-bot met Stripe
Discord-servers zijn meer geworden dan alleen communicatieplatforms - het zijn bloeiende gemeenschappen die vaak waardevolle inhoud en diensten bieden. Terwijl servereigenaren hun gemeenschappen willen monetariseren, wordt het implementeren van een betrouwbaar paywall-systeem cruciaal. Hier komt onze Stripe Discord-bot om de hoek kijken. Hij is gratis en open source.
In tegenstelling tot traditionele oplossingen zoals Donatebot.io, communiceert onze bot rechtstreeks met Stripe, waardoor tussenpersoonkosten worden geëlimineerd en een meer gestroomlijnde ervaring wordt geboden voor zowel servereigenaren als gebruikers.
De 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" }
]
Kenmerken
Onze gratis bot implementeert een robuust abonnementssysteem dat alles afhandelt, van gebruikersregistratie tot abonnementsbeheer:
- Directe roltoewijzing na abonnement
- E-mailverificatiesysteem met regex-validatie
- Ondersteuning voor zowel terugkerende als levenslange abonnementen
- Geautomatiseerde abonnementsstatuscontroles
- Progressief herinneringssysteem voor aflopende abonnementen
De Discord-bot voert dagelijkse controles uit om de geldigheid van het abonnement te garanderen en beheert automatisch gebruikersrollen op basis van hun abonnementsstatus.
Gebruiksvriendelijke commando’s
We hebben een intuïtief commandosysteem ontworpen dat het voor gebruikers gemakkelijk maakt om hun abonnementen te beheren. De bot ondersteunt zowel slash-commando’s als traditionele berichtcommando’s:
// Voorbeeld van de implementatie van het subscribe-commando
export const commands = [
{
name: "subscribe",
description: "Abonneer u of claim uw actieve abonnement!",
options: [
{
name: "email",
description: "Uw e-mailadres",
type: ApplicationCommandOptionType.String,
required: false
}
]
}
];
Het commandosysteem omvat:
/subscribe- Koppel uw Discord-account aan een Stripe-abonnement/status- Controleer uw abonnementsstatus/cancel- Annuleer uw abonnement/admin-access- Beheer beheerderstoegang (alleen beheerder)
Alle commando’s zijn kanaalgebonden om de serverorganisatie te behouden. Abonnementscommando’s kunnen bijvoorbeeld alleen in daarvoor bestemde kanalen worden gebruikt.
Verificatiesysteem
De bot bevat een geavanceerd verificatiesysteem dat dagelijkse controles uitvoert:
export const crons = [
'0 0 1 * * *'
];
const getExpiredEmbed = (daysLeft: 0 | 1 | 2): EmbedBuilder => {
const title = daysLeft > 0 ? 'Uw abonnement verloopt bijna' : 'Uw abonnement is verlopen';
const embed = new EmbedBuilder()
.setTitle(title)
.setURL(process.env.STRIPE_PAYMENT_LINK)
.setColor(process.env.EMBED_COLOR)
.setDescription(`Bezoek ${process.env.STRIPE_PAYMENT_LINK} om uw exclusieve toegang te behouden! ${daysLeft > 0 ? `Uw abonnement verloopt binnen ${daysLeft * 24} uur.` : ''}`);
return embed;
}
Kenmerken:
- Dagelijkse verificatie van abonnementsstatus
- Progressief herinneringssysteem (3 dagen, 2 dagen, 1 dag voor afloop)
- Automatisch rolbeheer
- Gedetailleerde beheerderslogging
- Ondersteuning voor levenslange abonnementen
Stripe-integratie
Onze directe integratie met Stripe zorgt voor betrouwbare betalingsverwerking:
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)
);
}
Installatie
Het instellen van de bot is eenvoudig:
- Installeer Node.js en PostgreSQL
- Maak en configureer uw database
- Installeer afhankelijkheden
- Bouw het project
- Configureer uw omgevingsvariabelen
- Implementeer met PM2 of uw favoriete procesbeheerder
Conclusie
Onze Stripe Discord-bot biedt een krachtige, veilige en efficiënte oplossing voor het implementeren van paywalls op Discord-servers. De directe integratie met Stripe, het geautomatiseerde verificatiesysteem en de uitgebreide beheerderscontroles maken het een ideale keuze voor servereigenaren die hun gemeenschappen willen monetariseren.
U kunt de broncode verkrijgen via deze link.