fix: enforce carrier-specific channel group routing
This commit is contained in:
@@ -248,16 +248,27 @@
|
||||
### TC-ADMIN-004 通道组与路由规则
|
||||
|
||||
- 优先级:P0
|
||||
- 前置条件:存在主通道和备用通道。
|
||||
- 前置条件:存在移动、联通、电信专属通道和三网通道,存在主通道和备用通道。
|
||||
- 步骤:
|
||||
1. 创建通道组。
|
||||
2. 添加主通道优先级 10、备用通道优先级 20。
|
||||
3. 创建租户/应用维度路由规则。
|
||||
4. 创建发送任务触发送链路。
|
||||
1. 创建移动通道组、联通通道组、电信通道组。
|
||||
2. 尝试创建三网通道组。
|
||||
3. 在移动通道组中添加 mobile item,引用移动通道或三网通道。
|
||||
4. 尝试在移动通道组中添加 unicom item 或引用电信专属通道。
|
||||
5. 尝试在移动通道组中添加山东省网 item,但引用发送地区为河南的通道。
|
||||
6. 在同一通道组中为山东省重复添加第二个省网通道。
|
||||
7. 添加主通道优先级 10、备用全国通道优先级 20,并尝试添加另一个优先级 20 的全国通道。
|
||||
8. 创建租户/应用维度路由规则。
|
||||
9. 创建发送任务触发送链路。
|
||||
- 预期结果:
|
||||
- 只能创建 mobile/unicom/telecom 通道组,三网通道组被拒绝。
|
||||
- 通道组明细 carrier 必须等于通道组运营商。
|
||||
- 通道组明细引用通道时必须满足通道本体能力兼容:移动组只允许 mobile/all,联通组只允许 unicom/all,电信组只允许 telecom/all。
|
||||
- 省网 item 的省份必须与通道发送地区一致。
|
||||
- 同一通道组内同一省份只能配置一个通道,全国通道可配置多个但优先级不能重复。
|
||||
- 路由优先命中租户/应用规则。
|
||||
- 主通道 active 时选择主通道。
|
||||
- 主通道 disabled 时选择备用 active 通道。
|
||||
- 通道组不支持权重分流,同优先级全国通道配置被拒绝。
|
||||
|
||||
### TC-ADMIN-005 签名报备任务生成与导出
|
||||
|
||||
@@ -286,6 +297,7 @@
|
||||
- 报备任务状态变为 approved。
|
||||
- 签名 `reportStatus` 同步为 approved。
|
||||
- 报备记录包含 receipt_import。
|
||||
- 发送前仅允许使用最终选中通道上报备状态为 approved 的签名。
|
||||
|
||||
### TC-ADMIN-007 报备回执导入失败
|
||||
|
||||
@@ -613,11 +625,12 @@
|
||||
### TC-BILLING-003 submit 成功扣费
|
||||
|
||||
- 优先级:P0
|
||||
- 前置条件:计费口径为 submit_success。
|
||||
- 前置条件:企业应用已配置客户单价,发送任务已冻结预算。
|
||||
- 步骤:模拟 Gateway 返回 submit accepted。
|
||||
- 预期结果:
|
||||
- 生成 charged 流水。
|
||||
- 短信计费记录状态更新为 charged。
|
||||
- 扣费金额按企业应用客户单价计算,不按通道成本价或运营商差异价计算。
|
||||
- 可按 messageId 对账。
|
||||
|
||||
### TC-BILLING-004 最终失败退款
|
||||
@@ -629,6 +642,7 @@
|
||||
- 短信状态 failed/undelivered。
|
||||
- 生成 refunded 流水。
|
||||
- 退款金额与原扣费一致。
|
||||
- 重复 failed receipt 不重复退款。
|
||||
|
||||
### TC-BILLING-005 72 小时超时退款
|
||||
|
||||
@@ -709,6 +723,7 @@
|
||||
3. 查询 submit record、trace 和路由日志。
|
||||
- 预期结果:
|
||||
- 系统按可配置前缀正则识别运营商,并按手机号段库查询省份和城市。
|
||||
- 手机号段 carrier 仅作为后台校验或提示,不改变正则识别出的发送运营商。
|
||||
- trace 记录识别出的运营商、省份和城市。
|
||||
- 路由优先选择山东省网通道 A。
|
||||
- Gateway SubmitCommand 的 channelId 为 A。
|
||||
@@ -741,6 +756,7 @@
|
||||
- 补发不跨出企业应用授权通道组。
|
||||
- 原失败原因、补发次数、前后 channelId 和状态流转在 trace 中可查。
|
||||
- 最终成功只按企业应用客户费率扣一次,不按通道成本价重复扣费。
|
||||
- 补发选择通道时使用当前通道组配置,并重新校验新通道上的签名报备状态。
|
||||
|
||||
### TC-SEND-015 企业应用通道组保存校验
|
||||
|
||||
@@ -768,17 +784,21 @@
|
||||
- 联通号码进入联通通道组。
|
||||
- 电信号码进入电信通道组。
|
||||
- 运营商识别失败时进入移动通道组。
|
||||
- 若手机号段库 carrier 与正则识别结果冲突,以正则识别结果为准,号段 carrier 仅记录为提示信息。
|
||||
|
||||
### TC-SEND-017 三网通道作为运营商通配
|
||||
|
||||
- 优先级:P0
|
||||
- 前置条件:企业应用绑定移动通道组;移动通道组内无可用移动全国通道,但有可用三网全国通道。
|
||||
- 前置条件:企业应用绑定移动通道组;移动通道组 carrier 为 mobile;组内明细 carrier 为 mobile;组内无可用移动全国通道,但有可用三网全国通道。
|
||||
- 步骤:
|
||||
1. 提交移动号码。
|
||||
2. 触发送 worker。
|
||||
3. 查询 submit record 和 trace。
|
||||
4. 将同一三网通道放入联通通道组,再提交移动号码。
|
||||
- 预期结果:
|
||||
- 三网通道可作为移动、联通、电信的通配通道参与路由。
|
||||
- 三网通道本体 `channel.carrier=all` 只表示通道能力,可被运营分配到移动、联通或电信通道组。
|
||||
- 移动号码只会选择移动通道组内 `item.carrier=mobile` 且通道本体为 mobile/all 的通道。
|
||||
- 放入联通通道组的三网通道不能被移动号码选中。
|
||||
- route/trace 标明实际命中的三网通道。
|
||||
|
||||
### TC-SEND-018 失败补发停止条件
|
||||
@@ -798,6 +818,33 @@
|
||||
- 超过通道组补发时间上限不触发补发。
|
||||
- 通道组关闭失败补发时不触发补发。
|
||||
|
||||
### TC-SEND-019 迟到旧通道回执不覆盖最终成功
|
||||
|
||||
- 优先级:P0
|
||||
- 前置条件:短信首次通过通道 A 发送失败并补发到通道 B,通道 B 已返回 delivered。
|
||||
- 步骤:
|
||||
1. 查询短信记录列表,确认该短信当前状态为 delivered,channelId/gatewayMessageId 为通道 B。
|
||||
2. 模拟通道 A 迟到的 failed receipt。
|
||||
3. 查询短信记录列表、短信详情弹窗、回执历史和账单流水。
|
||||
- 预期结果:
|
||||
- 短信记录列表仍展示最终 delivered 状态,不被通道 A 的 failed receipt 覆盖。
|
||||
- 短信详情弹窗可见通道 A 的历史 failed receipt。
|
||||
- 不产生重复退款,也不改变已成功短信的最终计费状态。
|
||||
|
||||
### TC-SEND-020 重复回调幂等
|
||||
|
||||
- 优先级:P0
|
||||
- 前置条件:存在一条已 submit accepted 并完成账务扣费的短信。
|
||||
- 步骤:
|
||||
1. 连续发送两次相同 submit accepted 回调。
|
||||
2. 连续发送两次相同 failed receipt 回调。
|
||||
3. 查询短信记录、提交记录、回执记录、短信计费记录和账户流水。
|
||||
- 预期结果:
|
||||
- 提交/回执历史可追踪,但短信最终状态按最新有效尝试处理。
|
||||
- accepted 不重复扣费。
|
||||
- failed receipt 不重复退款。
|
||||
- 账户流水、短信计费记录和 reconciliation 无重复金额。
|
||||
|
||||
### TC-SEND-004 SubmitResult accepted
|
||||
|
||||
- 优先级:P0
|
||||
|
||||
Reference in New Issue
Block a user