集成
Webhooks
有些服务商会立即报告事件,而不是等到下一次同步。为此,需要在服务商处填写 VentionDesk 的 Webhook 地址。每个 URL 都只属于工作区的一个连接。
在哪里找到 URL
运维 › 来源,在对应连接上点击 “显示 webhook 地址”(仅限所有者)。API 在 GET /v1/integrations/:id/webhook 下返回同一个 URL。即使重新连接,URL 也保持不变。
| 服务商 | URL | 检查方式 |
|---|---|---|
| Stripe | https://api.ventiondesk.com/webhooks/stripe/<workspace> | Stripe-Signature 请求头中的签名 |
| Sentry | https://api.ventiondesk.com/webhooks/errors/sentry/<connection> | Sentry-Hook-Signature 请求头中的签名 |
| Bugsnag | https://api.ventiondesk.com/webhooks/errors/bugsnag/<connection>/<secret> | URL 中的密钥 |
| Rollbar | https://api.ventiondesk.com/webhooks/errors/rollbar/<connection>/<secret> | URL 中的密钥 |
尖括号中的占位符由 VentionDesk 填入——请始终从“显示 webhook 地址”复制 URL,不要自行拼接。
Stripe
在 Stripe › Developers › Webhooks › “Add endpoint” 下创建,并恰好选择以下事件:
checkout.session.completedcheckout.session.async_payment_succeededcheckout.session.async_payment_failedcharge.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 次投递。