从终端管理你的 Dodo Payments 资源,创建结账会话,并直接测试 Webhook。为更喜欢命令行的开发者打造。
npm install -g dodopayments-cli
手动安装
- 从 GitHub Releases 下载适用于你系统的最新版本
- 解压并将二进制重命名为
dodo
- 移动到 PATH 中的某个目录:
sudo mv ./dodo /usr/local/bin/
身份验证
在使用 CLI 之前,请使用你的 API 密钥进行身份验证:
这将:
- 打开浏览器并跳转到 Dodo Payments API 密钥页面
- 提示你输入 API 密钥
- 要求你选择环境(测试模式 或 实时模式)
- 将你的凭据本地存储到
~/.dodopayments/api-key
CLI 支持为每个环境存储一个 API 密钥。如果同时配置了测试与实时模式的密钥,当前会话将提示你选择要使用的环境。
使用方式
通用语法为:
dodo ‹category› ‹sub-command›
运行 dodo 无参数将显示所有可用类别。运行 dodo <category> 在没有子命令时会显示该类别的可用子命令。
管理你的产品目录。
| 命令 | 说明 |
|---|
dodo products list | 列出所有产品(分页) |
dodo products create | 打开仪表板创建产品 |
dodo products info | 查看特定产品的详细信息 |
查看支付交易。
| 命令 | 说明 |
|---|
dodo payments list | 列出所有支付(分页) |
dodo payments info | 获取特定支付的信息 |
管理你的客户群。
| 命令 | 说明 |
|---|
dodo customers list | 列出所有客户(分页) |
dodo customers create | 创建新的客户资料 |
dodo customers update | 更新现有客户的详细信息 |
管理优惠券和折扣。
| 命令 | 说明 |
|---|
dodo discounts list | 列出所有折扣(分页) |
dodo discounts create | 创建基于百分比的新品折扣 |
dodo discounts delete | 通过 ID 移除折扣 |
许可证
管理软件许可证。
| 命令 | 说明 |
|---|
dodo licences list | 列出所有许可证密钥(分页) |
附加组件
管理产品附加组件。
| 命令 | 说明 |
|---|
dodo addons list | 列出所有附加组件(分页) |
dodo addons create | 打开仪表板创建附加组件 |
dodo addons info | 查看特定附加组件的详细信息 |
查看退款信息。
| 命令 | 说明 |
|---|
dodo refund list | 列出所有退款(分页) |
dodo refund info | 查看特定退款的详细信息 |
创建结账会话。
| 命令 | 说明 |
|---|
dodo checkout new | 创建新的结账会话并获取结账 URL |
结账命令支持高级选项,包括最小地址采集、返回 URL、强制 3D Secure、折扣码和元数据。
Webhook 测试
CLI 提供两个强大的工具用于开发期间测试 Webhook:一个 监听器 将实时测试 Webhook 转发到你本地服务器,另一个 触发器 将模拟 Webhook 有效负载发送到任意端点。
监听 Webhook
实时将 Dodo Payments 的 Webhook 转发到你的本地开发服务器。
Enter your local endpoint URL
提供你希望接收 Webhook 的本地 URL(例如 http://localhost:3000/webhook)。
Automatic setup
CLI 会自动在你的 Dodo Payments 账户上创建 Webhook 端点(若尚未存在),然后打开 WebSocket 连接以实时接收事件。
Receive and forward
当 Webhook 事件触发(来自测试支付、订阅更改等)时,CLI 会接收它,记录事件类型,并将带有头部和主体的完整请求转发到你的本地端点。端点的响应也会被记录并返回。
Webhook 监听器仅适用于 测试模式 API 密钥。请确保在使用 dodo wh listen 之前已使用测试模式密钥登录。
监听器在转发到本地端点时会保留原始 Webhook 头部(webhook-id、webhook-signature、webhook-timestamp),以便你测试签名验证逻辑。
触发测试 Webhook
向任意端点发送模拟 Webhook 有效负载,便于快速测试,无需创建真实交易。
此过程会引导你:
- 设置目标 端点 URL
- 可选地配置 商户 ID、产品 ID 和 元数据
- 从交互式菜单中选择要触发的特定 事件
- 发送模拟有效负载并查看响应
每次事件后你都可以选择触发另一个事件或退出 —— 便于在一次会话中测试多个事件处理程序。
触发工具发送的模拟有效负载不包含 Webhook 签名。测试时,请在你的 Webhook 处理器中使用 unsafe_unwrap() 替代 unwrap(),以禁用 Webhook 签名验证。
支持的 Webhook 事件
| 类别 | 事件 |
|---|
| 订阅 | subscription.active, subscription.updated, subscription.on_hold, subscription.renewed, subscription.plan_changed, subscription.cancelled, subscription.failed, subscription.expired |
| 支付 | payment.success, payment.failed, payment.processing, payment.cancelled |
| 退款 | refund.success, refund.failed |
| 争议 | dispute.opened, dispute.expired, dispute.accepted, dispute.cancelled, dispute.challenged, dispute.won, dispute.lost |
| 许可证 | licence.created |
环境变量
| 变量 | 描述 |
|---|
DODO_WH_TEST_SERVER_URL | 覆盖 dodo wh listen 使用的默认 Webhook 中继服务器 URL |