मुख्य सामग्री पर जाएं
डोडो पेमेंट्स एक अंतर्निहित डेटाबेस सिंक सुविधा प्रदान करता है जो स्वचालित रूप से आपके भुगतान डेटा को आपके अपने डेटाबेस के साथ समन्वयित करता है। आप भुगतान, ग्राहक, सदस्यताएँ, और लाइसेंस को सिंक कर सकते हैं ताकि आपके डेटा की एक स्थानीय प्रति एनालिटिक्स, रिपोर्टिंग, या अन्य सिस्टम के साथ इंटीग्रेशन के लिए बनाए रखी जा सके।
कार्यान्वयन: npm पैकेज के माध्यम से उपलब्ध | स्रोत कोड: GitHub

आप क्या सिंक कर सकते हैं?

हमारी डेटाबेस सिंक सुविधा निम्नलिखित डोडो पेमेंट्स संस्थाओं को आपके डेटाबेस के साथ समन्वयित करने का समर्थन करती है:

भुगतान

सभी भुगतान लेनदेन को सिंक करें, जिसमें एक बार के भुगतान, रिफंड, और भुगतान स्थिति अपडेट शामिल हैं।

ग्राहक

अपने ग्राहक डेटा को सिंक में रखें, जिसमें ग्राहक प्रोफाइल, संपर्क जानकारी, और मेटाडेटा शामिल हैं।

सदस्यताएँ

सदस्यता डेटा को सिंक करें, जिसमें सक्रिय सदस्यताएँ, बिलिंग चक्र, और सदस्यता स्थिति परिवर्तन शामिल हैं।

लाइसेंस

लाइसेंस जानकारी को सिंक करें, जिसमें लाइसेंस कुंजी, सक्रियण, और लाइसेंस स्थिति अपडेट शामिल हैं।
आप इन संस्थाओं के किसी भी संयोजन को scopes पैरामीटर में निर्दिष्ट करके समन्वयित कर सकते हैं। सभी समन्वय संचालन वृद्धिशील होते हैं और इष्टतम प्रदर्शन के लिए केवल नए या अपडेट किए गए रिकॉर्ड को स्थानांतरित करते हैं।

डेटाबेस समर्थन

हम वर्तमान में MongoDB, PostgreSQL, MySQL, और ClickHouse का समर्थन करते हैं। हम सक्रिय रूप से समर्थन का विस्तार करने पर काम कर रहे हैं:
  • डेटाबेस: Snowflake और अन्य।
  • पाइपलाइन्स: ETL पाइपलाइन्स, रियलटाइम सिंक।
हम लगातार डेटाबेस समर्थन का विस्तार कर रहे हैं। यदि आप एक नए डेटाबेस इंटीग्रेशन में योगदान देना चाहते हैं, तो कृपया हमारे GitHub रिपॉजिटरी पर एक पुल अनुरोध सबमिट करें।

शुरू करना

आप हमारी डेटाबेस सिंक सुविधा का उपयोग CLI के माध्यम से या अपने कोड में प्रोग्रामेटिक रूप से कर सकते हैं। दोनों विधियाँ समान कार्यक्षमता प्रदान करती हैं—उसका चयन करें जो आपके कार्यप्रवाह के लिए सबसे उपयुक्त हो।

CLI का उपयोग करना

CLI उपकरण डेटाबेस समन्वय स्थापित करने और चलाने का एक त्वरित तरीका प्रदान करता है। इसे वैश्विक रूप से स्थापित करें ताकि आप इसे अपने टर्मिनल में कहीं से भी उपयोग कर सकें:
npm install -g dodo-sync

CLI चलाना

CLI दो मोड का समर्थन करता है: इंटरएक्टिव मोड मार्गदर्शित सेटअप के लिए, और मैनुअल मोड सीधे कॉन्फ़िगरेशन के लिए। इंटरएक्टिव मोड: इंटरएक्टिव सेटअप विज़ार्ड शुरू करने के लिए बिना तर्क के कमांड चलाएँ।
dodo-sync
मैनुअल मोड: विज़ार्ड को छोड़ने के लिए सीधे तर्क पास करें।
dodo-sync -i [interval] -d [database] -u [database_uri] --scopes [scopes] --api-key [api_key] --env [environment]
उदाहरण:
# MongoDB
dodo-sync -i 600 -d mongodb -u mongodb://mymongodb.url --scopes "licences,payments,customers,subscriptions" --api-key YOUR_API_KEY --env test_mode

# PostgreSQL
dodo-sync -i 600 -d postgres -u postgresql://user:password@localhost:5432/mydb --scopes "licences,payments,customers,subscriptions" --api-key YOUR_API_KEY --env test_mode

# MySQL
dodo-sync -i 600 -d mysql -u mysql://user:password@localhost:3306/mydb --scopes "licences,payments,customers,subscriptions" --api-key YOUR_API_KEY --env test_mode

# ClickHouse
dodo-sync -i 600 -d clickhouse -u http://localhost:8123 --scopes "licences,payments,customers,subscriptions" --api-key YOUR_API_KEY --env test_mode

CLI तर्क

--interval
number
सिंक अंतराल सेकंड में। यह निर्धारित करता है कि सिंक संचालन कितनी बार चलता है। यदि प्रदान नहीं किया गया, तो सिंक एक बार चलेगा और बाहर निकल जाएगा।
--database
string
आवश्यक
उपयोग करने के लिए डेटाबेस प्रकार। समर्थित मान: "mongodb", "postgres", "mysql", या "clickhouse".
--database-uri
string
आवश्यक
आपके डेटाबेस के लिए कनेक्शन URI:
  • MongoDB: mongodb://localhost:27017 या mongodb+srv://user:pass@cluster.mongodb.net/
  • PostgreSQL: postgresql://user:password@localhost:5432/mydb
  • MySQL: mysql://user:password@localhost:3306/mydb
  • ClickHouse: http://localhost:8123
--scopes
string
आवश्यक
समन्वयित करने के लिए डेटा संस्थाओं की अल्पविराम से अलग सूची। उपलब्ध स्कोप: licences, payments, customers, subscriptions। उदाहरण: "payments,customers".
--api-key
string
आवश्यक
आपकी Dodo Payments API कुंजी। इसे लाइव मोड के लिए dp_live_ या परीक्षण मोड के लिए dp_test_ से शुरू होना चाहिए।
--env
string
आवश्यक
पर्यावरण लक्ष्य। यह या तो "live_mode" या "test_mode" होना चाहिए। यह निर्धारित करता है कि Dodo Payments वातावरण से समन्वयित करना है।
--rate-limit
number
प्रति सेकंड अनुरोधों में दर सीमा। यह नियंत्रित करता है कि सिंक इंजन डोडो पेमेंट्स API को कितनी तेजी से API अनुरोध करता है ताकि इसे ओवरवेल्मिंग से बचाया जा सके।

अपने कोड में उपयोग करना

प्रोग्रामेटिक नियंत्रण के लिए, सिंक सुविधा को सीधे अपने एप्लिकेशन में एकीकृत करें। इसे अपने प्रोजेक्ट में एक निर्भरता के रूप में स्थापित करें:
npm install dodo-sync

स्वचालित सिंक (अंतर-आधारित)

जब आप चाहते हैं कि सिंक नियमित अंतराल पर लगातार चले, तो स्वचालित सिंक का उपयोग करें:
import { DodoSync } from 'dodo-sync';

const syncDodoPayments = new DodoSync({
  interval: 60, // Sync every 60 seconds
  database: 'mongodb',
  databaseURI: process.env.MONGODB_URI, // e.g., 'mongodb://localhost:27017'
  scopes: ['licences', 'payments', 'customers', 'subscriptions'],
  dodoPaymentsOptions: {
    bearerToken: process.env.DODO_PAYMENTS_API_KEY,
    environment: 'test_mode' // or 'live_mode'
  }
});

// Initialize connection
await syncDodoPayments.init();

// Start the sync loop
syncDodoPayments.start();
interval विकल्प का उपयोग करते समय .start() के लिए स्वचालित समन्वय के लिए आवश्यक है। समन्वय निर्दिष्ट अंतराल पर तब तक लगातार चलेगा जब तक प्रक्रिया को रोका नहीं जाता।

मैनुअल सिंक

जब आप मांग पर सिंक संचालन को ट्रिगर करना चाहते हैं (जैसे, क्रोन जॉब या API एंडपॉइंट से), तो मैनुअल सिंक का उपयोग करें:
import { DodoSync } from 'dodo-sync';

const syncDodoPayments = new DodoSync({
  database: 'mongodb',
  databaseURI: process.env.MONGODB_URI,
  scopes: ['licences', 'payments', 'customers', 'subscriptions'],
  dodoPaymentsOptions: {
    bearerToken: process.env.DODO_PAYMENTS_API_KEY,
    environment: 'test_mode'
  }
});

// Initialize connection
await syncDodoPayments.init();

// Trigger a single sync operation
await syncDodoPayments.run();
जब मैनुअल समन्वय का उपयोग करते हैं, तो interval विकल्प आवश्यक नहीं है। आप जब भी समन्वय संचालन करने की आवश्यकता हो, .run() को कॉल कर सकते हैं।

PostgreSQL उदाहरण

यहाँ बताया गया है कि PostgreSQL के साथ dodo-sync का उपयोग कैसे करें:
import { DodoSync } from 'dodo-sync';

const syncDodoPayments = new DodoSync({
  interval: 60,
  database: 'postgres',
  databaseURI: process.env.POSTGRES_URI, // e.g., 'postgresql://user:password@localhost:5432/mydb'
  scopes: ['licences', 'payments', 'customers', 'subscriptions'],
  dodoPaymentsOptions: {
    bearerToken: process.env.DODO_PAYMENTS_API_KEY,
    environment: 'test_mode'
  }
});

await syncDodoPayments.init();
syncDodoPayments.start();

MySQL उदाहरण

यहाँ बताया गया है कि MySQL के साथ dodo-sync का उपयोग कैसे करें:
import { DodoSync } from 'dodo-sync';

const syncDodoPayments = new DodoSync({
  interval: 60,
  database: 'mysql',
  databaseURI: process.env.MYSQL_URI, // e.g., 'mysql://user:password@localhost:3306/mydb'
  scopes: ['licences', 'payments', 'customers', 'subscriptions'],
  dodoPaymentsOptions: {
    bearerToken: process.env.DODO_PAYMENTS_API_KEY,
    environment: 'test_mode'
  }
});

await syncDodoPayments.init();
syncDodoPayments.start();

ClickHouse उदाहरण

यहाँ बताया गया है कि ClickHouse के साथ dodo-sync का उपयोग कैसे करें:
import { DodoSync } from 'dodo-sync';

const syncDodoPayments = new DodoSync({
  interval: 60,
  database: 'clickhouse',
  databaseURI: process.env.CLICKHOUSE_URI, // e.g., 'http://localhost:8123'
  scopes: ['licences', 'payments', 'customers', 'subscriptions'],
  dodoPaymentsOptions: {
    bearerToken: process.env.DODO_PAYMENTS_API_KEY,
    environment: 'test_mode'
  }
});

await syncDodoPayments.init();
syncDodoPayments.start();

कंस्ट्रक्टर विकल्प

database
string
आवश्यक
उपयोग करने के लिए डेटाबेस का नाम। समर्थित मान: "mongodb", "postgres", "mysql", या "clickhouse".
databaseURI
string
आवश्यक
आपके डेटाबेस के लिए कनेक्शन स्ट्रिंग:
  • MongoDB: mongodb://localhost:27017 या mongodb+srv://...
  • PostgreSQL: postgresql://user:password@localhost:5432/mydb
  • MySQL: mysql://user:password@localhost:3306/mydb
  • ClickHouse: http://localhost:8123
scopes
string[]
आवश्यक
समन्वयित करने के लिए संस्थाओं की सूची। उपलब्ध विकल्प: "licences", "payments", "customers", "subscriptions"। आप इनमें से किसी भी संयोजन को शामिल कर सकते हैं।
dodoPaymentsOptions
object
आवश्यक
प्रमाणीकरण और पर्यावरण चयन के लिए डोडो पेमेंट्स API कॉन्फ़िगरेशन। पूर्ण विकल्पों के लिए TypeScript SDK प्रकार देखें।आवश्यक गुण:
  • bearerToken: आपकी Dodo Payments API कुंजी
  • environment: या तो "test_mode" या "live_mode"
interval
number
स्वचालित समन्वय के बीच में सेकंड में समय। स्वचालित समन्वय के लिए .start() का उपयोग करते समय आवश्यक। मैनुअल समन्वय के लिए .run() का उपयोग करते समय वैकल्पिक।
rateLimit
number
प्रति सेकंड अनुरोधों की संख्या। यह नियंत्रित करता है कि सिंक इंजन डोडो पेमेंट्स API को कितनी तेजी से API अनुरोध करता है ताकि इसे ओवरवेल्मिंग से बचाया जा सके।

महत्वपूर्ण जानकारी

MongoDB: आपके डेटाबेस सर्वर पर एक डेटाबेस जिसका नाम dodopayments_sync होगा, स्वचालित रूप से बनाया जाएगा। सभी समन्वय डेटा वहाँ संग्रहीत किया जाएगा। यह डेटाबेस नाम वर्तमान में निश्चित है और इसे बदला नहीं जा सकता।PostgreSQL: तालिकाएँ (Subscriptions, Payments, Licenses, Customers) आपके कनेक्शन URI में निर्दिष्ट डेटाबेस में बनाई जाएंगी। डेटा JSONB के रूप में संग्रहीत किया जाता है।MySQL: तालिकाएँ (Subscriptions, Payments, Licenses, Customers) आपके कनेक्शन URI में निर्दिष्ट डेटाबेस में बनाई जाएंगी। डेटा JSON के रूप में संग्रहीत किया जाता है।ClickHouse: तालिकाएँ (Subscriptions, Payments, Licenses, Customers) ReplacingMergeTree इंजन का उपयोग करके बनाई जाएंगी। क्वेरी करते समय, सुनिश्चित करें कि डुप्लिकेट परिणामों को सुनिश्चित करने के लिए FINAL कीवर्ड का उपयोग करें।
सिंक इंजन परिवर्तनों को ट्रैक करता है और केवल नए या अपडेट किए गए रिकॉर्ड को सिंक करता है, जिससे बड़े डेटा सेट के साथ बाद के सिंक को कुशल बनाता है।

अतिरिक्त संसाधन