Skip to main content

介绍

在支付事件发生时运行 Inngest 函数和后台任务。Dodo Payments 会将每个事件发送到 Inngest,您的函数可以在其中发送通知、更新数据库,并借助 Inngest 的重试和错误处理功能运行多步骤工作流。
您需要一个 Inngest webhook URL。您可以在 Inngest 控制台的 Manage → Webhooks 下创建该 URL。

开始使用

1

Open the Webhook Section

在 Dodo Payments 控制面板中,前往 Developer → Webhooks,然后点击 Add endpoint。
Add endpoint dialog with Inngest selected in the Integration dropdown
2

Select Inngest

在 Integration 中选择 Inngest。在 Subscribed events 下,选择应触发函数的事件。
3

Create an Inngest Webhook

在 Inngest 控制台中,打开 Manage 标签页并选择 Webhooks。创建一个 webhook 并复制其 URL。Inngest 会在每个请求上运行 webhook 的转换函数,因此请确认该函数保留了您的函数所需的 name 和 data 字段。
4

Paste Webhook URL

将 Inngest webhook URL 粘贴到 Endpoint URL 中。
5

Configure Transformation

在 Transformation code 中编辑代码,以便为 Inngest 函数格式化事件。请参阅下面的示例。
6

Test & Create

在 Test this code 下选择事件类型,然后点击 Simulate,使用示例负载运行转换。然后点击 Create endpoint 以激活集成。
7

Done

Dodo Payments 事件现在会触发您的 Inngest 函数。

转换代码示例

每个示例都会将 webhook.payload 重写为 Inngest 事件。name 是函数触发所依据的事件,data 存储事件详情,user 存储客户信息,ts 是以毫秒为单位的事件时间,这是 Inngest 的事件格式所要求的。

基本事件负载

basic_event.js

订阅事件处理程序

subscription_event.js

争议事件处理程序

此处理程序会转发每个 dispute.* 事件,并将 dispute.opened 标记为紧急。争议负载不包含客户详情,因此不会发送 user 对象。
dispute_event.js

Inngest 常见使用场景

  • 发送确认邮件
  • 更新客户记录
  • 处理退款
  • 生成发票
  • 更新库存
  • 欢迎新订阅者
  • 处理取消
  • 发送续订提醒
  • 更新计费周期
  • 处理失败的支付
  • 更新收入指标
  • 跟踪客户行为
  • 生成报告
  • 将数据同步到分析平台
  • 计算流失率

提示

  • 使用描述性事件名称。Inngest 建议在名称前加上来源前缀,例如 dodo/payment.succeeded。
  • 将客户详情放入 user,Inngest 会对静态数据进行加密。
  • 从 webhook 的 timestamp 设置 ts,并使用毫秒为单位,这样事件可以保留原始顺序和时间。
  • 在不同事件之间使用相同的数据结构。
  • 使用 Inngest 的重试和错误处理功能。

故障排除

  • 检查 endpoint URL 是否与您的 Inngest webhook URL 匹配,并确认 webhook 处于活动状态。
  • 检查您的 Inngest 函数是否已部署并处于活动状态。
  • 检查事件名称是否与函数触发器匹配。
  • 查看 Inngest 函数日志中的错误。
  • 检查负载结构是否符合 Inngest 事件格式。
  • 检查事件名称的格式是否正确。
  • 检查 Inngest webhook 的转换函数是否保留了 Dodo Payments 转换所设置的字段。
  • 检查是否包含所有必需字段。
  • 使用 Inngest 的 webhook 测试工具进行测试。
最后修改于 2026年9月26日