Skip to main content
Đồng bộ dữ liệu Dodo Payments với cơ sở dữ liệu riêng của bạn để phục vụ phân tích, báo cáo và tích hợp. Công cụ đồng bộ tự động sao chép payments, customers, subscriptions và licenses vào MongoDB, PostgreSQL, MySQL hoặc ClickHouse.
Package: dodo-sync trên npm | Source: GitHub

Bạn có thể đồng bộ những gì?

Chọn bất kỳ tổ hợp nào trong các entity này:

Payments

Tất cả giao dịch thanh toán, bao gồm thanh toán một lần, hoàn tiền và cập nhật trạng thái.

Customers

Hồ sơ khách hàng, thông tin liên hệ và metadata.

Subscriptions

Dữ liệu gói đăng ký, chu kỳ thanh toán và thay đổi trạng thái.

Licenses

License key, lượt kích hoạt và cập nhật trạng thái.
Chỉ định các entity cần đồng bộ bằng tham số scopes. Mỗi lần chạy sẽ lấy mọi bản ghi trong các phạm vi đã chọn và ghi theo ID, vì vậy các hàng hiện có được cập nhật tại chỗ thay vì bị nhân đôi. Trong MongoDB, license key được lưu theo ID gói đăng ký, nên một gói đăng ký có nhiều license key sẽ chỉ giữ lại một key.

Hỗ trợ cơ sở dữ liệu

Dodo Sync hỗ trợ MongoDB, PostgreSQL, MySQL và ClickHouse. Hỗ trợ Snowflake và các cơ sở dữ liệu khác, ETL pipeline cũng như đồng bộ realtime đang được phát triển. Để đóng góp một tích hợp cơ sở dữ liệu mới, hãy gửi pull request đến repository GitHub.

Bắt đầu

Sử dụng Dodo Sync thông qua CLI để thiết lập nhanh hoặc tích hợp theo cách lập trình vào code của bạn. Cả hai phương thức đều cung cấp cùng một chức năng.

Sử dụng CLI

Cài đặt CLI trên toàn hệ thống để chạy từ bất kỳ đâu:

Chạy CLI

CLI hỗ trợ hai chế độ: interactive để được hướng dẫn thiết lập và manual để cấu hình trực tiếp. Chế độ interactive: Chạy không có đối số để bắt đầu trình hướng dẫn thiết lập.
Chế độ manual: Truyền trực tiếp các đối số để bỏ qua trình hướng dẫn.
Ví dụ:

Đối số CLI

number
bắt buộc
Khoảng thời gian đồng bộ tính bằng giây. CLI chạy liên tục theo khoảng thời gian này. Để đồng bộ một lần, hãy sử dụng .run() trong code của bạn.
string
bắt buộc
Loại cơ sở dữ liệu: "mongodb", "postgres", "mysql" hoặc "clickhouse".
string
bắt buộc
URI kết nối đến cơ sở dữ liệu của bạn:
  • MongoDB: mongodb://localhost:27017 hoặc 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
bắt buộc
Danh sách entity cần đồng bộ, được phân tách bằng dấu phẩy: licences, payments, customers, subscriptions. Ví dụ: "payments,customers".
string
bắt buộc
API key Dodo Payments của bạn từ Developer → API Keys. Sử dụng key ở cùng chế độ với --env.
string
bắt buộc
Môi trường: "live_mode" hoặc "test_mode".
number
Giới hạn tốc độ tính bằng request mỗi giây. Kiểm soát tốc độ công cụ đồng bộ thực hiện request API. Mặc định là 10; giá trị 100 trở lên sẽ tắt throttling.

Sử dụng trong Code của bạn

Tích hợp trực tiếp tính năng đồng bộ vào ứng dụng của bạn. Cài đặt dưới dạng dependency:

Đồng bộ tự động (theo khoảng thời gian)

Chạy đồng bộ liên tục theo các khoảng thời gian đều đặn:
Tùy chọn interval là bắt buộc khi sử dụng .start(). Quá trình đồng bộ chạy liên tục theo khoảng thời gian được chỉ định cho đến khi process dừng.

Đồng bộ thủ công

Kích hoạt các thao tác đồng bộ theo yêu cầu, chẳng hạn từ cron job hoặc API endpoint:
Tùy chọn interval không bắt buộc đối với đồng bộ thủ công. Gọi .run() bất cứ khi nào bạn cần đồng bộ.

Ví dụ PostgreSQL

Ví dụ MySQL

Ví dụ ClickHouse

Tùy chọn Constructor

string
bắt buộc
Loại cơ sở dữ liệu: "mongodb", "postgres", "mysql" hoặc "clickhouse".
string
bắt buộc
Connection string cho cơ sở dữ liệu của bạn:
  • MongoDB: mongodb://localhost:27017 hoặc mongodb+srv://...
  • PostgreSQL: postgresql://user:password@localhost:5432/mydb
  • MySQL: mysql://user:password@localhost:3306/mydb
  • ClickHouse: http://localhost:8123
string[]
bắt buộc
Mảng các entity cần đồng bộ: "licences", "payments", "customers", "subscriptions". Bao gồm bất kỳ tổ hợp nào.
object
bắt buộc
Cấu hình API Dodo Payments. Xem type của TypeScript SDK để biết đầy đủ các tùy chọn.Các thuộc tính bắt buộc:
  • bearerToken: API key Dodo Payments của bạn
  • environment: "test_mode" hoặc "live_mode"
number
Thời gian tính bằng giây giữa các lần đồng bộ tự động. Bắt buộc đối với .start(), tùy chọn đối với .run().
number
Giới hạn tốc độ tính bằng request mỗi giây. Mặc định là 10; giá trị 100 trở lên sẽ tắt throttling.

Thông tin quan trọng

MongoDB: Một cơ sở dữ liệu có tên dodopayments_sync sẽ được tự động tạo trên server của bạn. Tên cơ sở dữ liệu này là cố định và không thể thay đổi.PostgreSQL: Các bảng (Subscriptions, Payments, Licenses, Customers) được tạo trong cơ sở dữ liệu được chỉ định trong URI kết nối. Dữ liệu được lưu dưới dạng JSONB.MySQL: Các bảng (Subscriptions, Payments, Licenses, Customers) được tạo trong cơ sở dữ liệu được chỉ định trong URI kết nối. Dữ liệu được lưu dưới dạng JSON.ClickHouse: Các bảng (Subscriptions, Payments, Licenses, Customers) được tạo bằng engine ReplacingMergeTree. Khi truy vấn, hãy sử dụng từ khóa FINAL để đảm bảo kết quả không bị trùng lặp.

Tài nguyên bổ sung

GitHub Repository

Xem source code, báo cáo vấn đề hoặc đóng góp cải tiến

npm Package

Xem thông tin package và hướng dẫn cài đặt
Lần sửa đổi cuối 26 tháng 9, 2026