Chuyển đến nội dung chính
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ỳ:
billing yêu cầu tối thiểu mã ISO hai chữ country. customer là định danh CustomerRequest — truyền AttachExisting cho một khách hàng hiện có hoặc New cho một khách hàng mới. Các trường số lượng như product_price ở đơn vị tiền tệ thấp nhất (ví dụ: 2500 = $25.00 USD).

Thanh toán Dựa trên Sử dụng

Thu thập Sự kiện Sử dụng

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

Danh sách Sự kiện Sử dụng

Phân trang

List endpoints trả về một trang có kiểu mà trường items giữ trang kết quả hiện tại. Truyền trực tiếp mọi mục qua tất cả các trang với into_stream:
Hoặc tiến từng trang một với get_next_page:

Xử lý Lỗi

Mỗi phương thức trả về một dodopayments::Result<T>. Các thất bại được đại diện bởi enum dodopayments::Error. Kiểm tra nó để xử lý lỗi API tách biệt khỏi lỗi truyền tải:

Endpoint không Tài liệu

Để gọi một endpoint chưa được lộ ra dưới dạng phương thức có kiểu, sử dụng builder thấp request, áp dụng xác thực và URL nền tảng:

Tài nguyên

GitHub Repository

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

Crates.io

Xem crate và các phiên bản đã công bố

API Reference

Tài liệu API hoàn chỉnh

Discord Community

Nhận trợ giúp và kết nối với các nhà phát triển

Hỗ trợ

Cần hỗ trợ với Rust SDK?

Đóng góp

Chúng tôi hoan nghênh các đóng góp! Kiểm tra hướng dẫn đóng góp để bắt đầu.
Lần sửa đổi cuối 9 tháng 7, 2026