Use this file to discover all available pages before exploring further.
TypeScript SDK tillhandahåller bekväm server-sidåtkomst till Dodo Payments REST API för TypeScript- och JavaScript-applikationer. Den har omfattande typdefinitioner, felhantering, omstarter, tidsgränser och automatisk paginering för sömlös betalningsbehandling.
Initiera klienten med din API-nyckel och börja behandla betalningar:
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);
Spara alltid dina API-nycklar säkert med hjälp av miljövariabler. Checka aldrig in dem i versionskontroll eller exponera dem i klientkod.
// Create a subscriptionconst subscription = await client.subscriptions.create({ billing: { country: 'US', city: 'San Francisco', state: 'CA', street: '1 Market St', zipcode: '94105', }, customer: { customer_id: 'cus_123', // or pass { email, name } to create a new customer }, product_id: 'pdt_456', quantity: 1,});// Charge an on-demand subscription// product_price is in the lowest currency denomination (e.g., 2500 = $25.00 USD)const chargeResponse = await client.subscriptions.charge(subscription.subscription_id, { product_price: 2500,});// Retrieve subscription usage history (for metered subscriptions)const usageHistory = await client.subscriptions.retrieveUsageHistory(subscription.subscription_id, { start_date: '2024-01-01T00:00:00Z', end_date: '2024-03-31T23:59:59Z',});
billing kräver minst den tvåbokstavskod för ISO-land. customer är en union av { customer_id } (för att koppla en befintlig kund) eller { email, name? } (för att skapa en ny). product_price uttrycks i den lägsta valutadenominationen.
Händelser måste ha unika event_id värden för idempotens. Dubblett-ID:n inom samma förfrågan avvisas, och efterföljande förfrågningar med befintliga ID:n ignoreras.
Hämta detaljerad information om användningshändelser:
// 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, },});
Kontrollera loggverbalitet med miljövariabler eller klientalternativ:
// Via client optionconst client = new DodoPayments({ logLevel: 'debug', // Show all log messages});
# Via environment variableexport DODO_PAYMENTS_LOG=debug
Tillgängliga loggnivåer:
'debug' - Visa debug-meddelanden, info, varningar och fel
'info' - Visa infomeddelanden, varningar och fel
'warn' - Visa varningar och fel (standard)
'error' - Visa endast fel
'off' - Inaktivera all loggning
På debug-nivån loggas alla HTTP-förfrågningar och svar, inklusive headers och kroppar. Vissa autentiseringsheaders är censurerade, men känslig data i kroppar kan fortfarande vara synlig.