75 lines
2.3 KiB
Markdown

# Contract: IF-EXT-008 消息触达协同接口
## 1. 合同定位
- 接口编号:`IF-EXT-008`
- 归属模块:`REV-006 / CS-006`
- 责任系统:`SYS-010`
- 调用方:`SYS-002`
- 合同类型:外部协同接口设计合同
## 2. 业务职责
`IF-EXT-008` 负责:
- 承接 `SYS-002` 传入的通知任务
- 按短信、微信公众号、站内信等渠道执行触达
- 返回受理结果,并在后续回传最终执行结果或失败摘要
`IF-EXT-008` 不负责:
- 生成催缴候选对象
- 定义催缴业务状态体系
- 决定停复水或工单联动流程
## 3. 输入合同
| 字段 | 说明 | 约束 |
|------|------|------|
| eventNo | 业务事件号 | 必填 |
| taskNo | 催缴任务号 | 必填 |
| channelType | 渠道类型 | 必填 |
| receiver | 触达对象 | 必填 |
| messageTemplateCode | 消息模板编码 | 必填 |
| messageParams | 模板参数 | 可为空对象 |
| priority | 优先级 | 可选 |
| callbackUrlOrMode | 结果回传方式 | 必填 |
## 4. 输出合同
### 4.1 受理返回
| 字段 | 说明 |
|------|------|
| accepted | 是否受理 |
| externalRequestNo | 外部请求号 |
| acceptedTime | 受理时间 |
| rejectReason | 拒绝原因 |
### 4.2 结果回传
| 字段 | 说明 |
|------|------|
| eventNo | 业务事件号 |
| taskNo | 催缴任务号 |
| deliveryStatus | 渠道执行结果 |
| deliveryTime | 执行时间 |
| externalResultCode | 外部结果码 |
| externalResultMessage | 外部结果说明 |
## 5. 边界合同
1. `SYS-010` 的执行结果不直接定义 `REV-006` 业务态,而是由 `SYS-002` 映射为 `PENDING``SUCCESS``FAIL``MANUAL_VERIFIED`
2. 若仅返回受理成功、未返回终态,则 `SYS-002` 维持 `PENDING`
3. 若外部长时间无终态回写,业务侧可通过人工核查进入 `MANUAL_VERIFIED`
4. 渠道模板、供应商协议与重试细节由 `SYS-010` 管理,不在 `REV-006` 正式设计中展开。
## 6. 失败与补偿语义
| 场景 | 协同要求 |
|------|----------|
| 渠道受理失败 | 立即回传拒绝原因,由 `SYS-002` 视情况转 `FAIL` |
| 发送成功 | 回传成功结果,由 `SYS-002``SUCCESS` |
| 发送失败 | 回传失败摘要,由 `SYS-002``FAIL` |
| 无终态回写 | 允许保留 `PENDING`,由人工补记收口 |