¿Cómo usar Stripe como pasarela de pago en el flujo de trabajo de bots de Telegram?

¿Hay un tutorial o flujo de trabajo que enseñe cómo integrar Stripe como un Paywall para mi Bot de Telegram? Necesito manejar suscripciones mensuales/anuales para que los usuarios solo puedan acceder a las características principales del bot si pagaron y tienen una suscripción válida.
¿Hay algo en lo que pueda profundizar?

Información sobre tu configuración de n8n

  • Versión de n8n: 2.25.7
  • Base de datos (predeterminado: SQLite): Sí
  • Configuración EXECUTIONS_PROCESS de n8n (predeterminado: own, main):
  • Ejecutando n8n mediante (Docker, npm, n8n cloud, aplicación de escritorio): Docker
  • Sistema operativo: Linux Mint
1 me gusta

Hola @Federico_Gentile

Estos pueden ayudarte

1 me gusta

Esas plantillas cubren notificaciones de checkout; la parte faltante para el bot de Federico es la puerta de acceso. Mantén una pequeña tabla de suscripción con claves chat_id/id de usuario de Telegram más customer y subscription de Stripe, y luego verifica esa fila antes de cada comando pagado en lugar de confiar en un evento de checkout de una sola vez.

Federico, ¿los usuarios comienzan en Telegram antes de pagar o llegan primero a una página web y conectan Telegram después del checkout? Eso determina si el enlace limpio es un enlace profundo /start del bot o un enlace de Stripe Checkout que envía el bot.

1 me gusta

Gracias por la respuesta rápida. Así que la idea por ahora es que el usuario llegue al bot de Telegram directamente buscándolo o compartiendo el enlace. Una vez allí, los usuarios tendrán 2 comandos disponibles:

  1. /list → que proporciona información sobre los servicios que quiero vender
  2. /subscribe → que permite al usuario pagar la suscripción mensual/anual a través de Stripe.
    Una vez completado el pago, el usuario puede interactuar con el resto de los comandos y tener acceso al servicio completo.

Actualmente me gustaría hacer esta implementación intentando minimizar errores y evitar reinventar la rueda si es posible, ya que no soy muy familiarizado con esta tecnología (sé un poco de todo pero no en detalle).

¡Bienvenido @Federico_Gentile!

La arquitectura que describió @oimrqs_ops es el enfoque correcto. Una cosa más a añadir: conecta un nodo Webhook a los eventos customer.subscription.updated e invoice.payment_failed de Stripe para que tu tabla de suscripciones se mantenga sincronizada automáticamente; de lo contrario, tendrás usuarios accediendo a funciones de pago después de que expire su suscripción. En n8n, configura la URL del Webhook en tu panel de control de Stripe en Developers > Webhooks, y luego usa un nodo Switch para ramificar según event.type y actualizar el estado del usuario en tu BD en consecuencia. De esta forma, la verificación de acceso en tu bot es simplemente una búsqueda en BD sin necesidad de llamar a la API de Stripe en cada mensaje.

La forma /subscribe es la limpia. Haz que /subscribe cree una Stripe Checkout Session con el chat_id de Telegram en client_reference_id o metadata, luego deja que el webhook de Stripe otorgue acceso después de checkout.session.completed / cuando la suscripción esté activa; no desbloquees solo por el redirect.

Mantén /list gratuito y haz que cada comando pagado haga una búsqueda en la tabla de acceso antes de ejecutarse. Federico, ¿qué estás usando para esa tabla: Postgres, SQLite, Sheets, o algo más?

1 me gusta

Gracias @oimrqs_ops y @nguyenthieutoan por sus contribuciones. Voy a intentarlo ahora que tengo una dirección más clara. Espero que si lo logro pueda hacer un tutorial sobre esto porque creo que es un caso de uso bastante útil. Me sorprende que no haya tanta información al respecto.

@Federico_Gentile Enfoca tu alcance en entregar ecosistemas de automatización de alto valor—n8n, AI, Make.com y GHL—para asegurar que tus clientes experimenten un crecimiento fluido y generador de ingresos