Skip to main content

介绍

Slack 集成会将 Dodo Payments 事件(例如支付成功、订阅变更和争议)发送到你选择的 Slack 频道。你的团队可以直接在 Slack 中跟踪支付并处理争议,无需查看控制面板。
Slack connector 会将每个 Dodo Payments 事件转换为一条 Slack 消息,转换过程使用一段 JavaScript 代码,该代码会在事件发送前运行。connector 自带转换代码,因此无需编写代码即可开始使用。你需要拥有 Dodo Payments 控制面板中 Developer → Webhooks 的访问权限,以及向 Slack 工作区添加应用的权限。

开始使用

1

Open the Webhook Section

在 Dodo Payments dashboard 中,转到 Developer → Webhooks,然后点击 Add endpoint。
Add endpoint 对话框,其中 Integration 下拉菜单设置为 Custom webhook
2

Select Slack Integration

在 Integration 中选择 Slack。dashboard 会加载 Slack 转换代码,并在 How to connect Slack 面板中显示设置步骤。
Add endpoint 对话框,其中已选择 Slack,并显示 How to connect Slack 步骤
3

Create a Slack Webhook URL

在 Slack 中,为需要接收通知的频道创建一个带有 incoming webhook 的应用:
  1. 打开 api.slack.com/apps,点击 Create New App,然后选择 From scratch。
  2. 为应用命名,例如 Dodo Payments Notifications,选择你的工作区,然后点击 Create App。
  3. 在侧边栏中打开 Incoming Webhooks,并启用 Activate Incoming Webhooks。
  4. 点击 Add New Webhook to Workspace,选择频道,然后点击 Allow。
  5. 复制 Webhook URL,其开头为 https://hooks.slack.com/services/。
Slack 权限界面,其中包含频道选择器和 Allow 按钮
4

Paste the Webhook URL

将 Slack webhook URL 粘贴到 Endpoint URL 中。Slack 不需要 API key。
5

Select Events

Subscribed events 会列出 Slack connector 支持的事件。如果你更改了转换代码,请只保留该代码能够处理的事件。Slack 会拒绝不是 Slack 消息的请求,因此,转换代码未更改的事件将无法发送。
6

Customize Transformation Code

在 Transformation code 下编辑 handler,以选择哪些事件发布消息,以及每条消息的内容和格式。保留 connector 的代码,或从示例开始。
用于支付事件的 Slack handler 转换代码编辑器
7

Test and Create

在 Test this code 下选择事件类型,然后点击 Simulate。Result 会显示 Slack 将接收的消息。然后点击 Create endpoint。
Test this code 面板,其中已选择 payment.succeeded,并显示 Simulate 按钮和 Create endpoint 按钮
8

Integration Complete!

Dodo Payments 现在会将每个已订阅事件发布到你的 Slack 频道。要发布测试消息,请打开 endpoint 的 Testing 标签页,选择事件类型,然后点击 Send example。

转换代码示例

每个处理程序都会将 webhook.payload 替换为 Slack 消息,并保留 webhook.url,即传入的 webhook URL。Dodo Payments 金额以最小货币单位表示,因此示例会除以 100 并显示货币代码。对于 JPY 和 KRW 等零小数位货币,请直接使用该金额。

基本付款通知

在付款成功、失败或处理中时发布纯文本消息:
payment_notifs.js

丰富订阅通知

在订阅激活、取消或续订时,发布带有附件字段的彩色消息:
subscription_notifs.js

争议管理通知

在争议开启或败诉时发布红色消息,在胜诉时发布绿色消息:
dispute_notifs.js

全面事件处理程序

对每种事件类型以相同格式发布消息。没有自己的 case 的事件会收到一条包含事件类型和时间的通用消息:
all_events_notifs.js

最佳实践

遵循以下实践,让 Slack 通知更有用:
  • 使用带颜色和字段的消息附件,让每个事件都清晰明了且易于处理。
  • 包含金额、客户电子邮件和 ID 等关键数据,以便团队快速找到相应记录。
  • 根据事件类型匹配颜色:成功使用绿色(good),争议或失败使用红色(danger),取消使用黄色(warning),信息类事件使用蓝色(#3aa3e3)。
  • 添加时间戳(ts),让每条消息都显示事件发生的时间。
处理敏感数据:不要将完整 license key 或个人数据等敏感值发布到 Slack。请截断或掩码处理,就像全事件示例中的 license key 字段一样。

故障排除

  • 检查 Slack webhook URL 是否正确,以及对应的 Slack app 是否仍处于安装状态。
  • 检查转换代码是否为有效的 JavaScript。
  • 检查已订阅的事件是否正在发生。要发送事件,请在 endpoint 的 Testing 标签页中使用 Send example。
  • 检查 Slack app 是否已开启 Incoming Webhooks,并且可以向该频道发布消息。
  • 在 Developer → Webhooks 中打开 Logs 标签页,检查失败交付的响应。
  • 检查代码读取的 payload 字段是否与该事件类型对应的 event payload 匹配。
  • 使用 Simulate 和示例 payload 测试代码。
  • 检查代码读取的每个字段是否都存在。某些可选字段(例如 error_message)可能为 null。
  • 检查是否在 Subscribed events 中选择了该事件。要更改选择,请打开 endpoint,然后点击 Edit。
  • 检查 Slack connector 是否支持该事件。Subscribed events 仅列出 connector 支持的事件。
  • 检查转换代码是否为该事件提供了 case。示例会保留其他事件不变,而 Slack 会拒绝这些事件。
最后修改于 2026年9月26日