# 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`,由人工补记收口 |