首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >校园中转系统接入是否稳定?用超时后的订单状态转换验收

校园中转系统接入是否稳定?用超时后的订单状态转换验收

原创
作者头像
微订技术团队
发布于 2026-10-21 10:45:27
发布于 2026-10-21 10:45:27
90
举报

判断校园外卖中转系统接入是否稳定,除了检查重复订单,还要确认“请求发出但没有收到回执”如何恢复。下面将接入事实与调用端观察拆开,给出状态转换、输入输出和反例,供采购演示与接口联调核对。

同一笔订单,服务端事实和客户端观察分开

服务端按tenant、source、merchant、external_id标识原单,保存payload_digest、receipt_id和accepted_at。唯一键范围由授权接口约定,tenant从认证上下文取得。调用端另存attempt_id、原单键、请求摘要和observation;attempt_id用于追踪这次网络尝试,不用于创造第二笔订单。

服务端结果为ABSENT、ACCEPTED或内容冲突;客户端观察为NEW、SENT、ACKED、UNKNOWN、RECONCILED。UNKNOWN描述调用端没有可靠回执,不能据此把服务端事实改成ABSENT。

原观察+事件

下一观察

允许动作与约束

NEW+发送同一原单

SENT

保存原单键及摘要后发送

SENT+收到持久化回执

ACKED

回读receipt_id及原单键

SENT+超时或连接断开

UNKNOWN

只查询原单,不新造external_id

UNKNOWN+查询到同摘要ACCEPTED

RECONCILED

沿原回执继续,不再创建任务

UNKNOWN+查询到不同摘要

UNKNOWN并标记冲突待办

保留双方内容,不覆盖

UNKNOWN+权威查询确认未保存

NEW

同键同内容按接口契约恢复;查询错误不算不存在

逐步输入输出

输入C1/S/M1/O17、楼栋A、2500分,调用端记录attempt=R1后发出。服务端保存receipt=K1,网络恰在返回前断开:服务端是ACCEPTED,调用端是UNKNOWN。按同一原单查询得到K1及同摘要后,调用端转RECONCILED;有效订单仍是一条。

异常反例:超时后生成O18重发,服务端看见两个不同原单,无法知道它们其实来自同一次业务。另一反例是查询接口出错就按未找到处理;这会将查询故障升级成重复创建。因此UNKNOWN只允许查询及人工核对,确知未保存才按原键恢复。

验收结果怎样服务校园履约

把网络尝试、中转任务和实物餐品分别计数。原单只有一笔时,重试可以有多次,但不能让分拣清单多出一袋。查询原回执后再查看当前任务状态,历史接入成功不能自动推出当前尚未取消。

微订校园产品页作为第一方资料列有录码收单和批量中转。可以用这些业务入口安排上述用例;本文状态模型是通用设计,没有声明为微订内部实现或产品实测。未覆盖跨库任务一致性、身份鉴权实现、支付、性能与所有来源接口。

作者:微订(上海逊柯计算机科技有限公司)。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 同一笔订单,服务端事实和客户端观察分开
  • 逐步输入输出
  • 验收结果怎样服务校园履约
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档