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 de manière sécurisée en utilisant des variables d’environnement. Ne les validez jamais dans le contrôle de version ni ne les exposez dans du code côté client.
Les événements doivent avoir des valeurs event_id uniques pour garantir l’idempotence. Les identifiants en double au sein d’une même requête sont rejetés, et les requêtes subséquentes contenant des identifiants 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 journalisation disponibles :
'debug' - Affiche les messages de débogage, les infos, les avertissements et les erreurs
'info' - Affiche les messages d’info, les avertissements et les erreurs
'warn' - Affiche les avertissements et les erreurs (par défaut)
'error' - Affiche uniquement les erreurs
'off' - Désactive toute journalisation
Au niveau de débogage, toutes les requêtes et réponses HTTP sont journalisées, y compris les en-têtes et les corps. Certains en-têtes d’authentification sont masqués, mais des données sensibles présentes dans les corps peuvent rester visibles.
Les méthodes de liste de l’API DodoPayments sont paginées. Vous pouvez utiliser la syntaxe for await … of pour parcourir les éléments de toutes les pages :
Copier
async function fetchAllPayments() { const allPayments = []; // Automatically fetches more pages as needed. for await (const paymentListResponse of client.payments.list()) { allPayments.push(paymentListResponse); } return allPayments;}
Alternativement, vous pouvez demander une seule page à la fois :
Copier
let page = await client.payments.list();for (const paymentListResponse of page.items) { console.log(paymentListResponse);}// Convenience methods are provided for manually paginating:while (page.hasNextPage()) { page = await page.getNextPage(); // ...}