Como usar Stripe como Paywall no fluxo de trabalho do bot Telegram?

Existe um tutorial ou fluxo de trabalho que ensine como integrar Stripe como paywall para meu bot do Telegram? Preciso gerenciar assinaturas mensais/anuais para que os usuários só possam acessar os recursos principais do bot se pagarem e tiverem uma assinatura válida.
Há algo em que eu pudesse pesquisar?

Informações sobre sua configuração n8n

  • Versão n8n: 2.25.7
  • Banco de dados (padrão: SQLite): Sim
  • Configuração n8n EXECUTIONS_PROCESS (padrão: own, main):
  • Executando n8n via (Docker, npm, n8n cloud, aplicativo desktop): Docker
  • Sistema operacional: Linux Mint
1 curtida

Oi @Federico_Gentile

Essos podem ajudar

1 curtida

Esses templates cobrem notificações de checkout; a parte faltante para o bot do Federico é a porta de acesso. Mantenha uma pequena tabela de assinatura indexada pelo chat_id/id de usuário do Telegram mais o customer e subscription do Stripe, então verifique essa linha antes de cada comando pago em vez de confiar em um evento de checkout para sempre.

Federico, os usuários começam no Telegram antes de pagar, ou eles caem em uma página web primeiro e conectam o Telegram após o checkout? Isso decide se o link limpo é um deep link /start do bot ou um link de Stripe Checkout que o bot envia.

1 curtida

Obrigado pela resposta rápida. Então, a ideia por enquanto é que o usuário chegue ao bot do Telegram diretamente pesquisando por ele ou compartilhando o link. Uma vez lá, os usuários terão 2 comandos disponíveis:

  1. /list → que fornece algumas informações sobre os serviços que desejo vender
  2. /subscribe → que permite ao usuário pagar a assinatura mensal/anual via Stripe.
    Após o pagamento ser feito, o usuário pode interagir com o resto dos comandos e ter acesso ao serviço completo.

Atualmente, gostaria de fazer essa implementação tentando minimizar erros e evitar reinventar a roda se possível, já que não sou muito familiarizado com essa tecnologia (entendo um pouco de tudo, mas não em detalhes super profundos).

Bem-vindo @Federico_Gentile!

A arquitetura que @oimrqs_ops descreveu é a abordagem correta. Uma coisa a adicionar: conecte um nó Webhook aos eventos customer.subscription.updated e invoice.payment_failed do Stripe para que sua tabela de assinaturas fique sincronizada automaticamente - caso contrário, você terá usuários acessando funcionalidades pagas depois que suas assinaturas expiram. No n8n, configure a URL do Webhook no seu painel do Stripe em Developers > Webhooks, depois use um nó Switch para fazer branch em event.type e atualize o status do usuário no seu DB adequadamente. Dessa forma, a verificação de acesso no seu bot é apenas uma simples busca no DB sem precisar chamar a API do Stripe a cada mensagem.

Essa forma /subscribe é a mais limpa. Faça /subscribe criar uma Stripe Checkout Session com o chat_id do Telegram em client_reference_id ou metadados, depois deixe o webhook da Stripe conceder acesso após checkout.session.completed / a assinatura estar ativa; não desbloqueie apenas pelo redirecionamento.

Mantenha /list gratuito e faça cada comando pago fazer uma busca na tabela de acesso antes de ser executado. Federico, qual você já está usando para essa tabela: Postgres, SQLite, Sheets, ou algo mais?

1 curtida

Obrigado @oimrqs_ops e @nguyenthieutoan pelas contribuições de vocês. Vou tentar agora que tenho uma direção mais clara. Com sorte, se eu conseguir, vou fazer um tutorial sobre isso porque acho que é um caso de uso bem útil. Fiquei surpreso que não haja tanta informação sobre isso.

@Federico_Gentile Concentre seu alcance em entregar ecossistemas de automação de alto valor—n8n, AI, Make.com e GHL—para garantir que seus clientes vivenciem crescimento contínuo e gerador de receita