Skip to main content
Dodo Payments har en inbyggd funktion för databassynkronisering som automatiskt synkroniserar dina betalningsdata med din egen databas. Du kan synkronisera betalningar, kunder, prenumerationer och licenser för att upprätthålla en lokal kopia av dina data för analys, rapportering eller integration med andra system.
Implementering: Tillgänglig via npm-paket | Källkod: GitHub

Vad kan du synkronisera?

Vår funktion för databassynkronisering stöder synkronisering av följande Dodo Payments-entiteter till din databas:

Payments

Synkronisera alla betalningstransaktioner, inklusive engångsbetalningar, återbetalningar och uppdateringar av betalningsstatus.

Customers

Håll dina kunddata synkroniserade, inklusive kundprofiler, kontaktuppgifter och metadata.

Subscriptions

Synkronisera prenumerationsdata, inklusive aktiva prenumerationer, faktureringscykler och ändringar av prenumerationsstatus.

Licenses

Synkronisera licensinformation, inklusive licensnycklar, aktiveringar och uppdateringar av licensstatus.
Du kan synkronisera valfri kombination av dessa entiteter genom att ange dem i parametern scopes. Alla synkroniseringsåtgärder är inkrementella och överför endast nya eller uppdaterade poster för optimal prestanda.

Databasstöd

Vi stöder för närvarande MongoDB, PostgreSQL, MySQL och ClickHouse. Vi arbetar aktivt med att utöka stödet för:
  • Databaser: Snowflake och andra.
  • Pipelines: ETL-pipelines, Realtime-synkronisering.
Vi utökar kontinuerligt databasstödet. Om du vill bidra med en ny datasintegration kan du skicka en Pull Request till vårt GitHub-arkiv.

Kom igång

Du kan använda vår funktion för databassynkronisering via CLI eller programmatiskt i din kod. Båda metoderna erbjuder samma funktionalitet – välj den som passar ditt arbetsflöde bäst.

Använda CLI

CLI-verktyget erbjuder ett snabbt sätt att konfigurera och köra databassynkronisering. Installera det globalt för att kunna använda det från valfri plats i terminalen:

Köra CLI

CLI stöder två lägen: Interaktivt läge för guidad konfiguration och Manuellt läge för direkt konfiguration. Interaktivt läge: Kör kommandot utan argument för att starta den interaktiva konfigurationsguiden.
Manuellt läge: Skicka argument direkt för att hoppa över guiden.
Exempel:

CLI-argument

number
Synkroniseringsintervall i sekunder. Anger hur ofta synkroniseringsåtgärden körs. Om det inte anges körs synkroniseringen en gång och avslutas sedan.
string
obligatorisk
Databastyp som ska användas. Tillåtna värden: "mongodb", "postgres", "mysql" eller "clickhouse".
string
obligatorisk
Anslutnings-URI för din databas:
  • MongoDB: mongodb://localhost:27017 eller 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
string
obligatorisk
Kommaseparerad lista över dataentiteter som ska synkroniseras. Tillgängliga scopes: licences, payments, customers, subscriptions. Exempel: "payments,customers".
string
obligatorisk
Din Dodo Payments API-nyckel. Ska börja med dp_live_ för live-läge eller dp_test_ för testläge.
string
obligatorisk
Miljömål. Måste vara antingen "live_mode" eller "test_mode". Detta avgör vilken Dodo Payments-miljö som ska synkroniseras.
number
Hastighetsbegränsning i requests per sekund. Styr hur snabbt synkroniseringsmotorn gör API-requests för att undvika att överbelasta Dodo Payments API.

Använda i din kod

För programmatisk kontroll kan du integrera synkroniseringsfunktionen direkt i din applikation. Installera den som ett beroende i ditt projekt:

Automatisk synkronisering (intervallbaserad)

Använd automatisk synkronisering när du vill att synkroniseringen ska köras kontinuerligt med regelbundna intervall:
Alternativet interval krävs när .start() används för automatisk synkronisering. Synkroniseringen körs kontinuerligt med det angivna intervallet tills processen stoppas.

Manuell synkronisering

Använd manuell synkronisering när du vill utlösa synkroniseringsåtgärder vid behov, till exempel från ett cron-jobb eller en API-endpoint:
När du använder manuell synkronisering krävs inte alternativet interval. Du kan anropa .run() när du behöver utföra en synkroniseringsåtgärd.

PostgreSQL-exempel

Så här använder du dodo-sync med PostgreSQL:

MySQL-exempel

Så här använder du dodo-sync med MySQL:

ClickHouse-exempel

Så här använder du dodo-sync med ClickHouse:

Konstruktoralternativ

string
obligatorisk
Namnet på databasen som ska användas. Tillåtna värden: "mongodb", "postgres", "mysql" eller "clickhouse".
string
obligatorisk
Anslutningssträng för din databas:
  • MongoDB: mongodb://localhost:27017 eller mongodb+srv://...
  • PostgreSQL: postgresql://user:password@localhost:5432/mydb
  • MySQL: mysql://user:password@localhost:3306/mydb
  • ClickHouse: http://localhost:8123
string[]
obligatorisk
Array med entiteter som ska synkroniseras. Tillgängliga alternativ: "licences", "payments", "customers", "subscriptions". Du kan inkludera valfri kombination av dessa.
object
obligatorisk
Dodo Payments API-konfiguration för autentisering och miljöval. Se TypeScript SDK-typerna för alla tillgängliga alternativ.Obligatoriska egenskaper:
  • bearerToken: Din Dodo Payments API-nyckel
  • environment: Antingen "test_mode" eller "live_mode"
number
Tid i sekunder mellan automatiska synkroniseringar. Krävs när .start() används för automatisk synkronisering. Valfritt när .run() används för manuell synkronisering.
number
Antal requests per sekund. Styr hur snabbt synkroniseringsmotorn gör API-requests för att undvika att överbelasta Dodo Payments API.

Viktig information

MongoDB: En databas med namnet dodopayments_sync skapas automatiskt på din databasserver. Alla synkroniserade data lagras där. Databasnamnet är för närvarande fast och kan inte ändras.PostgreSQL: Tabeller (Subscriptions, Payments, Licenses, Customers) skapas i den databas som anges i din anslutnings-URI. Data lagras som JSONB.MySQL: Tabeller (Subscriptions, Payments, Licenses, Customers) skapas i den databas som anges i din anslutnings-URI. Data lagras som JSON.ClickHouse: Tabeller (Subscriptions, Payments, Licenses, Customers) skapas med motorn ReplacingMergeTree. Använd nyckelordet FINAL vid frågor för att säkerställa deduplicerade resultat.
Synkroniseringsmotorn spårar ändringar och synkroniserar endast nya eller uppdaterade poster, vilket gör efterföljande synkroniseringar effektiva även med stora datamängder.

Ytterligare resurser

GitHub Repository

Visa källkod, rapportera problem eller bidra med förbättringar

npm Package

Visa paketdetaljer och installationsanvisningar
Senast ändrad 31 juli 2026