Come creare un bot paywall per Discord con Stripe
I server Discord sono diventati più che semplici piattaforme di comunicazione: sono community fiorenti che spesso offrono contenuti e servizi preziosi. Mentre i proprietari dei server cercano di monetizzare le loro community, l’implementazione di un sistema paywall affidabile diventa cruciale. È qui che entra in gioco il nostro bot Discord Stripe. È gratuito e open source.
A differenza delle soluzioni tradizionali come Donatebot.io, il nostro bot comunica direttamente con Stripe, eliminando le commissioni intermedie e fornendo un’esperienza più snella sia per i proprietari dei server che per gli utenti.
Lo 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" }
]
Funzionalità
Il nostro bot gratuito implementa un robusto sistema di abbonamento che gestisce tutto, dalla registrazione dell’utente alla gestione dell’abbonamento:
- Assegnazione istantanea del ruolo all’abbonamento
- Sistema di verifica e-mail con convalida regex
- Supporto per abbonamenti ricorrenti e a vita
- Controlli automatizzati dello stato dell’abbonamento
- Sistema di promemoria progressivo per gli abbonamenti in scadenza
Il bot Discord esegue controlli giornalieri per garantire la validità dell’abbonamento e gestisce automaticamente i ruoli degli utenti in base al loro stato di abbonamento.
Comandi user-friendly
Abbiamo progettato un sistema di comandi intuitivo che rende facile per gli utenti gestire i loro abbonamenti. Il bot supporta sia i comandi slash che i tradizionali comandi messaggio:
// Esempio dell'implementazione del comando subscribe
export const commands = [
{
name: "subscribe",
description: "Abbonati o riscatta il tuo abbonamento attivo!",
options: [
{
name: "email",
description: "Il tuo indirizzo email",
type: ApplicationCommandOptionType.String,
required: false
}
]
}
];
Il sistema di comandi include:
/subscribe- Collega il tuo account Discord con un abbonamento Stripe/status- Controlla lo stato del tuo abbonamento/cancel- Annulla il tuo abbonamento/admin-access- Gestisci l’accesso amministratore (solo admin)
Tutti i comandi sono limitati al canale per mantenere l’organizzazione del server. Ad esempio, i comandi di abbonamento possono essere utilizzati solo nei canali designati.
Sistema di verifica
Il bot include un sofisticato sistema di verifica che esegue controlli giornalieri:
export const crons = [
'0 0 1 * * *'
];
const getExpiredEmbed = (daysLeft: 0 | 1 | 2): EmbedBuilder => {
const title = daysLeft > 0 ? 'Il tuo abbonamento sta per scadere' : 'Il tuo abbonamento è scaduto';
const embed = new EmbedBuilder()
.setTitle(title)
.setURL(process.env.STRIPE_PAYMENT_LINK)
.setColor(process.env.EMBED_COLOR)
.setDescription(`Visita ${process.env.STRIPE_PAYMENT_LINK} per mantenere il tuo accesso esclusivo! ${daysLeft > 0 ? `Il tuo abbonamento scade tra ${daysLeft * 24} ore.` : ''}`);
return embed;
}
Caratteristiche:
- Verifica giornaliera dello stato dell’abbonamento
- Sistema di promemoria progressivo (3 giorni, 2 giorni, 1 giorno prima della scadenza)
- Gestione automatica dei ruoli
- Registrazione dettagliata per gli amministratori
- Supporto per abbonamenti a vita
Integrazione Stripe
La nostra integrazione diretta con Stripe garantisce un’elaborazione affidabile dei pagamenti:
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)
);
}
Installazione
Configurare il bot è semplice:
- Installa Node.js e PostgreSQL
- Crea e configura il tuo database
- Installa le dipendenze
- Compila il progetto
- Configura le tue variabili d’ambiente
- Distribuisci usando PM2 o il tuo gestore di processi preferito
Conclusione
Il nostro bot Discord Stripe offre una soluzione potente, sicura ed efficiente per implementare paywall sui server Discord. La sua integrazione diretta con Stripe, il sistema di verifica automatizzato e i controlli amministrativi completi lo rendono una scelta ideale per i proprietari di server che desiderano monetizzare le loro community.
Puoi ottenere il codice sorgente a questo link.