
Cómo funciona
El checkout integrado muestra un frame seguro de Dodo Payments en un contenedor de tu página. El frame gestiona la recopilación de la información del cliente y los datos de pago. Tu página muestra los artículos, los totales y otra información. El SDK permite que tu página y el frame de checkout se comuniquen entre sí. Cuando se completa el checkout, Dodo Payments crea el pago o la suscripción para un producto de suscripción, y envía un webhook para que puedas aprovisionar el acceso.Qué caracteriza a un buen checkout integrado
Los clientes necesitan saber a quién le compran, qué compran y cuánto pagan. Tu implementación debe incluir:
Example inline checkout layout showing required elements
- Información recurrente: Si el pago es recurrente, muestra con qué frecuencia se repite y el total que se pagará en la renovación. Si se trata de una prueba, muestra su duración.
- Descripciones de los artículos: Una descripción de lo que se está comprando.
- Totales de la transacción: Subtotal, impuesto total y total general, incluida la moneda.
- Pie de página de Dodo Payments: El frame completo de checkout integrado, incluido el pie de página con información de Dodo Payments, las condiciones de venta y la política de privacidad.
- Política de reembolso: Un enlace a tu política de reembolso, si difiere de la política de reembolso estándar de Dodo Payments.
Recorrido del cliente
El flujo de checkout depende de la configuración de tu sesión de checkout. Según cómo configures la sesión, los clientes pueden ver toda la información en una sola página o en varios pasos.Customer opens checkout
checkout.breakdown, para mostrar y actualizar información en la página.
Customer enters their details
Customer selects payment method

Checkout completed

Dodo Payments creates the payment or subscription

Inicio rápido
Instala el SDK, inicialízalo para el modo integrado y abre el checkout en un elemento contenedor:Integración paso a paso
Install the SDK
Initialize the SDK for Inline Display
displayType: 'inline'. Escucha el evento checkout.breakdown para actualizar tu interfaz con cálculos de impuestos y totales en tiempo real:Create a Container Element
Open the Checkout
DodoPayments.Checkout.open() con checkoutUrl y elementId de tu contenedor:Test Your Integration
- Inicia tu servidor de desarrollo:
- Prueba el flujo de checkout:
- Introduce tu correo electrónico y los datos de dirección en el frame integrado
- Comprueba que tu resumen personalizado del pedido se actualice en tiempo real
- Prueba el flujo de pago con credenciales de prueba
- Confirma que las redirecciones funcionen correctamente
checkout.breakdown registrados en la consola del navegador si añadiste un registro de consola en el callback onEvent.Go Live
- Cambia el modo a
'live':
- Actualiza las URL de checkout para utilizar sesiones de checkout activas desde tu backend
- Prueba el flujo completo en producción
Ejemplo completo de React
Este ejemplo muestra cómo implementar un resumen personalizado del pedido junto al checkout integrado y mantenerlos sincronizados mediante el eventocheckout.breakdown:
Referencia de la API
Inicializar
Llama aInitialize una vez para configurar el SDK:
Abrir el checkout
Abre el frame de checkout en un contenedor:Cerrar el checkout
Elimina el frame de checkout mediante programación y limpia los listeners de eventos:Comprobar el estado
Comprueba si el frame de checkout está insertado actualmente:Eventos
El SDK proporciona eventos en tiempo real mediante el callbackonEvent. Para el checkout integrado, checkout.breakdown resulta especialmente útil para sincronizar tu interfaz:
Datos del desglose del checkout
El eventocheckout.breakdown proporciona información sobre precios e impuestos:
- Formato de moneda: Los precios son números enteros expresados en la unidad monetaria más pequeña; por ejemplo, centavos para USD. Para monedas con dos decimales, divide entre 100 antes de aplicar formato con
Intl.NumberFormat. Las monedas sin decimales, como JPY, no tienen una unidad menor, por lo que no debes dividirlas. - Gestión de estados iniciales: Cuando el checkout se carga por primera vez,
taxydiscountpueden ser0onullhasta que el usuario proporcione sus datos de facturación o aplique un código. Gestiona estos estados correctamente, por ejemplo, mostrando un guion—u ocultando la fila. - «Total final» frente a «Total»: Aunque
totalproporciona el cálculo de precio estándar,finalTotales la fuente de verdad de la transacción. SifinalTotalestá presente, refleja exactamente lo que se cobrará en la tarjeta del cliente. - Información en tiempo real: Usa el campo
taxpara mostrar a los usuarios que los impuestos se están calculando en tiempo real. Esto aporta una sensación dinámica a tu página de checkout y reduce la fricción durante la introducción de la dirección.
Implementación mediante CDN
Para una integración rápida sin un paso de compilación, carga el SDK desde CDN:Actualizar el método de pago
El checkout integrado admite actualizaciones del método de pago para suscripciones. Cuando un cliente necesita actualizar su método de pago para una suscripción activa o reactivar una suscripción en espera, puedes mostrar el flujo de actualización directamente en el diseño de tu página.Cómo funciona
- Llama a la API de actualización del método de pago para obtener un
payment_link:
- Pasa el
payment_linkdevuelto comocheckoutUrlpara abrir el checkout integrado:
Para suscripciones en espera
Al actualizar el método de pago de una suscripción con estadoon_hold, Dodo Payments crea automáticamente un cargo por cualquier deuda pendiente. Supervisa los webhooks payment.succeeded y subscription.active para confirmar la reactivación.
Gestión de errores
Implementa siempre la gestión de errores en tu callbackonEvent:
Prácticas recomendadas
- Diseño adaptable: Asegúrate de que el elemento contenedor tenga suficiente anchura y altura. Normalmente, el iframe se expandirá para ocupar todo el contenedor.
- Sincronización: Usa el evento
checkout.breakdownpara mantener sincronizados tu resumen personalizado del pedido o tus tablas de precios con lo que ve el usuario en el frame de checkout. - Estados esqueleto: Muestra un indicador de carga en tu contenedor hasta que se active el evento
checkout.opened. - Limpieza: Llama a
DodoPayments.Checkout.close()cuando se desmonte el componente para limpiar el iframe y los listeners de eventos.
#0d0d0d como color de fondo para lograr una integración visual óptima con el frame de checkout integrado.Validación del estado del pago
Por qué es esencial validar en el servidor
Aunque los eventos del checkout integrado proporcionan información en tiempo real, no deben ser tu única fuente de verdad para el estado del pago. Los problemas de red, los bloqueos del navegador o que los usuarios cierren la página pueden hacer que se pierdan eventos. Para garantizar una validación fiable de los pagos:- Escucha los eventos de webhook: Dodo Payments envía webhooks cuando cambia el estado de un pago
- Implementa un mecanismo de polling: Tu frontend debe consultar periódicamente tu servidor para obtener actualizaciones de estado
- Combina ambos enfoques: Usa los webhooks como fuente principal y el polling como alternativa
Arquitectura recomendada
Pasos de implementación
1. Escucha los eventos de checkout: Cuando el usuario haga clic en pagar, empieza a preparar la verificación del estado:payment.succeeded o payment.failed. Consulta nuestra documentación de Webhooks para obtener más información.
Solución de problemas
Checkout frame is not appearing
Checkout frame is not appearing
- Comprueba que
elementIdcoincida con elidde undivque exista realmente en el DOM - Asegúrate de que
displayType: 'inline'se haya pasado aInitialize - Comprueba que
checkoutUrlsea válido
Taxes are not updating in my UI
Taxes are not updating in my UI
- Asegúrate de estar escuchando el evento
checkout.breakdown - Los impuestos solo se calculan después de que el usuario introduzca un país y un código postal válidos en el frame de checkout
Carteras digitales
Para obtener información detallada sobre la configuración de Apple Pay, Google Pay y otras carteras digitales, consulta la página Carteras digitales.Configuración rápida de Apple Pay
Open Wallet domains

Open Wallet domains from the Apple Pay row
Download the domain association file

Download the Apple Pay domain association file
Register your domain
shop.example.com; después, haz clic en Continue.
Register the domain where you embed inline checkout
Host the file on your domain
Content-Type: application/octet-stream o text/plain.Verify the domain

Verify the hosted association file
Confirm it's active

Verified domains show an Active status
Test the integration
- Abre el checkout en un dispositivo Apple
- Comprueba que aparece el botón de Apple Pay
- Completa una transacción de prueba
Compatibilidad con navegadores
El Checkout SDK de Dodo Payments es compatible con:- Chrome (última versión)
- Firefox (última versión)
- Safari (última versión)
- Edge (última versión)
- IE11+