Integra Dodo Payments en tus aplicaciones de TypeScript y Node.js con seguridad de tipos y soporte moderno de async/await
El SDK de TypeScript proporciona acceso conveniente del lado del servidor a la API REST de Dodo Payments para aplicaciones de TypeScript y JavaScript. Cuenta con definiciones de tipos completas, manejo de errores, reintentos, tiempos de espera y auto-paginación para un procesamiento de pagos sin problemas.
Inicializa el cliente con tu clave API y comienza a procesar pagos:
Copiar
import DodoPayments from 'dodopayments';const client = new DodoPayments({ bearerToken: process.env['DODO_PAYMENTS_API_KEY'], // This is the default and can be omitted environment: 'test_mode', // defaults to 'live_mode'});const checkoutSessionResponse = await client.checkoutSessions.create({ product_cart: [{ product_id: 'product_id', quantity: 1 }],});console.log(checkoutSessionResponse.session_id);
Siempre almacena tus claves API de forma segura utilizando variables de entorno. Nunca las comites en el control de versiones ni las expongas en el código del lado del cliente.
Configura el comportamiento de reintentos automáticos:
Copiar
// Configure default for all requests (default is 2 retries)const client = new DodoPayments({ maxRetries: 0, // disable retries});// Override per-requestawait client.checkoutSessions.create( { product_cart: [{ product_id: 'product_id', quantity: 0 }] }, { maxRetries: 5 });
El SDK reintenta automáticamente las solicitudes que fallan debido a errores de red o problemas del servidor (respuestas 5xx) con retroceso exponencial.
Los eventos deben tener valores únicos event_id para la idempotencia. Los IDs duplicados dentro de la misma solicitud son rechazados, y las solicitudes posteriores con IDs existentes son ignoradas.
// Get a specific eventconst event = await client.usageEvents.retrieve('api_call_12345');// List events with filteringconst events = await client.usageEvents.list({ customer_id: 'cus_abc123', event_name: 'api_request', start: '2024-01-14T10:30:00Z', end: '2024-01-15T10:30:00Z'});
import DodoPayments from 'dodopayments';import * as undici from 'undici';const proxyAgent = new undici.ProxyAgent('http://localhost:8888');const client = new DodoPayments({ fetchOptions: { dispatcher: proxyAgent, },});
Controla la verbosidad del registro usando variables de entorno u opciones del cliente:
Copiar
// Via client optionconst client = new DodoPayments({ logLevel: 'debug', // Show all log messages});
Copiar
# Via environment variableexport DODO_PAYMENTS_LOG=debug
Niveles de registro disponibles:
'debug' - Muestra mensajes de depuración, información, advertencias y errores
'info' - Muestra mensajes de información, advertencias y errores
'warn' - Muestra advertencias y errores (predeterminado)
'error' - Muestra solo errores
'off' - Desactiva todos los registros
En el nivel de depuración, se registran todas las solicitudes y respuestas HTTP, incluidos los encabezados y cuerpos. Algunos encabezados de autenticación son redactados, pero los datos sensibles en los cuerpos pueden seguir siendo visibles.