16.10 声网 RTC 频道事件回调【未执行,需三方/真实联调】

POST /tieup/api/v1/webhooks/shengwang/rtc-events
Content-Type: application/json

请求头:

参数 类型 必填 说明
Agora-Signature-V2 string 声网消息通知服务 HMAC/SHA256 签名;服务端使用后台 webhook_secret 校验
Agora-Signature string 声网消息通知服务 HMAC/SHA1 签名;当前服务端优先校验 V2

请求参数:

参数 类型 必填 说明
noticeId string 声网通知 ID,用于幂等
productId integer 产品 ID,RTC 为 1
eventType integer 声网频道事件类型,如 101=创建频道,107=通信场景用户加入,108=通信场景用户离开
notifyMs integer 通知发送时间戳,毫秒
sid string 会话 ID
payload.channelName string 声网频道名,对应房间 rtc_channel_name
payload.uid integer 声网频道内 UID
payload.ts integer 事件发生时间戳,秒

请求体示例:

{
  "sid": "C866467GVJJ54687",
  "noticeId": "2000001428:4330:107",
  "productId": 1,
  "eventType": 107,
  "notifyMs": 1611566412672,
  "payload": {
    "channelName": "sw_vc_vc202606170001",
    "uid": 135792468,
    "ts": 1611566412
  }
}

响应字段:

字段 类型 说明
code integer 响应码,成功为 200
message string 响应提示
data.ack boolean 是否确认处理
data.callback_no string 声网回调日志编号
data.verified boolean 是否验签通过
data.duplicate boolean 是否重复通知

响应示例:

{
  "code": 200,
  "message": "成功",
  "data": {
    "ack": true,
    "callback_no": "SWC2026061719590012345678",
    "verified": true
  }
}

说明:

  • 写入 tieup_shengwang_callback_log,按 callback_event_id 幂等。
  • v1 声网 RTC 频道事件回调只作为补偿增强和审计日志,不作为预约状态主来源;预约状态由统一入房接口和 Redis 延迟队列推进。
  • 声网回调验签按官方消息通知服务 Agora-Signature-V2,使用后台配置的 webhook_secret 作为客户密钥计算 HMAC/SHA256。
  • 回调失败可通过 php bin/hyperf.php tieup:async:compensate shengwang-replay --callback_no=SWC... --limit=100 重放日志处理。