介绍
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。

2
Select Slack Integration
在 Integration 中选择 Slack。dashboard 会加载 Slack 转换代码,并在 How to connect Slack 面板中显示设置步骤。

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

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 的代码,或从示例开始。

7
Test and Create
在 Test this code 下选择事件类型,然后点击 Simulate。Result 会显示 Slack 将接收的消息。然后点击 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),让每条消息都显示事件发生的时间。
故障排除
Notifications Not Appearing in Slack
Notifications Not Appearing in Slack
- 检查 Slack webhook URL 是否正确,以及对应的 Slack app 是否仍处于安装状态。
- 检查转换代码是否为有效的 JavaScript。
- 检查已订阅的事件是否正在发生。要发送事件,请在 endpoint 的 Testing 标签页中使用 Send example。
- 检查 Slack app 是否已开启 Incoming Webhooks,并且可以向该频道发布消息。
Transformation Errors
Transformation Errors
- 在 Developer → Webhooks 中打开 Logs 标签页,检查失败交付的响应。
- 检查代码读取的 payload 字段是否与该事件类型对应的 event payload 匹配。
- 使用 Simulate 和示例 payload 测试代码。
- 检查代码读取的每个字段是否都存在。某些可选字段(例如
error_message)可能为null。
Missing Event Types
Missing Event Types
- 检查是否在 Subscribed events 中选择了该事件。要更改选择,请打开 endpoint,然后点击 Edit。
- 检查 Slack connector 是否支持该事件。Subscribed events 仅列出 connector 支持的事件。
- 检查转换代码是否为该事件提供了
case。示例会保留其他事件不变,而 Slack 会拒绝这些事件。