Repositorio de GitHub
Plantilla mínima 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.Esta plantilla 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 problemas.Características
- Configuración rápida - Comienza en menos de 5 minutos
- Integración de pagos - Flujo de pago preconfigurado utilizando el SDK
dodopayments-go - Interfaz moderna - Página de precios limpia y con tema oscuro con plantillas HTML
- Manejo de webhooks - Verifica y procesa eventos de pago de forma segura
- Portal del cliente - Gestión de suscripciones autoservicio
- Mejores prácticas de Go - Arquitectura limpia con
cmd,internalytemplates - Checkout prellenado - Demuestra cómo pasar datos del cliente para mejorar la experiencia del 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
1
Clona el repositorio
2
Instala las dependencias
3
Obtén las credenciales de la API
Regístrate en Dodo Payments y obtén tus credenciales desde el panel:
- Clave de API: Panel → Desarrollador → Claves de API
- Clave de Webhook: Panel → Desarrollador → Webhooks
4
Configura las variables de entorno
Crea un archivo Actualiza los valores con tus credenciales de Dodo Payments:
.env en el directorio raíz:.env
5
Agrega tus productos
Actualiza
internal/lib/products.go con tus IDs de producto reales de Dodo Payments:6
Ejecuta el servidor de desarrollo
Deberías ver una página de precios con tema oscuro con tus productos listos para comprar.
Estructura del proyecto
Puntos finales de la API
La plantilla incluye los siguientes puntos finales preconfigurados:| Punto final | 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 | Manejar 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:
- IDs de producto (desde tu panel de Dodo)
- Precios
- Características
- Descripciones
Pre-llenar datos del cliente
Entemplates/index.html, reemplaza los datos del cliente codificados con tus datos de usuario reales:
Eventos de Webhook
La plantilla demuestra cómo manejar eventos de webhook eninternal/api/webhook.go. Los eventos soportados incluyen:
| Evento | Descripción |
|---|---|
subscription.active | Activado cuando una suscripción se vuelve activa |
payment.succeeded | Activado cuando un pago es exitoso |
- 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
Errores de compilación o dependencias faltantes
Errores de compilación o dependencias faltantes
Asegúrate de que los módulos de Go estén descargados correctamente:
La creación de la sesión de pago falla
La creación de la sesión de pago falla
Causas comunes:
- ID de producto inválido - verifica que exista en tu panel de Dodo
- Clave de API incorrecta o configuración de entorno en
.env - Revisa los registros del servidor para mensajes de error detallados
Webhooks no reciben eventos
Webhooks no reciben eventos
Para pruebas locales, utiliza 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 de verificación de webhook correcta.Las plantillas no se cargan
Las plantillas no se cargan
Asegúrate de estar ejecutando el servidor desde el directorio raíz del proyecto, o que la ruta de las plantillas esté configurada correctamente en tu código.
Aprende más
SDK de Go
Documentación completa del SDK de Go
Documentación de Webhooks
Aprende sobre todos los eventos de webhook y mejores prácticas
Sesiones de pago
Profundiza en la configuración de sesiones de pago
Referencia de API
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