Skip to content

Webhook 事件推送 ​

如果你的系统需要实时感知数据变更(而非轮询),可以向管理员申请开通 Webhook 推送。

支持的事件类型 ​

事件类型触发时机
guest.created嘉宾创建成功
guest.updated嘉宾信息更新
guest.card_created通过卡片创建嘉宾成功(异步任务完成)
match.created匹配记录创建
match.status_changed匹配状态变更
membership.created会员开通
membership.expired会员过期
activity.created活动创建
activity.registered活动报名
work_wechat.created工作微信号创建
work_wechat.updated工作微信号信息更新
work_wechat.associated工作微信号关联红娘/公司/代理
work_wechat.disassociated工作微信号解绑红娘/公司/代理
work_wechat.transferred工作微信号关联转移或管理员转移
work_wechat.status_changed工作微信号启用/停用
work_wechat.deleted工作微信号删除
work_group.created微信群创建
work_group.updated微信群信息更新
work_group.associated微信群关联红娘/工作微信号
work_group.disassociated微信群解绑红娘/工作微信号
work_group.status_changed微信群启用/停用
work_group.deleted微信群删除

推送格式 ​

平台会向你配置的 webhook_url 发送 HTTP POST 请求:

json
{
    "event": "guest.created",
    "timestamp": 1722844800,
    "data": {
        "id": 1002,
        "name": "李四",
        "gender": "female",
        "company_id": 3,
        "created_at": "2025-08-05 10:00:00"
    }
}

验证推送来源 ​

每个 Webhook 请求都携带 X-Webhook-Signature 头,使用 HMAC-SHA256 签名。接收方使用分配的 webhook_secret 验证:

python
import hmac
import hashlib

def verify_webhook(payload_bytes: bytes, signature: str, webhook_secret: str) -> bool:
    expected = hmac.digest(
        webhook_secret.encode("utf-8"),
        payload_bytes,
        "sha256"
    ).hex()
    return hmac.compare_digest(expected, signature)

注意事项 ​

  • 推送失败会自动重试 3 次(间隔 30s → 2min → 10min,递增退避)
  • 你的接收端应尽快返回 2xx 响应,避免超时
  • 连续失败 10 次后 Webhook 会被自动禁用,需联系管理员重新启用