ENGINEERING NOTE 17 / 50 · SMS
切换接码供应商时如何保住旧订单
新订单路由可以改变,但旧订单归属不能随之改写。每单保存原供应商引用,并贯穿整个生命周期。
本文由 OPEN RAMBO 发布。工程方案和伪代码用于说明设计,不是现有产品 API 文档;示例数字均为演示。
选择与归属分离
路由策略只在创建新单时选择供应商。后续查询、取消和退款使用已保存归属。取消时读取当前默认值,会把旧供应商订单号发给另一个系统。
统一面向用户的状态
把上游状态映射到稳定产品模型,内部保留原事件分类供诊断。用户使用产品不需要供应商选择器。统一界面不能以删除失败证据为代价。
回滚只影响新流量
回滚改变未来订单分配,不原地迁移活跃订单。旧适配器保留到未完成订单和资金核对结束,移除前测试历史记录只读访问。
示意流程
create: provider = routing_policy.choose(request)
read: provider = order.provider_id
cancel: provider = order.provider_id
refund: ledger_key = order.original_debit_id如何验收
切换前后各建测试订单,核验查询和取消分别使用自身已记录供应商。