事件订阅 / 订阅与接收指南
订阅与接收指南
配置与接收流程
- 在 ABC 对接群联系客服申请事件订阅,说明需要订阅的事件,并提供接收事件的请求 URL;订阅由平台配置。
- 确认应用已授权到对应门店,且事件在当前产品线可用。未订阅的事件不会推送。
- 确认平台能够访问回调地址,按需配置网络白名单。
- 平台以 POST 推送事件;接收端校验签名并返回应答。
推送请求
平台以 POST 推送,Content-Type: application/json。单次请求超时 3 秒;失败最多重试 2 次,同一事件最多推送 3 次。
| 请求头 | 类型 | 说明 |
|---|---|---|
sign | string | 请求签名。算法与接口签名一致;path 为完整回调 URL,clinicId 参与计算,用于判断请求来源 |
ts | string | 秒级 Unix 时间戳 |
appId | string | 应用 ID |
clinicId | string | 门店 ID |
请求体
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 事件 ID;同一次推送及其重试保持不变 |
eventName | string | 事件名称 |
eventModule | integer | 事件模块编号 |
eventType | integer | 具体事件编号 |
clinicId | string | 门店 ID |
eventData | object | 事件数据,结构由具体事件决定 |
callbackCount | integer | 推送第几次;第一次为 1,第一次重试为 2 |
事件消息不使用 API 的 data/error 包装。
应答与失败反馈
只有 HTTP 200 表示推送成功,其他状态码均视为失败。
失败通知为可选能力
默认关闭。如需将失败响应推送到企业微信,请联系 ABC 客服在平台后台配置。
开通后,平台从失败响应的 Body 中提取推送内容:
| 失败响应 Body | 企业微信推送内容 |
|---|---|
| JSON,含 message | message 字段的值 |
| JSON,含 error | error 字段的值 |
| JSON,含 error 和 message | 两个字段组成的 JSON |
| 其他 | 整个 Body |
推送内容支持企业微信 Markdown,最长 512 个字符。
企业微信消息示例刚刚
ABC 开放平台
[事件推送失败] 101-收费完成事件
调用返回:门店不存在或未授权,请检查 clinicId
事件回调公网 IP
平台事件回调请求来自以下公网 IP;配置网络白名单时,按实际接入地址放行:
| 接口地址 | 回调公网 IP |
|---|---|
open.abcyun.cn | 47.102.100.91 |
open-region2.abcyun.cn | 121.41.56.40 |
接收端建议
在 3 秒内返回 HTTP 200。耗时业务应先可靠落库或入队,再异步处理。
以 id 做幂等控制:同一次推送的重试使用相同 id,callbackCount 会递增。不要依赖严格顺序或固定重试间隔。