路径均为 /system/multiStoreCheckout 前缀;用户接口使用 @RequestHeader String token,POST 使用明确 DTO 与 @RequestBody,GET 参数显式声明。App 仅据此接入,不修改 App 源码。错误响应使用现有 AjaxResult 及项目 i18n 消息,不返回硬编码单语言字符串。用户端批次卡与骑手端组任务卡、参考闪送的单工作页签/取送双进度及服务端分页建议见 两端联合方案,展示细节尚待确认;下方旧拟议 POST 路径若包含业务 ID,实施前须按用户已确认的“有 body 则业务参数统一放 body”要求收口。
| 方法与路径 | 请求关键字段 | 成功响应 | 拒绝条件 |
|---|---|---|---|
POST /quote |
地址 ID、顺序候选店与商品/规格/数量、同骑手、各店即时/预约时段 | quoteToken、有效至、锚点/围栏、参与店及逐店原运费/折后运费/商品价/实付/可选支付方式、圈外店和不兼容原因、规则版本 |
店/商品/配送资格不合格、支付方式仅转账、报价配置非法;圈外店仅报告不创建 |
POST /batches |
requestKey、quoteToken、用户明确确认的参与店 ID 列表 |
父批次号、子单号/金额/可选方式、operationDeadlineAt、finalDeadlineAt、PENDING |
报价过期、成员/地址/价格/规则变化、夹带圈外店、少于 2 店、权限不符;同用户同 requestKey 返回同批或拒绝载荷冲突 |
GET /batches/{batchId} |
token + 路径批次 ID | 批次/逐店支付选择、真实实收、到付确认、退款与履约状态、截止时间、关联订单 | 非本人批次拒绝,不暴露其他用户父/子/组 |
POST /batches/{batchId}/members/{orderId}/payment |
payType = 1/2/3/5 |
到付确认结果或线上支付凭证/跳转信息与原尝试号 | 截止后新发起、未决尝试换方式、商家不可用、金额/归属不符;6 转账始终不支持 |
POST /batches/{batchId}/cancel |
可选原因 | 批次 CANCELLED 及每店退款真实进度 |
已 ACTIVE 须走子单取消规则;退款处理中不伪称退款成功 |
POST /batches/{batchId}/members/{orderId}/cancel |
原因 | 该子单取消和真实退款进度、其他成员保持快照 | 未生效不允许单店取消;骑手已接/取餐拒绝用户取消;并发接组只能一方成功 |
回调/补单仍使用现有 LINE/OMG 入口,服务端以原订单/尝试号识别新批次成员:先验签与核实实收、落支付事实,再在事务内聚合批次;不得直接发履约新单通知。到付只表示用户确认按现有流程交餐付款,不伪称线上实收。用户列表应展示未选方式、部分付款、缓冲核实、待批次生效、退款中并提供继续结算入口;普通旧单字段语义不变。
POST /system/multiStoreCheckout/groups/accept,JSON {groupId,version},原子承接全部有效成员;旧单笔接单 API 对组成员拒绝拆抢。骑手仍逐子单取餐/送达。组详情与待抢/已接列表、角标的响应字段待联合展示方案确认后补齐,不把现有逐单列表当作已经支持组合卡。GET/PUT /system/multiStoreCheckout/config:开关、围栏米、最多店数、缓冲分钟、可增删改折扣阶梯;保存会校验并更新规则版本,仅影响新报价。平台退款跟进列表显示各商家渠道、实收、退款意图/结果/待人工处理,不提供“手工标记渠道已退款”。order_checkout_config,不占用 sys_config。GET 返回 enabled/fenceMeters/maxStores/confirmationBufferMinutes/version/tiers,其中 tiers 为门槛数字键到系数的对象;PUT 将 tiers 作为 {minimumStores,ratio} 数组传入,并回传新版本。缺表或缺行时读取保守关闭,保存拒绝并提示先执行 036 迁移;客户端旧 version 不能覆盖新配置。14:00 创建:14:15 前可发起线上/确认到付;14:14 已实际发起的线上尝试可在 14:20 前完成付款及可信确认;14:16 不可新发起或改到付;14:20 仍未全部就绪则关闭,迟到实收只退款不激活。截止在创建时快照,不因配置变更或重试延长。
普通单仍调用现有 /createOrder、LINE/OMG/到付入口并保持原校验与状态;新接口不得仅凭客户端传入的批次号放宽原入口。预约订单不重定义旧时间语义;2026-10-16 已确认新多店接入 037 现有无人接单规则,按父批次统一生效时间及实际开放时点判断,不以逐子单支付时间开始。
activatedAt,组详情返回 openedAt,并由服务端给出真实阶段/允许操作;App 不从付款时间推导无人接单倒计时。按现有阈值自动取消未承接组时,整组从待抢消失,详情保留逐店取消及退款进度,迟到实收不重开。