अपने TypeScript और Node.js अनुप्रयोगों में Dodo Payments को टाइप सुरक्षा और आधुनिक async/await समर्थन के साथ एकीकृत करें
TypeScript SDK Dodo Payments REST API के लिए TypeScript और JavaScript अनुप्रयोगों के लिए सुविधाजनक सर्वर-साइड पहुंच प्रदान करता है। इसमें व्यापक प्रकार की परिभाषाएँ, त्रुटि प्रबंधन, पुनः प्रयास, समय सीमा, और निर्बाध भुगतान प्रसंस्करण के लिए स्वचालित-पृष्ठन शामिल हैं।
अपने API कुंजी के साथ क्लाइंट को प्रारंभ करें और भुगतान प्रसंस्करण शुरू करें:
कॉपी करें
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);
हमेशा अपने API कुंजी को सुरक्षित रूप से पर्यावरण चर का उपयोग करके संग्रहीत करें। कभी भी उन्हें संस्करण नियंत्रण में न डालें या क्लाइंट-साइड कोड में उजागर न करें।
इवेंट्स को idempotency के लिए अद्वितीय event_id मान होना चाहिए। एक ही अनुरोध में डुप्लिकेट IDs अस्वीकृत कर दी जाती हैं, और मौजूदा IDs के साथ बाद के अनुरोधों को अनदेखा कर दिया जाता है।
उपयोग घटनाओं के बारे में विस्तृत जानकारी प्राप्त करें:
कॉपी करें
// 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, },});
पर्यावरण चर या क्लाइंट विकल्पों का उपयोग करके लॉग वर्बोज़िटी को नियंत्रित करें:
कॉपी करें
// Via client optionconst client = new DodoPayments({ logLevel: 'debug', // Show all log messages});
कॉपी करें
# Via environment variableexport DODO_PAYMENTS_LOG=debug
उपलब्ध लॉग स्तर:
'debug' - डिबग संदेश, जानकारी, चेतावनियाँ, और त्रुटियाँ दिखाएँ
'info' - जानकारी के संदेश, चेतावनियाँ, और त्रुटियाँ दिखाएँ
'warn' - चेतावनियाँ और त्रुटियाँ दिखाएँ (डिफ़ॉल्ट)
'error' - केवल त्रुटियाँ दिखाएँ
'off' - सभी लॉगिंग बंद करें
डिबग स्तर पर, सभी HTTP अनुरोध और प्रतिक्रियाएँ लॉग की जाती हैं, जिसमें हेडर और बॉडी शामिल हैं। कुछ प्रमाणीकरण हेडर को छिपाया गया है, लेकिन बॉडी में संवेदनशील डेटा अभी भी दिखाई दे सकता है।
DodoPayments API में सूची विधियाँ पृष्ठबद्ध हैं। आप सभी पृष्ठों में आइटम के माध्यम से पुनरावृत्त करने के लिए for await … of सिंटैक्स का उपयोग कर सकते हैं:
कॉपी करें
async function fetchAllPayments() { const allPayments = []; // Automatically fetches more pages as needed. for await (const paymentListResponse of client.payments.list()) { allPayments.push(paymentListResponse); } return allPayments;}
वैकल्पिक रूप से, आप एक समय में एक ही पृष्ठ का अनुरोध कर सकते हैं:
कॉपी करें
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(); // ...}