Saltar al contenido principal

Descripción general

El Adaptador Better Auth para Dodo Payments proporciona:
  • Creación automática de clientes al registrarse
  • Sesiones de pago (preferido) con mapeo de slug de producto
  • Portal de clientes de autoservicio
  • Puntos finales de ingestión de uso medido e informes para facturación basada en el uso
  • Procesamiento de eventos webhook en tiempo real con verificación de firma
  • Soporte completo para TypeScript
Necesitas una cuenta de Dodo Payments y claves API para usar esta integración.

Requisitos previos

  • Node.js 20+
  • Acceso a tu panel de control de Dodo Payments
  • Proyecto existente que use better-auth

Instalación

1

Install dependencies

Ejecuta el siguiente comando en la raíz de tu proyecto:
Todos los paquetes necesarios ya están instalados.

Configuración

1

Configure environment variables

Agrégalos a tu archivo .env:
Nunca subas claves API ni secretos al control de versiones.
2

Set up server-side integration

Crea o actualiza src/lib/auth.ts:
Configura environment en live_mode para producción.
3

Set up client-side integration

Crea o actualiza src/lib/auth-client.ts:

Ejemplos de uso

Prefiere authClient.dodopayments.checkoutSession para nuevas integraciones. El método heredado checkout está en desuso y se mantiene solo por compatibilidad hacia atrás.

Creando una Sesión de Pago (Preferido)

A diferencia del método heredado checkout, checkoutSession no requiere información de facturación por adelantado, ya que se tomará del usuario en la página de pago. Aún puede anularlo pasando la clave billing en el argumento.
Similar al método heredado checkout, checkoutSession toma el correo electrónico y nombre del cliente de su sesión better-auth, sin embargo, puede anularlo pasando el objeto customer con el correo y nombre.
Puede pasar las mismas opciones en el argumento que el cuerpo de la solicitud para el Crear Checkout Session endpoint.
La URL de retorno se toma del successUrl configurado en el complemento del servidor. No necesita incluir return_url en la carga útil del cliente.

Pago Heredado (Obsoleto)

El método authClient.dodopayments.checkout está obsoleto. Use checkoutSession en su lugar para nuevas implementaciones.

Accediendo al Portal del Cliente

Listar Datos del Cliente

Seguimiento del Uso Medido

Habilite el complemento usage() en el servidor para capturar eventos medidos y permitir que los clientes inspeccionen su facturación basada en el uso.
  • authClient.dodopayments.usage.ingest ingiere eventos para el usuario verificado por correo electrónico que ha iniciado sesión.
  • authClient.dodopayments.usage.meters.list lista el uso reciente para los medidores vinculados a las suscripciones de ese cliente.
Las marcas de tiempo más antiguas de una hora o más de cinco minutos en el futuro son rechazadas al ingerir el uso.
Si omite meter_id al listar medidores de uso, se devolverán todos los medidores vinculados a las suscripciones del cliente.

Webhooks

El complemento de webhooks procesa eventos de pago en tiempo real de Dodo Payments con verificación de firma segura. El endpoint predeterminado es /api/auth/dodopayments/webhooks.
1

Generate and set webhook secret

Genera un secreto webhook para tu URL de endpoint (por ejemplo, https://<your-domain>/api/auth/dodopayments/webhooks) en el Panel de Dodo Payments y configúralo en tu archivo .env:
2

Handle webhook events

Ejemplo de manejador:

Manejadores de Eventos de Webhook Soportados

Referencia de Configuración

  • client (requerido): Instancia de cliente de DodoPayments
  • createCustomerOnSignUp (opcional): Creación automática de clientes al registrarse
  • use (requerido): Array de plugins para habilitar (checkout, portal, usage, webhooks)
  • getCustomerParams (opcional): Función que recibe el BetterAuth User y devuelve campos extra para adjuntar al cliente de DodoPayments en la creación y actualización (por ejemplo, metadata, phone_number)
  • products: Array de productos o función async que devuelve productos - successUrl: URL para redirigir después del pago exitoso - authenticatedUsersOnly: Requiere autenticación de usuario (por defecto: false)

Solución de Problemas & Consejos

  • Clave API inválida: Verifique doblemente su DODO_PAYMENTS_API_KEY en .env. - Falta de coincidencia en la firma del webhook: Asegúrese de que el secreto del webhook coincida con el configurado en el Panel de Dodo Payments. - Cliente no creado: Confirme que createCustomerOnSignUp esté configurado en true.
  • Use variables de entorno para todos los secretos y claves. - Pruebe en test_mode antes de cambiar a live_mode. - Registre eventos de webhook para depuración y auditoría.

Mensaje para LLMs

Última modificación el 9 de julio de 2026