Checkout Handler
Integra Dodo Payments checkout en tu app Fastify.
Customer Portal
Permite que los clientes gestionen sus suscripciones y datos.
Webhooks
Recibe y procesa eventos webhook de Dodo Payments.
Instalación
1
Install the package
Ejecuta el siguiente comando en la raíz de tu proyecto:
2
Set up environment variables
Crea un archivo
.env en la raíz de tu proyecto:Ejemplos de Manejadores de Rutas
Todos los ejemplos asumen que estás usando el Fastify App Router.
- Checkout Handler
- Customer Portal Handler
- Webhook Handler
Usa este controlador para integrar Dodo Payments checkout en tu app Fastify. Admite flujos de pago estáticos (GET), dinámicos (POST) y de sesión (POST).
Manejador de Ruta de Checkout
Dodo Payments admite tres tipos de flujos de pago para integrar pagos en tu sitio web; este adaptador soporta todos los flujos de pago.
- Enlaces de Pago Estáticos: URLs instantáneamente compartibles para la recolección de pagos rápida y sin código.
- Enlaces de Pago Dinámicos: Genera programáticamente enlaces de pago con detalles personalizados utilizando la API o SDKs.
- Sesiones de Checkout: Crea experiencias de checkout seguras y personalizables con carritos de productos preconfigurados y detalles del cliente.
Static Checkout (GET)
Static Checkout (GET)
Supported Query Parameters
string
requerido
Identificador del producto (p. ej.,
?productId=pdt_nZuwz45WAs64n3l07zpQR).integer
Cantidad del producto.
string
Nombre completo del cliente.
string
Nombre del cliente.
string
Apellidos del cliente.
string
Dirección de correo electrónico del cliente.
string
País del cliente.
string
Línea de dirección del cliente.
string
Ciudad del cliente.
string
Estado/provincia del cliente.
string
Código postal del cliente.
boolean
Desactivar el campo de nombre completo.
boolean
Desactivar el campo de nombre.
boolean
Desactivar el campo de apellidos.
boolean
Desactivar el campo de correo electrónico.
boolean
Desactivar el campo de país.
boolean
Desactivar el campo de dirección.
boolean
Desactivar el campo de ciudad.
boolean
Desactivar el campo de estado.
boolean
Desactivar el campo de código postal.
string
Especifica la moneda de pago (p. ej.,
USD).boolean
Mostrar selector de moneda.
integer
Especifica el monto del pago (p. ej.,
1000 para $10.00).boolean
Mostrar campos de descuento.
string
Cualquier parámetro de consulta que comience con
metadata_ se pasará como metadatos.Formato de Respuesta
El checkout estático devuelve una respuesta JSON con la URL de checkout:Dynamic Checkout (POST)
Dynamic Checkout (POST)
- Envía los parámetros como un cuerpo JSON en una solicitud POST.
- Admite pagos únicos y recurrentes.
- Para la lista completa de campos admitidos en el cuerpo POST, consulta:
Formato de Respuesta
El checkout dinámico devuelve una respuesta JSON con la URL de checkout:Checkout Sessions (POST)
Checkout Sessions (POST)
Las sesiones de checkout ofrecen una experiencia de pago más segura y alojada que maneja el flujo completo de pago tanto para compras únicas como suscripciones con control total de personalización.Consulta la Guía de Integración de Sesiones de Checkout para más detalles y una lista completa de campos soportados.
Formato de Respuesta
Las sesiones de checkout devuelven una respuesta JSON con la URL de checkout:Manejador de Ruta del Portal del Cliente
El Manejador de Ruta del Portal del Cliente te permite integrar sin problemas el portal del cliente de Dodo Payments en tu aplicación Fastify.Parámetros de consulta
string
requerido
El identificador del cliente para la sesión del portal (p. ej.,
?customer_id=cus_123).boolean
Si se establece en
true, envía un correo electrónico al cliente con el enlace del portal.Manejador de Ruta de Webhook
- Método: Solo se admiten solicitudes POST. Otros métodos devuelven 405.
- Verificación de Firma: Verifica la firma del webhook utilizando
webhookKey. Devuelve 401 si la verificación falla. - Validación de Payload: Validado con Zod. Devuelve 400 para payloads inválidos.
- Manejo de Errores:
- 401: Firma inválida
- 400: Payload inválido
- 500: Error interno durante la verificación
- Enrutamiento de Eventos: Llama al manejador de eventos apropiado según el tipo de payload.