Tutorial

Como criar um bot paywall do Discord com Stripe

Josselin Liebe profile Josselin Liebe
Publicado em 19 de mar. de 2025 Atualizado em 12 de ago. de 2025

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:

  1. Instale Node.js e PostgreSQL
  2. Crie e configure seu banco de dados
  3. Instale dependências:
  4. Construa o projeto:
  5. Configure suas variáveis de ambiente:
  6. 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.

Pronto para transformar sua paixão em lucro?

Junte-se a milhares de criadores que já estão ganhando dinheiro com Sublyna.
Começar grátis Nenhum cartão de crédito necessário. Sem complicações de configuração.
Imagem CTA mulheres