Como criar um bot paywall do Discord com Stripe

Servidores do Discord se tornaram mais do que apenas plataformas de comunicação - são comunidades prósperas que frequentemente fornecem conteúdo e serviços valiosos. À medida que os proprietários de servidores buscam monetizar suas comunidades, implementar um sistema de paywall confiável se torna crucial. É aqui que entra nosso bot Discord do Stripe. É gratuito e open source.
Diferente de soluções tradicionais como Donatebot.io, nosso bot se comunica diretamente com o Stripe, eliminando taxas intermediárias e fornecendo uma experiência mais fluida tanto para proprietários de servidores quanto para usuários.
A 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' }
]
Recursos
Nosso bot gratuito implementa um sistema de assinatura robusto que gerencia tudo desde registro de usuários até gerenciamento de assinaturas:
- Atribuição instantânea de funções ao assinar
- Sistema de verificação de email com validação regex
- Suporte para assinaturas recorrentes e vitalícias
- Verificações automáticas do status da assinatura
- Sistema progressivo de lembretes para assinaturas expirando
O bot do Discord executa verificações diárias para garantir a validade da assinatura e gerencia automaticamente as funções do usuário com base em seu status de assinatura.
Comandos fáceis de usar
Projetamos um sistema de comandos intuitivo que facilita aos usuários gerenciar suas assinaturas. O bot suporta tanto comandos slash quanto comandos de mensagem tradicionais:
// Exemplo da implementação do comando subscribe
export const commands = [
{
name: "subscribe",
description: "Assine ou reivindique sua assinatura ativa!",
options: [
{
name: "email",
description: "Seu endereço de email",
type: ApplicationCommandOptionType.String,
required: false
}
]
}
];
O sistema de comandos inclui:
/subscribe
- Vincule sua conta do Discord com uma assinatura do Stripe/status
- Verifique o status da sua assinatura/cancel
- Cancele sua assinatura/admin-access
- Gerencie acesso de administrador (apenas admin)
Todos os comandos são restritos por canal para manter a organização do servidor. Por exemplo, comandos de assinatura só podem ser usados em canais designados.
Sistema de verificação
O bot inclui um sistema de verificação sofisticado que executa verificações diárias:
export const crons = [
'0 0 1 * * *'
];
const getExpiredEmbed = (daysLeft: 0 | 1 | 2): EmbedBuilder => {
const title = daysLeft > 0 ? 'Sua assinatura está prestes a expirar' : 'Sua assinatura expirou';
const embed = new EmbedBuilder()
.setTitle(title)
.setURL(process.env.STRIPE_PAYMENT_LINK)
.setColor(process.env.EMBED_COLOR)
.setDescription(`Por favor, visite ${process.env.STRIPE_PAYMENT_LINK} para manter seu acesso exclusivo! ${daysLeft > 0 ? `Sua assinatura expira em ${daysLeft * 24} horas.` : ''}`);
return embed;
}
Recursos:
- Verificação diária do status da assinatura
- Sistema progressivo de lembretes (3 dias, 2 dias, 1 dia antes da expiração)
- Gerenciamento automático de funções
- Log detalhado de administrador
- Suporte para assinaturas vitalícias
Integração com Stripe
Nossa integração direta com o Stripe garante processamento de pagamentos confiável:
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)
);
}
Instalação
Configurar o bot é simples:
- Instale Node.js e PostgreSQL
- Crie e configure seu banco de dados
- Instale dependências:
- Construa o projeto:
- Configure suas variáveis de ambiente:
- Implante usando PM2 ou seu gerenciador de processos preferido
Conclusão
Nosso bot Discord do Stripe fornece uma solução poderosa, segura e eficiente para implementar paywalls em servidores do Discord. Sua integração direta com o Stripe, sistema de verificação automatizado e controles administrativos abrangentes o tornam uma escolha ideal para proprietários de servidores que buscam monetizar suas comunidades.
Você pode obter o código fonte neste link.