GitHub Repository
Boilerplate mínimo de Go + Dodo Payments
Descripción general
La plantilla Go proporciona un punto de partida listo para producción para integrar Dodo Payments con tu backend de Go. Esta plantilla incluye manejo de sesiones de pago, verificación de webhooks, integración del portal del cliente y sigue las mejores prácticas de Go para ayudarte a comenzar a aceptar pagos rápidamente.Este boilerplate utiliza Go 1.21+ con patrones de arquitectura limpia (
cmd, internal, templates), plantillas HTML y el SDK dodopayments-go para una integración de API sin fisuras.Características
- Configuración rápida - Comienza en menos de 5 minutos
- Integración de pagos - Flujo de pago preconfigurado usando el SDK
dodopayments-go - UI moderna - Página de precios limpia con tema oscuro y plantillas HTML
- Gestión de webhooks - Verifica y procesa eventos de pago de forma segura
- Portal del cliente - Administración de suscripciones en autoservicio
- Buenas prácticas de Go - Arquitectura limpia con
cmd,internaletemplates - Checkout prellenado - Demuestra cómo pasar datos del cliente para mejorar la experiencia de usuario
Requisitos previos
Antes de comenzar, asegúrate de tener:- Go 1.21+
- Cuenta de Dodo Payments (para acceder a las claves de API y Webhook desde el panel)
Inicio rápido
Get API Credentials
Regístrate en Dodo Payments y obtén tus credenciales desde el panel de control:
- Clave de API: Panel → Desarrollador → Claves de API
- Clave de Webhook: Panel → Desarrollador → Webhooks
Configure Environment Variables
Crea un archivo Actualiza los valores con tus credenciales de Dodo Payments:
.env en el directorio raíz:.env
Add Your Products
Actualiza
internal/lib/products.go con tus ID de producto reales de Dodo Payments:Ejecuta el servidor de desarrollo
Deberías ver una página de precios con tema oscuro y tus productos listos para comprar.
Estructura del proyecto
Puntos finales de la API
La plantilla incluye los siguientes puntos finales preconfigurados:| Endpoint | Método | Descripción |
|---|---|---|
/ | GET | Página de precios con listado de productos |
/api/checkout | POST | Crear una nueva sesión de pago |
/api/webhook | POST | Procesar webhooks de Dodo Payments |
/api/customer-portal | POST | Generar URL del portal del cliente |
Personalización
Actualiza la información del producto
Editainternal/lib/products.go para modificar:
- ID de productos (desde tu panel de Dodo)
- Precios
- Características
- Descripciones
Pre-llenar datos del cliente
Entemplates/index.html, reemplaza los datos de cliente codificados con tus datos reales de usuario:
Eventos de Webhook
El boilerplate demuestra cómo gestionar eventos de webhook eninternal/api/webhook.go. Los eventos compatibles incluyen:
| Evento | Descripción |
|---|---|
subscription.active | Se dispara cuando una suscripción se activa |
payment.succeeded | Se dispara cuando un pago se realiza con éxito |
- Actualizar permisos de usuario en tu base de datos
- Enviar correos electrónicos de confirmación
- Proveer acceso a productos digitales
- Rastrear analíticas y métricas
Pruebas de Webhooks Localmente
Para el desarrollo local, utiliza herramientas como ngrok para exponer tu servidor local:Despliegue
Compilar para producción
Desplegar en Vercel
[Docker
Crea unDockerfile:
Consideraciones para producción
Solución de problemas
Build errors or missing dependencies
Build errors or missing dependencies
Asegúrate de que los módulos de Go estén correctamente descargados:
Checkout session creation fails
Checkout session creation fails
Causas comunes:
- ID de producto inválido: verifica que exista en tu panel de Dodo
- Clave de API o entorno incorrecto en
.env - Consulta los registros del servidor para mensajes de error detallados
Webhooks not receiving events
Webhooks not receiving events
Para pruebas locales, usa ngrok para exponer tu servidor:Actualiza la URL del webhook en tu panel de Dodo a la URL de ngrok. Asegúrate de actualizar tu archivo
.env con la clave correcta de verificación de webhook.Templates not loading
Templates not loading
Asegúrate de ejecutar el servidor desde el directorio raíz del proyecto o de que la ruta de las plantillas esté correctamente configurada en tu código.
Aprende más
Go SDK
Documentación completa del SDK de Go
Webhooks Documentation
Conoce todos los eventos de webhook y las mejores prácticas
Checkout Sessions
Profundiza en la configuración de sesiones de pago
API Reference
Documentación completa de la API de Dodo Payments
Soporte
¿Necesitas ayuda con la plantilla?- Únete a nuestra comunidad de Discord para preguntas y discusiones
- Revisa el repositorio de GitHub para problemas y actualizaciones
- Contacta a nuestro equipo de soporte para asistencia