章节:Webhooks

集成

Webhooks

有些服务商会立即报告事件,而不是等到下一次同步。为此,需要在服务商处填写 VentionDesk 的 Webhook 地址。每个 URL 都只属于工作区的一个连接。

在哪里找到 URL

运维 › 来源,在对应连接上点击 “显示 webhook 地址”(仅限所有者)。API 在 GET /v1/integrations/:id/webhook 下返回同一个 URL。即使重新连接,URL 也保持不变。

服务商URL检查方式
Stripehttps://api.ventiondesk.com/webhooks/stripe/<workspace>Stripe-Signature 请求头中的签名
Sentryhttps://api.ventiondesk.com/webhooks/errors/sentry/<connection>Sentry-Hook-Signature 请求头中的签名
Bugsnaghttps://api.ventiondesk.com/webhooks/errors/bugsnag/<connection>/<secret>URL 中的密钥
Rollbarhttps://api.ventiondesk.com/webhooks/errors/rollbar/<connection>/<secret>URL 中的密钥

尖括号中的占位符由 VentionDesk 填入——请始终从“显示 webhook 地址”复制 URL,不要自行拼接。

Stripe

在 Stripe › Developers › Webhooks › “Add endpoint” 下创建,并恰好选择以下事件:

  • checkout.session.completed
  • checkout.session.async_payment_succeeded
  • checkout.session.async_payment_failed
  • charge.refunded

然后复制该端点的 签名密钥(whsec_…),并用它在 VentionDesk 中重新保存 Stripe 连接。只有这样,付款链接才会出现在发票邮件和凭证中——没有 Webhook,付款到账后 VentionDesk 也不会入账。

VentionDesk 使用该密钥检查签名(基于时间戳和请求体的 HMAC-SHA256),只接受时间戳偏差不超过五分钟的消息。与密钥模式不同的事件(例如测试模式而非生产模式,或反之)会被接收并跳过。来自 VentionDesk 付款链接的付款和退款会被入账。完整说明:连接 Stripe。

Sentry

在内部集成的“Webhooks”下勾选 “issue”,并将 URL 填为“Webhook URL”。在 VentionDesk 中填入该集成的 client secret;VentionDesk 用它检查 Sentry-Hook-Signature 签名(基于请求体的 HMAC-SHA256)。之后,新错误和重新出现的错误会立即显示。说明:连接 Sentry。

Bugsnag

在项目的 Project settings › “Integrations and email” › “Webhook” 下填入 URL,并选择 “New errors”、“Frequently occurring errors” 和 “Reopened errors”。Bugsnag 不签名,因此密钥位于 URL 中并被比对。说明:连接 Bugsnag。

Rollbar

在项目的 Settings › Notifications › “Webhook” 下填入 URL,并启用 “New Item”、“Reactivated Item”、“Resolved Item” 和 “10^nth Occurrence”。与 Bugsnag 一样,密钥位于 URL 中。说明:连接 Rollbar。

VentionDesk 只从错误追踪器获取元数据——ID、截短的标题、级别、状态、计数、首次和最近一次出现时间以及链接。堆栈跟踪、事件正文、用户数据和 IP 地址留在服务商处,即使它们随 Webhook 一起发来。

GitHub

GitHub 无需填写任何内容:VentionDesk 应用安装后,会自动投递 push、拉取请求、检查运行和部署状态。参见 连接 GitHub。

VentionDesk 如何响应

  • 每次投递只计一次。 具有相同 ID 的重复投递会被识别,不会重复处理。
  • 签名错误或密钥错误: 投递被拒绝。
  • 如果 VentionDesk 无法保存某次投递,它会返回错误而不是 200——服务商随后会重新投递,不会有任何内容悄无声息地丢失。
  • 每个 Webhook 路由对每个 IP 地址每分钟最多接受 600 次投递。
Webhooks | VentionDesk 文档