Este tutorial proporciona código de ejemplo para implementar una aplicación Node.js/Express. Puedes modificar este código para tu marco específico (Next.js, React, Vue, etc.) y personalizar la interfaz de usuario según las necesidades de tu aplicación.
- Crear productos de suscripción con precios por asiento
- Configurar complementos para asientos adicionales
- Generar enlaces de pago con cantidades de complementos personalizadas
- Manejar sesiones de pago con conteos de asientos dinámicos
Lo que Estamos Construyendo
Vamos a crear un modelo de precios por asiento:- Plan Base: $49/mes para hasta 5 miembros del equipo
- Complemento por Asiento: $2/mes por asiento adicional
- Enlaces de Pago: Pago dinámico con cantidades de asientos personalizadas
Antes de comenzar, asegúrate de tener:
- Una cuenta de Dodo Payments
- Conocimientos básicos de TypeScript/Node.js
Paso 1: Crea Tu Complemento de Asiento
Ahora necesitamos crear un complemento que represente asientos adicionales. Este complemento se adjuntará a nuestra suscripción base y permitirá a los clientes comprar asientos adicionales.
Navigate to Add-Ons
- En el panel de Dodo Payments, permanece en la sección Products
- Haz clic en la pestaña Add-Ons
- Haz clic en Create Add-On
Enter add-on details
Rellena estos valores para nuestro complemento de asientos:Add-On Name:
Additional Team SeatDescription: Add extra team members to your workspace with full access to all featuresPrice: Enter → 2.00Moneda: Debe coincidir con la moneda de tu suscripción baseCategoría de Impuestos: Selecciona la categoría apropiada para tu producto.Paso 2: Crea Tu Producto de Suscripción Base
Comenzaremos creando un producto de suscripción base que incluya 5 miembros del equipo. Esta será la base de nuestro modelo de precios por asiento.
Navigate to Products
- Inicia sesión en el panel de Dodo Payments
- Haz clic en Products en la barra lateral izquierda
- Haz clic en el botón Create Product
- Selecciona Subscription como tipo de producto
Paso 3: Conectar el Complemento a la Suscripción
Ahora necesitamos asociar nuestro complemento de asiento con la suscripción base para que los clientes puedan comprar asientos adicionales durante el pago.Attach the seat add-on

- Desplázate hacia abajo hasta la sección Complementos
- Haz clic en Agregar Complementos
- Desde el menú desplegable, selecciona tu complemento de asiento
- Confirma que aparece en la configuración de tu suscripción
Save subscription changes
- Revisa toda la configuración de tu suscripción:
- Plan base: $49/mes por 5 asientos
- Complemento: $2/mes por asiento adicional
- Prueba gratuita: 14 días
- Haz clic en Save Changes
¡Precios por asiento configurados! Los clientes ahora pueden adquirir tu plan base y agregar asientos extra según lo necesiten.
Paso 4: Generar Enlaces de Pago con Cantidades de Complementos Personalizadas
Ahora vamos a crear una aplicación Express.js que genere enlaces de pago con cantidades de complementos personalizadas. Aquí es donde entra el verdadero poder de los precios por asiento: puedes crear dinámicamente sesiones de pago con cualquier número de asientos adicionales.Set up your project
Crea un nuevo proyecto Node.js e instala las dependencias requeridas:Crea un archivo
tsconfig.json:Add a simple web interface
Crea un archivo
public/index.html para pruebas sencillas:¡Interfaz web creada! Ahora tienes una UI simple para probar diferentes cantidades de asientos.
Paso 5: Prueba Tu Implementación
Probemos nuestra implementación de precios por asiento para asegurarnos de que todo funcione correctamente.Start your server
- Asegúrate de tener tu archivo
.envcon la clave de API correcta - Actualiza los IDs del producto y del complemento en tu código con los valores reales de tu panel de Dodo Payments
- Inicia tu servidor:
Tu servidor debería iniciarse correctamente y mostrar “Server running on http://localhost:3000”
Test the web interface

- Abre tu navegador y ve a
http://localhost:3000 - Deberías ver la interfaz de demostración de precios por asiento
- Prueba diferentes cantidades de asientos (0, 3, 10, etc.)
- Haz clic en “Generate Checkout Link” para cada cantidad
- Verifica que se generen correctamente las URL de pago
Test a checkout session
- Genera un enlace de pago con 3 asientos adicionales
- Haz clic en la URL de checkout para abrir el pago de Dodo Payments
- Verifica que el checkout muestre:
- Plan base: $49/mes
- Asientos adicionales: 3 × 2 dólares = $6/mes
- Completa la compra de prueba
El checkout debe mostrar el desglose correcto de precios y permitir completar la compra.
Listen for webhooks and update your DB
Para mantener tu base de datos sincronizada con los cambios en suscripciones y asientos, necesitas escuchar los eventos webhook de Dodo Payments. Los webhooks notifican a tu backend cuando un cliente completa un pago, actualiza su suscripción o cambia la cantidad de asientos.Sigue la guía oficial de webhooks de Dodo Payments para obtener instrucciones paso a paso sobre cómo configurar los puntos finales de webhook y manejar eventos:
Dodo Payments Webhooks Documentation
Aprende cómo recibir y procesar de forma segura los eventos webhook para administrar suscripciones y asientos.
Solución de Problemas
Problemas comunes y sus soluciones:Checkout creation failing
Checkout creation failing
Causas posibles:
- ID de producto o complemento inválido
- La clave de API no tiene permisos suficientes
- El complemento no está asociado correctamente con la suscripción
- Problemas de conectividad de red
- Verifica que los IDs de producto y complemento existan en tu panel de Dodo Payments
- Comprueba que el complemento esté correctamente adjunto a la suscripción
- Asegúrate de que la clave de API tenga permisos para crear sesiones de checkout
- Prueba la conectividad de la API con una solicitud GET sencilla
¡Felicidades! Has Implementado Precios por Asiento
¡Has creado con éxito un sistema de precios por asiento con Dodo Payments! Esto es lo que lograste:Base Subscription
Creaste un producto de suscripción con 5 asientos incluidos a $49/mes
Seat Add-ons
Configuraste complementos para asientos adicionales a $2/mes por asiento
Checkout
Construiste una API que genera sesiones de checkout con cantidades personalizadas de asientos
Web Interface
Creaste una interfaz web sencilla para probar diferentes cantidades de asientos
Este ejemplo solo muestra una implementación mínima de precios basados en asientos. Para un entorno de producción, deberías añadir un manejo de errores robusto, autenticación, validación de datos, medidas de seguridad y adaptar la lógica a los requisitos de tu aplicación.