Repositorio de GitHub
Plantilla completa de FastAPI + Dodo Payments
Descripción general
La plantilla de FastAPI proporciona un punto de partida listo para producción para integrar Dodo Payments con tu backend de Python. Esta plantilla incluye manejo de sesiones de pago, verificación de webhooks, integración de portal de clientes y patrones de API asíncronos para ayudarte a comenzar a aceptar pagos rápidamente.Esta plantilla utiliza FastAPI con patrones async/await, Pydantic para validación y el
dodopayments SDK de Python para una integración de API sin problemas.Características
- Configuración rápida - Comienza en menos de 5 minutos
- Soporte asíncrono - Construido con los patrones nativos async/await de FastAPI
- Sesiones de pago - Flujo de pago preconfigurado utilizando el SDK de Python
- Manejo de webhooks - Punto final de webhook seguro con verificación de firma
- Portal de clientes - Creación fácil de sesiones del portal de clientes
- Seguridad de tipos - Validación completa de Pydantic y sugerencias de tipo
- Configuración del entorno - Configuración de variables de entorno lista para usar
Requisitos previos
Antes de comenzar, asegúrate de tener:- Python 3.9+ (recomendado: Python 3.11+)
- pip o uv para la gestión de paquetes
- Cuenta de Dodo Payments (para acceder a las claves de API y Webhook desde el panel)
Inicio rápido
1
Clonar el Repositorio
2
Crear Entorno Virtual
Configura un entorno de Python aislado:O usando uv para una gestión de dependencias más rápida:
3
Instalar Dependencias
4
Obtener Credenciales de 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
5
Configurar Variables de Entorno
Crea un Actualiza los valores con tus credenciales de Dodo Payments:
.env archivo en el directorio raíz:.env
6
Ejecutar el Servidor de Desarrollo
Deberías ver la interfaz Swagger de FastAPI con todos los puntos finales disponibles listos para probar.
Estructura del Proyecto
Puntos finales de la API
La plantilla incluye los siguientes puntos finales preconfigurados:| Punto final | Método | Descripción |
|---|---|---|
/checkout | POST | Crear una nueva sesión de pago |
/webhook | POST | Manejar webhooks de Dodo Payments |
/customer-portal | POST | Generar URL del portal de clientes |
Ejemplos de Código
Creando una Sesión de Pago
Manejo de Webhooks
Integración del Portal de Clientes
Eventos de Webhook
La plantilla demuestra el manejo de eventos comunes de webhook:| Evento | Descripción |
|---|---|
payment.succeeded | Pago completado con éxito |
payment.failed | Intento de pago fallido |
subscription.active | La suscripción ahora está activa |
subscription.cancelled | La suscripción fue cancelada |
refund.succeeded | Reembolso procesado con éxito |
- Actualizar permisos de usuario en tu base de datos
- Enviar correos electrónicos de confirmación
- Proveer acceso a productos digitales
- Rastrear análisis y métricas
Pruebas de Webhooks Localmente
Para el desarrollo local, utiliza herramientas como ngrok para exponer tu servidor local:Despliegue
Docker
Consideraciones de Producción
Solución de Problemas
Errores de importación o módulos faltantes
Errores de importación o módulos faltantes
Asegúrate de que tu entorno virtual esté activado y las dependencias estén instaladas:
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 de FastAPI 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
.env archivo con la clave de verificación de webhook correcta.La verificación de la firma del webhook falla
La verificación de la firma del webhook falla
- Asegúrate de que
DODO_PAYMENTS_WEBHOOK_KEYesté configurado correctamente en tu.env - Verifica que estés usando el cuerpo de la solicitud sin procesar para la verificación de la firma
- Asegúrate de que estás leyendo correctamente el encabezado
webhook-signature
Aprende Más
SDK de Python
Documentación completa del SDK de Python con soporte asíncrono
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