Saltar al contenido principal

GitHub Repository

Guía de configuración y código fuente completos

Configuración Rápida

1. Requisitos Previos

2. Instalar Dependencias

3. Configuración de la Base de Datos

  1. Regístrate en Neon
  2. Crea un nuevo proyecto
  3. Abre el editor SQL
  4. Copia y pega el contenido de schema.sql
  5. Ejecuta la consulta
  6. Obtén tu cadena de conexión de Neon → Detalles de conexión

4. Establecer Variables de Entorno Iniciales

Nota: Estableceremos DODO_PAYMENTS_WEBHOOK_KEY después del despliegue una vez que tengas la URL de tu webhook.

5. Inicializar y Desplegar

6. Obtén tu URL de Webhook

Tu URL de webhook es:

7. Registrar Webhook en el Tablero de DodoPayments

  1. Ve a DodoPayments Dashboard → Developer → Webhooks
  2. Crea un nuevo endpoint de webhook
  3. Configura tu URL de webhook como endpoint
  4. Activa estos eventos de suscripción:
    • subscription.active
    • subscription.cancelled
    • subscription.renewed
  5. Copia el Secreto de firma

8. Establecer Clave de Webhook y Volver a Desplegar

Qué Hace

Procesa eventos de suscripción y los almacena en PostgreSQL:
  • subscription.active - Crea/actualiza registros de clientes y suscripciones
  • subscription.cancelled - Marca la suscripción como cancelada
  • subscription.renewed - Actualiza la fecha de facturación siguiente

Características Clave

Verificación de firma - Usando la biblioteca dodopayments
Idempotencia - Evita el procesamiento duplicado con los IDs de webhook
Registro de eventos - Registro completo en la tabla webhook_events
Manejo de errores - Registrados y reintentables
Nota: Esta implementación demuestra el manejo de tres eventos principales de suscripción (subscription.active, subscription.cancelled, subscription.renewed) con campos mínimos. Puedes ampliarla fácilmente para admitir tipos de eventos y campos adicionales según tus requisitos.

Archivos de Configuración

Esquema de Base de Datos

Tablas creadas:
  • customers - Correo electrónico, nombre, dodo_customer_id
  • subscriptions - Estado, monto, next_billing_date, vinculado a clientes
  • webhook_events - Registro de eventos con webhook_id para idempotencia

Código de Implementación

Cómo Funciona

El manejador del webhook:
  1. Verifica la firma - Asegura que la solicitud proviene de DodoPayments usando HMAC-SHA256
  2. Comprueba duplicados - Usa el ID del webhook para evitar procesar el mismo evento dos veces
  3. Registra el evento - Almacena el webhook sin procesar en la tabla webhook_events para auditoría
  4. Procesa el evento - Crea o actualiza clientes y suscripciones en Neon
  5. Maneja errores - Registra fallos y marca el evento como no procesado para reintentos

Pruebas

Desarrollo local:
Ver registros en el panel de Netlify:
  1. Selecciona tu sitio → pestaña Funciones
  2. Haz clic en la función webhook
  3. Consulta los registros en tiempo real e historial de invocaciones
Configurar en el Tablero de DodoPayments:
  1. Ve a Desarrolladores → Webhooks
  2. Agrega un endpoint con tu URL de Funciones de Netlify
  3. Habilita: subscription.active, subscription.cancelled, subscription.renewed

Problemas Comunes

Recursos

Última modificación el 22 de mayo de 2026