Skip to main content
Rust SDK 提供方便的异步优先访问,用于从 Rust 应用程序访问 Dodo Payments REST API。它提供了强类型请求和响应、内置分页助手以及可配置的超时和环境。

安装

使用 Cargo 将 SDK 添加到您的项目中:
或者手动将其添加到您的 Cargo.toml 中:
The SDK requires Rust 1.75 or later, leveraging modern async features for optimal performance.

快速开始

客户端默认从 DODO_PAYMENTS_API_KEY 环境变量中读取您的 API 密钥。初始化客户端并创建您的第一个结账会话:
Always store your API keys securely using environment variables. Never hardcode them in your source code.

核心功能

Built on Tokio and reqwest with async/await support throughout Strongly typed requests and responses for compile-time safety Stream every item across pages or advance one page at a time Configure environments, timeouts, and base URLs per client

配置

环境变量

默认情况下,Client::from_env()DODO_PAYMENTS_API_KEY 环境变量中读取您的 API 密钥,并使用默认基本 URL,除非您设置 DODO_PAYMENTS_BASE_URL
您也可以显式配置客户端。Client::new 返回一个 Result,因此在返回 dodopayments::Result 的函数中与 ? 一起解包它:

环境

默认基本 URL 是 https://live.dodopayments.com。使用 Environment 枚举选择其他环境,而不是硬编码 URL:
要通过 from_env() 继续从 DODO_PAYMENTS_API_KEY 读取 API 密钥,同时将目标放在非默认环境中,请在配置中覆盖它:

超时

默认请求超时为 30 秒。为每个客户端覆盖它:

常用操作

创建结账会话

生成一个结账会话:

管理客户

创建和检索客户信息:

处理订阅

创建和管理定期订阅:
POST /subscriptions(SDK 的 subscriptions.create 方法)已弃用。对于现有集成,它仍然有效,但新集成应通过 Checkout Session 创建订阅。
billing 至少需要两位字母的 ISO country 代码。customer 是一个 CustomerRequest 枚举——对于现有客户传入 AttachExisting,对于新客户传入 New。金额字段(例如 product_price)使用货币的最小单位表示(例如,2500 = 25.00 美元)。

基于用量的计费

导入用量事件

跟踪自定义事件:

列出用量事件

分页

列表端点返回一个类型化页面,其 items 字段包含当前页的结果。使用 into_stream 遍历所有页面中的每一项:
或者使用 get_next_page 一次前进一页:

错误处理

每个方法都会返回一个 dodopayments::Result<T>。失败由 dodopayments::Error 枚举表示。根据它进行匹配,即可将 API 错误与传输错误分别处理:

未记录的端点

要调用尚未作为类型化方法公开的端点,请使用底层的 request 构建器;它会应用身份验证并设置基础 URL:

资源

Async First

查看源代码并参与贡献

Strong Typing

查看已发布的 crate 和版本

Auto-Pagination

完整的 API 文档

Configurable

获取帮助并与开发者交流

支持

需要 Rust SDK 方面的帮助?

贡献

欢迎贡献!请查看贡献指南以开始参与。
最后修改于 2026年8月17日