Skip to main content
Rust SDK cung cấp khả năng truy cập tiện lợi, ưu tiên bất đồng bộ đến REST API của Dodo Payments từ các ứng dụng viết bằng Rust. Nó cung cấp các yêu cầu và phản hồi định kiểu mạnh mẽ, công cụ phân trang tích hợp sẵn, và khả năng cấu hình thời gian chờ và môi trường.

Cài đặt

Thêm SDK vào dự án của bạn với Cargo:
Hoặc thêm nó vào Cargo.toml của bạn thủ công:
SDK yêu cầu Rust 1.75 hoặc mới hơn, tận dụng các tính năng bất đồng bộ hiện đại để đạt hiệu suất tối ưu.

Bắt đầu nhanh

Client đọc khóa API của bạn từ biến môi trường DODO_PAYMENTS_API_KEY theo mặc định. Khởi tạo client và tạo phiên checkout đầu tiên của bạn:
Luôn lưu trữ khóa API của bạn một cách an toàn bằng cách sử dụng biến môi trường. Không bao giờ mã hóa cứng chúng trong mã nguồn của bạn.

Tính năng cốt lõi

Async First

Được xây dựng trên Tokio và reqwest với hỗ trợ async/await xuyên suốt

Strong Typing

Yêu cầu và phản hồi định kiểu mạnh mẽ cho an toàn khi biên dịch

Auto-Pagination

Truyền trực tiếp mọi mục qua các trang hoặc tiến từng trang một

Configurable

Cấu hình môi trường, thời gian chờ, và URL nền tảng theo từng client

Cấu hình

Biến môi trường

Theo mặc định, Client::from_env() đọc khóa API của bạn từ biến môi trường DODO_PAYMENTS_API_KEY và sử dụng URL nền tảng mặc định trừ khi bạn đặt DODO_PAYMENTS_BASE_URL:
Bạn cũng có thể cấu hình client rõ ràng. Client::new trả về một Result, vì vậy hãy mở nó ra với ? bên trong một hàm trả về dodopayments::Result:

Môi trường

URL nền tảng mặc định là https://live.dodopayments.com. Chọn một môi trường khác với enum Environment thay vì mã hóa URL:
Để tiếp tục đọc khóa API từ DODO_PAYMENTS_API_KEY qua from_env() trong khi nhắm mục tiêu đến một môi trường không mặc định, ghi đè nó trên cấu hình:

Thời gian chờ

Thời gian chờ mặc định của yêu cầu là 30 giây. Ghi đè nó theo từng client:

Hoạt động phổ biến

Tạo phiên Checkout

Tạo một phiên checkout:

Quản lý Khách hàng

Tạo và lấy thông tin khách hàng:

Xử lý Đăng ký

Tạo và quản lý đăng ký định kỳ:
POST /subscriptions (phương thức subscriptions.create của SDK) đã deprecated. Phương thức này vẫn hoạt động đối với các tích hợp hiện có, nhưng các tích hợp mới nên tạo subscription thông qua Checkout Session.
billing yêu cầu tối thiểu mã country ISO gồm hai chữ cái. customer là một enum CustomerRequest — truyền AttachExisting cho customer hiện có hoặc New cho customer mới. Các field số tiền như product_price được tính theo đơn vị tiền tệ nhỏ nhất (ví dụ: 2500 = 25,00 USD).

Thanh toán theo mức sử dụng

Tiếp nhận sự kiện sử dụng

Theo dõi các sự kiện tùy chỉnh:

Liệt kê sự kiện sử dụng

Phân trang

Các endpoint list trả về một trang có kiểu, trong đó field items chứa các kết quả của trang hiện tại. Stream mọi item trên tất cả các trang bằng into_stream:
Hoặc chuyển từng trang một bằng get_next_page:

Xử lý lỗi

Mọi method đều trả về một dodopayments::Result<T>. Các lỗi được biểu diễn bằng enum dodopayments::Error. Hãy match trên enum này để xử lý riêng các lỗi API và lỗi transport:

Endpoint chưa được ghi nhận

Để gọi một endpoint chưa được cung cấp dưới dạng method có kiểu, hãy sử dụng builder cấp thấp request, builder này áp dụng authentication và base URL:

Tài nguyên

GitHub Repository

Xem mã nguồn và đóng góp

Crates.io

Xem crate đã phát hành và các phiên bản

API Reference

Tài liệu API đầy đủ

Discord Community

Nhận trợ giúp và kết nối với các developer

Hỗ trợ

Bạn cần trợ giúp về Rust SDK?

Đóng góp

Chúng tôi hoan nghênh các đóng góp! Hãy xem hướng dẫn đóng góp để bắt đầu.
Lần sửa đổi cuối 17 tháng 8, 2026