Skip to main content
Webhook 端点是一个 HTTPS 地址。业务单元内发生事件时——报名确认、订单下单、有人在门口签到——orriven 向该地址发送 POST。接收方无需轮询开放 API。每次请求都带签名并记入记录。 端点在开发工具Webhooks 标签页中管理。一个端点属于一个业务单元,接收该单元下全部活动的事件。载荷中带有活动信息,筛选在接收侧完成。
同样的操作也可以在终端里用命令行工具完成,或由 Agent 通过 MCP 服务完成。

谁能管理端点

组织的所有者(Owner)和管理员(Admin)。端点会收到本业务单元的事件流,包括姓名与邮箱。登记端点与签发 API 密钥属于同一类权限。

登记端点

1

打开抽屉,选择「Webhooks」

抽屉标题旁的业务单元选择器决定端点归属于哪个单元。
2

新增端点

  • 端点地址——必须为 https://。仅 localhost 可使用 http://,用于本地联调。
  • 备注——可选。
  • 事件——勾选该端点需要接收的事件类型。至少勾选一项。未勾选任何事件的端点什么都不会收到,不会视为「全部」。
3

复制签名密钥

在端点上选择投递记录签名密钥显示在记录上方,并且始终可见。接收方必须持有一份副本才能验签。与 API 密钥的 Secret 不同,它可以再次查看。
4

发送测试

发送测试会向该端点排入一个 webhook.ping 事件。它与真实事件使用同一套签名、重试与记录。

事件类型

可订阅的事件与自动化使用的触发器完全相同。新增一个触发器后即可订阅。 唯一不是 Webhook 事件的自动化触发器是「活动开始前」:那是自动化自身的定时器,不是某个人或某张订单上的变化。

请求格式

每个事件一次 POSTContent-Type: application/json,用户代理为 orriven-webhooks/1.0,并携带以下请求头: 请求体为 JSON,含 idtypecreatedAtapiVersiondatadata 中的 event 块始终存在。registrationorderexhibitorcontact 在事件涉及它们时出现,否则为 null——order.expired 尚无报名,survey.submitted 没有订单。根据 type 判断应读取哪些块。
  • 金额为该币种最小单位的整数(12000 即 120.00 USD)。
  • registration.passUrl 是此人的托管入场凭证。收到 registration.confirmed 即拥有链接,无需再次调用。
  • webhook.ping 测试事件只携带 data: { "endpointId": "…" }

验证签名

每次投递都以端点的密钥按 Stripe 的方案签名:签名内容是时间戳、一个点号与原始请求体——即 t.body——v1 是它的十六进制 HMAC-SHA256。时间戳位于签名内容之内,截获的投递无法被改写日期。拒绝超过几分钟的时间戳即可防止重放。
对收到的原始字节验签——在 Express 中用 express.raw({ type: "application/json" }) 读取请求体,验签之后再解析。经解析后重新序列化的请求体无法通过校验。

投递与重试

  • 10 秒内收到任意 2xx 响应即视为送达。重定向不会被跟随,也不算成功。端点迁移后应重新登记。
  • 其余情况——非 2xx 状态、超时、DNS 或 TLS 失败——按固定时间表重试:立即一次,之后距上一次分别为 1 分钟、5 分钟、30 分钟、2 小时、6 小时。合计 6 次尝试,跨度约八个半小时。最后一次仍失败即标记为已失败,此后只能手动重新投递。
  • 投递保证至少一次,不保证恰好一次。重试与重新投递携带同一个 orriven-event-id,请以它去重。
  • 不保证顺序。 重试的事件可能晚于更新的事件到达。如需顺序,按 createdAt 排序。
  • 端点失败不会阻塞或回滚产生该事件的报名或订单。

投递记录

端点列表显示每个端点的地址、已订阅事件数、状况——「投递正常」「连续失败 N 次」或「尚无投递」——以及已启用已停用投递记录打开单个端点的记录,最新在前: 在任意一行选择重新投递,会创建一条携带原事件 id 的投递。记录仍然保留首次失败的事实。接收方可以识别为同一事件。编辑订阅修改订阅范围;此后只有勾选的事件会送达该端点。

停用端点

停用立即停止投递。该端点尚在排队的投递将以「Endpoint is disabled.」为由结束为「已失败」。启用可重新开启。端点不删除——这一行是此集成存在过的记录,其投递记录始终可查。

自动化中的 Webhook

自动化画布上的调用 Webhook 动作可以指向一个已登记的端点,而不是裸地址。已登记端点会获得签名、重试时间表与投递记录。填写裸地址则仍是一次性调用。

注意事项

  • 端点作用于整个业务单元。 没有按活动订阅。请在接收侧按 data.event 筛选。
  • 空订阅意味着什么都不发,不是「全部事件」。
  • 密钥可共享且可再次查看。 它为发往该端点的每次投递签名。一旦泄露,登记新端点并停用旧端点。
  • 只停用,不删除。 端点的变更——创建、编辑订阅、停用、重新投递——都记入审计日志
  • 平台不会停用端点。 连续失败只会更新「状况」列。停止集成是控制台操作。

相关页面

开发工具

「Webhooks」标签页所在的抽屉。

命令行工具

在终端里登记、测试与重新投递。

自动化

同一套触发器,在平台内部执行。

Agent

MCP 服务上的端点与投递工具。