Table of Contents
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重放日志处理。