Skip to content
导航

推送到 Webhook 的事件

签名方式遵循 Standard Webhooks (https://www.standardwebhooks.com) 的规范:webhook-signature 为 v1, 加上对 <webhook-id>.<webhook-timestamp>.<the body> 计算的 HMAC-SHA256 的 base64,密钥是 Webhook 机密经 base64 解码后的字节(whsec_ 之后的部分);大多数语言都有现成的校验库。响应状态为 2xx 即为推送成功;其他状态、无法连接、10 秒内没有响应都算失败,会在 5 秒、5 分钟、30 分钟、2 小时、5 小时、10 小时和 10 小时后重新发送 (--webhook-retry-seconds),之后放弃。待发送的内容保存在存储中:控制平面重启后会继续发送。同一个事件可能到达两次(响应在返回途中丢失,在这里也算失败):接收方可以凭 webhook-id 区分。发往经检查确认位于公共互联网上的地址,并通过该地址连接。

POST
eventWebhook

请求头参数

  • webhook-idstringrequired

    事件的 id:每次发送都相同。

    pattern: ^evt-[0-9a-hjkmnp-tv-z]{16}$
  • webhook-timestampstringrequired

    发送时间,自 1970 年起的秒数。

    pattern: ^[0-9]+$
  • webhook-signaturestringrequired

    v1,<base64>.

    pattern: ^v1,[A-Za-z0-9+/]{43}=$

请求体JSON必填

  • idstringrequired
    pattern: ^evt-[0-9a-hjkmnp-tv-z]{16}$
  • objectstringrequired
  • typestringrequired

    开放式的:之后新增的类型会发给接收所有类型的 Webhook,接收方应放行它不认识的类型。

  • created_atstringrequired

    控制平面记录它的时间。

    format: date-time
  • dataobjectrequired

    事件涉及的对象:其类型在 x-events 中对应的 schema。

请求示例

{
  "id": "string",
  "object": "event",
  "type": "string",
  "created_at": "2019-08-24T14:15:22Z",
  "data": {}
}

Returns

200

任何 2xx:已送达。

500

其他任何响应:按上文所述稍后重新发送。

输入以搜索……

↑↓ 切换↵ 选择Esc 关闭