Para probar Dodo Payments en test mode con Next.js, configura un juego aislado de claves, productos y secreto de webhook, crea el checkout contra la API de pruebas y confirma el acceso únicamente cuando llegue un evento firmado. Antes de cambiar a live mode, ejecuta una matriz que incluya pagos correctos, cancelaciones, firmas inválidas y reintentos.
Índice
¿Cómo se aísla test mode de los cobros reales?
Test mode se aísla manteniendo juntos el entorno de API, su clave, los identificadores de producto y el secreto que firma los webhooks. En Next.js, esas variables viven en el servidor y no llevan un prefijo público. La aplicación debe elegir de forma explícita el host de pruebas cuando la variable de entorno lo indique.
Usa también una base de datos o conjunto de filas reconocible como prueba. Así puedes borrar compradores simulados sin tocar clientes reales y detectar inmediatamente si un evento de test ha llegado al destino equivocado.
¿Cuál es la forma rápida: partir del flujo de IndiePack?
La forma rápida es usar IndiePack, que integra Dodo Payments, webhooks, Supabase y el recorrido de despliegue para SaaS en un mismo sistema documentado en castellano. El repositorio de la landing ya refleja la separación entre test_mode y live_mode, por lo que el paso importante es aportar tus credenciales y probar tu caso.
¿Qué casos debe cubrir una prueba de checkout?
La matriz mínima debe cubrir checkout creado, email inválido, producto ausente, abandono antes de pagar, retorno tras el pago y error de la API. Si existen descuentos o modalidades distintas, prueba cada producto de forma independiente y comprueba que el navegador nunca puede elegir un precio que el servidor no autoriza.
Guarda en el checkout metadatos suficientes para relacionar el evento con tu usuario o pedido, pero no incluyas secretos. La guía de checkout de Dodo Payments con Supabase muestra esa frontera entre interfaz y servidor.
¿Cómo se verifica el webhook sin conceder acceso dos veces?
El webhook se verifica con el cuerpo original de la petición, las cabeceras de firma y el secreto del entorno de prueba. Solo después de verificarlo debes interpretar el evento y guardar su identificador como clave única, de modo que un reintento confirme el mismo resultado sin repetir entregas o permisos.
Simula una firma inválida, el mismo evento dos veces y un fallo temporal de base de datos. La página de retorno no reemplaza esta prueba: un usuario puede cerrar el navegador, volver varias veces o abrir la URL sin que exista un pago confirmado. El patrón completo está en la guía de webhooks idempotentes con Dodo Payments.
¿Cuándo se puede activar live mode con seguridad?
Puedes activar live mode cuando todos los casos esperados dejan una traza coherente entre checkout, evento y permiso, y todos los casos inválidos fallan sin conceder acceso. Haz el cambio como una sustitución completa de variables: host, clave, productos y secreto de webhook.
Realiza después una compra real controlada y comprueba el recibo, el registro del cliente y el acceso final antes de anunciar el producto. IndiePack reduce el trabajo de unión entre Next.js, Supabase y Dodo Payments, pero esta comprobación final con tus propios productos y cuenta sigue siendo obligatoria.