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);
Bewahren Sie Ihre API-Schlüssel immer sicher auf, indem Sie Umgebungsvariablen verwenden. Kommittieren Sie sie niemals in die Versionskontrolle oder exponieren Sie sie im Client-Code.
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: 0 }] }, { 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 für Idempotenz haben. Doppelte IDs innerhalb derselben Anfrage werden abgelehnt, und nachfolgende Anfragen mit 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 Protokollstufen:
'debug' - Zeigt Debug-Nachrichten, Informationen, Warnungen und Fehler an
'info' - Zeigt Informationsnachrichten, Warnungen und Fehler an
'warn' - Zeigt Warnungen und Fehler an (Standard)
'error' - Zeigt nur Fehler an
'off' - Deaktiviert alle Protokollierungen
Auf der Debug-Ebene werden alle HTTP-Anfragen und -Antworten protokolliert, einschließlich Header und Inhalte. Einige Authentifizierungsheader werden anonymisiert, aber sensible Daten in den Inhalten können weiterhin sichtbar sein.