Intégrez Dodo Payments dans vos applications TypeScript et Node.js avec sécurité de type et support moderne d’async/await
Le SDK TypeScript fournit un accès pratique côté serveur à l’API REST de Dodo Payments pour les applications TypeScript et JavaScript. Il propose des définitions de type complètes, la gestion des erreurs, des tentatives, des délais d’attente et une pagination automatique pour un traitement des paiements sans faille.
Initialisez le client avec votre clé API et commencez à traiter les paiements :
Copier
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);
Stockez toujours vos clés API en toute sécurité en utilisant des variables d’environnement. Ne les engagez jamais dans le contrôle de version ou ne les exposez pas dans le code côté client.
Configurez le comportement de tentative automatique :
Copier
// 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 });
Le SDK réessaie automatiquement les requêtes qui échouent en raison d’erreurs réseau ou de problèmes de serveur (réponses 5xx) avec un backoff exponentiel.
Les événements doivent avoir des valeurs uniques event_id pour l’idempotence. Les ID en double dans la même requête sont rejetés, et les requêtes ultérieures avec des ID existants sont ignorées.
Récupérez des informations détaillées sur les événements d’utilisation :
Copier
// 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, },});
Contrôlez la verbosité des journaux en utilisant des variables d’environnement ou des options client :
Copier
// Via client optionconst client = new DodoPayments({ logLevel: 'debug', // Show all log messages});
Copier
# Via environment variableexport DODO_PAYMENTS_LOG=debug
Niveaux de journal disponibles :
'debug' - Afficher les messages de débogage, d’information, d’avertissement et d’erreur
'info' - Afficher les messages d’information, d’avertissement et d’erreur
'warn' - Afficher les avertissements et les erreurs (par défaut)
'error' - Afficher uniquement les erreurs
'off' - Désactiver toute journalisation
Au niveau de débogage, toutes les requêtes et réponses HTTP sont enregistrées, y compris les en-têtes et les corps. Certains en-têtes d’authentification sont masqués, mais les données sensibles dans les corps peuvent encore être visibles.