Integrieren Sie Dodo Payments in Ihre TypeScript- und Node.js-Anwendungen mit Typsicherheit und modernem Async/Await-Support
Das TypeScript SDK bietet bequemen serverseitigen Zugriff auf die Dodo Payments REST API für TypeScript- und JavaScript-Anwendungen. Es verfügt über umfassende Typdefinitionen, Fehlerbehandlung, Wiederholungen, Zeitüberschreitungen und automatische Seitenumbruch für nahtlose Zahlungsabwicklung.
Initialisieren Sie den Client mit Ihrem API-Schlüssel und beginnen Sie mit der Zahlungsabwicklung:
Kopieren
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);
Speichern Sie Ihre API-Schlüssel stets sicher über Umgebungsvariablen. Kommittieren Sie sie niemals in die Versionsverwaltung und setzen Sie sie nicht in clientseitigem Code ein.
Konfigurieren Sie das Verhalten automatischer Wiederholungen:
Kopieren
// 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: 1 }] }, { maxRetries: 5 },);
Das SDK wiederholt automatisch Anfragen, die aufgrund von Netzwerkfehlern oder Serverproblemen (5xx-Antworten) fehlschlagen, mit exponentiellem Backoff.
Ereignisse müssen eindeutige event_id-Werte zur Wahrung der Idempotenz besitzen. Doppelte IDs innerhalb derselben Anfrage werden abgelehnt, und nachfolgende Anfragen mit bereits vorhandenen IDs werden ignoriert.
Abrufen detaillierter Informationen über Nutzungsereignisse:
Kopieren
// 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, },});
Steuern Sie die Protokollierungsstärke mit Umgebungsvariablen oder Client-Optionen:
Kopieren
// Via client optionconst client = new DodoPayments({ logLevel: 'debug', // Show all log messages});
Kopieren
# Via environment variableexport DODO_PAYMENTS_LOG=debug
Verfügbare Protokollierungsebenen:
'debug' - Zeigt Debug-Meldungen, Informationen, Warnungen und Fehler an
'info' - Zeigt Informationsmeldungen, Warnungen und Fehler
'warn' - Zeigt Warnungen und Fehler (Standard)
'error' - Zeigt nur Fehler an
'off' - Deaktiviert die gesamte Protokollierung
Auf der Debug-Ebene werden alle HTTP-Anfragen und -Antworten protokolliert, einschließlich Headern und Körpern. Einige Authentifizierungsheader werden unkenntlich gemacht, doch sensible Daten in den Körpern können weiterhin sichtbar sein.