Bladeren bron

036 同步plan与两端展示文档:建批逐店提交付款方式与即时开放口径

plan.md 落实 2026-10-21 口径:建批时逐店选择方式、到付当场确认、全到付可建批即激活但以实际开放为准;提交后即时尝试开放、分钟任务仅补偿。frontend-display-plan.md 同步用户卡与待付款分类展示(新批次均已选方式、历史未选兼容)。
qmj 2 dagen geleden
bovenliggende
commit
56498975ab
2 gewijzigde bestanden met toevoegingen van 18 en 18 verwijderingen
  1. 3 3
      specs/036-multi-store-checkout/frontend-display-plan.md
  2. 15 15
      specs/036-multi-store-checkout/plan.md

+ 3 - 3
specs/036-multi-store-checkout/frontend-display-plan.md

@@ -30,7 +30,7 @@
 
 多店卡头显示“多店订单 · N 家店”、下单时间及批次当前阶段;卡内逐店显示店名、商品摘要、该店实付、付款方式、支付确认及履约状态。摘要同时列出创建时订单总额、线上已实收、已退/退款中及到付约定待收,不能把到付确认标成已经扣款。原总额及各店折后金额保持创建快照,取消和退款另列分项,不向剩余成员补差,也不把不同资金方向混成一个付款成功金额。
 
-未生效时显示“已确认 X/N 家”、支付发起截止、必要的核实中状态和“继续结算”。点击进入批次收银进度页,用户可以定位未就绪的店。截止后的缓冲期显示“付款结果核实中”,不再提供新发起、重试、换方式或到付确认;批次取消后显示各店真实退款进度。
+未生效时显示“已确认 X/N 家”、支付发起截止、必要的核实中状态和“继续结算”。建批时已逐店选择方式,到付店当场确认为就绪;点击进入批次收银进度页,用户可定位尚未线上付款的店。截止后的缓冲期显示“付款结果核实中”,不再提供新发起、重试或改选;批次取消后显示各店真实退款进度。
 
 未生效预约核实齐付款时若已到或超过原预约结束,显示预约已过期、订单已取消及真实退款进度,不进入进行中、不自动转即时。建批后地址及坐标为快照,只读展示;修改地址簿不改变这批订单,页面不提供逐店改址。
 
@@ -42,7 +42,7 @@
 
 | 页签 | 036 批次规则 |
 |---|---|
-| 待付款 | `PENDING` 批次,包括未选方式、部分付款、到付待确认、线上结果核实中;已付成员仍显示在同卡内 |
+| 待付款 | `PENDING` 批次,包括部分线上付款、线上结果核实中;新建成员均已选方式,历史未选记录仍可见,已付及到付已确认成员仍显示在同卡内 |
 | 进行中 | `ACTIVE` 且至少一个成员尚未履约结束或异常处理结束;卡内展示全部成员进度 |
 | 已完成 | 所有有效成员已结束且至少一单已送达;若另有取消成员,明确显示“部分取消”,不宣称每店都送达 |
 | 已取消 | 未生效整批取消,或生效后全部成员均已合法取消 |
@@ -101,7 +101,7 @@
 字段、分页、错误及旧 App 兼容以 [API 契约](contracts/api.md) 和 [App 接入说明](frontend-app-integration.md) 为准,再实施 T014–T018、T021。App 源码由前端人员接入;本轮只交文档,不执行 SQL,也不标记页面或接口已完成。
 
 - 普通单、多店批次、闪送混排及同时间/跨页情况,无重复、无漏单、无拆批。
-- 用户部分线上付款、全到付确认、缓冲、取消后退款、某店退款另店配送均能持续找到原批次。
+- 用户部分线上付款、建批全到付即确认、缓冲、取消后退款、某店退款另店配送均能持续找到原批次。
 - 骑手同组待抢只出现一次;两骑手竞争和旧单笔拆抢均不会部分分配。
 - A 已取/B 待取,A 已送/B 待取,部分取消等状态下,一组只在一个主流程工作页签,双进度不被汇总状态覆盖,角标和容量按组计一次。
 - 任意取餐顺序、已取成员先送达可操作,现金不包含线上已付餐费,单店操作不联动修改其他店状态。

+ 15 - 15
specs/036-multi-store-checkout/plan.md

@@ -24,7 +24,7 @@
 
 用户指出各商家可独立设置支付方式,撤回“同批统一付款方式/渠道”的建议。改为按每家店提供可用方式、用户逐店选择、子单独立保存payType;父批次只汇总,不覆盖子单。LINE/OMG/到付混用及统一生效已确认;新批次过滤转账,不改原单店流程(Q13)。预约时间改造延期见Q12。
 
-2026-10-13最新确认:逐笔收银选择方式,所有新批次共用创建起15分钟支付发起/到付确认期限;期限内服务端已记录并实际发起的线上尝试允许在默认5分钟、平台可配置缓冲内完成付款和服务端确认。创建时快照缓冲及最终确认截止;第15分钟停止新发起/重试/方式切换/到付确认,既有渠道页面可继续完成,不再要求证明用户认证/扣款均发生在第15分钟前。最后成员合法就绪即生效,无需等满缓冲;最终确认截止仍未就绪超时取消。全到付仍须逐笔确认且不是实收,不创建即生效或免期限;旧非多店规则不变。
+2026-10-21 当前口径:建批时逐店明确选择方式,到付当场确认、线上待真实付款;全到付可在建批时进入统一激活流程。所有新批次仍按创建时间快照15分钟线上发起/合法改选截止及默认5分钟可配置的最终确认缓冲;第15分钟停止新发起、重试和改选,截止前已实际发起的线上尝试可在缓冲内完成付款与核实。最后成员合法就绪即生效,但`ACTIVE`不代表组已开放;即时/已到预约时点在事务提交后立即尝试开放,未到时点及失败重试由分钟任务处理。旧非多店规则不变。
 
 ### 首店围栏与本次结算成员(用户已确认)
 
@@ -38,7 +38,7 @@
 
 复用StorePayMethodController和PaymentMethodGateService逐店查询平台/商家/凭证可用方式,不取跨店交集。2026-10-21 调整:建批请求必须逐店提交`paymentMethods:[{storeId,payType}]`,服务端与参与店及最新报价的可用方式一一核对,固化子单和成员支付方式;线上只进入`ONLINE_PENDING`,到付进入`COD_CONFIRMED`,全到付建批即可激活。幂等摘要包含逐店选项。批次待生效、操作截止前且该店没有任何网关尝试时,专用支付入口允许安全改选;一旦请求已发往网关则先核实原交易,不能换渠道。旧OrderCreateInput全局paymentMethod及旧单店行为保留。
 
-三店均参与、A选LINE/B选OMG/C选到付:C须在15分钟期限内合法确认,A/B须在该期限内由服务端记录并实际发起支付尝试,可在默认5分钟可配置缓冲内完成真实付款和核实。最后成员就绪即生效,C仅创建不就绪,不提前推送或被抢;全到付最后一单须在15分钟内确认,缓冲不允许新选择/发起/重试/切换或到付确认。两个截止在创建时固定,不因逐店付款/重试延长。
+三店均参与、A选LINE/B选OMG/C选到付:建批时C即为`COD_CONFIRMED`,A/B须在15分钟期限内由服务端记录并实际发起支付尝试,可在默认5分钟可配置缓冲内完成真实付款和核实。最后成员就绪才生效,部分就绪不提前推送或被抢;全到付建批即可激活,但实际可抢仍取决于开放时点与`opened_at`。缓冲不允许新发起、重试或改选;两个截止在创建时固定,不因逐店付款/重试延长。
 
 2026-10-21 开放执行补充:线上最后付款、到付最后确认和全到付建批在同一事务内只写 `ACTIVE` 与持久开放事件;提交后通过独立事务按批次取事件,调用与分钟任务共用的开放逻辑。即时单和已到旧预约开放时点的批次立即开放;未到时点保留 `PENDING`,分钟任务处理到点及失败/重启补偿。开放事务只写子单显示、组 `opened_at` 和事件 `OPENED`;通知仍由独立消费者处理。新版骑手列表/角标方法归 `PosOrderQsOprateController`,对外 URL 和聚合协议保持不变,旧列表只供兼容。
 
@@ -118,22 +118,22 @@
 - 用户端待付款、支付进度、退款进度仍可见,不把 isDisplay 用在用户待付款查询。
 - 同一父单的付款核销、激活、取消、超时扫描按固定锁顺序串行;数据库父行锁/CAS是最后保护,不只依赖 Redis 锁。所有路径先取得父批次锁再锁支付/子单,避免现有先锁单笔支付再锁父单与取消反向锁造成死锁。
 - 同一配送组接单顺序建议:现有骑手锁 → 组行锁 → 按 ID 顺序锁子单;全部资格、现有任务容量和组门店数校验在锁内,全部分配或全部失败,骑手锁保持到事务结束。不再检查额外子单容量;接组/取消等跨父批次与组的完整锁顺序将在 data-model/执行计划统一,不能各入口自行反向加锁。
-- 支付发起/到付确认截止=本地创建成功时间+15分钟;支付完成与确认缓冲默认5分钟、平台全局可配置;最终确认截止=前者+创建快照缓冲。配置修改只影响新批次,重试/逐店结算不续时。选择/发起/重试/换方式/到付确认检查第一个截止;既有线上尝试完成/核销/补单、生效/扫描检查发起资格、真实收款证据及最终截止。第15分钟禁止新操作但保留合法在途交易继续完成,最终截止未就绪关闭后仅记实收/退款,不复活。
+- 线上支付发起/方式改选截止=本地创建成功时间+15分钟;支付完成与确认缓冲默认5分钟、平台全局可配置;最终确认截止=前者+创建快照缓冲。配置修改只影响新批次,重试/逐店结算不续时。建批时必须已逐店选方式,到付当场确认;后续发起/重试/合法改选检查第一个截止。既有线上尝试完成/核销/补单、生效/扫描检查发起资格、真实收款证据及最终截止。第15分钟禁止新操作但保留合法在途交易继续完成,最终截止未就绪关闭后仅记实收/退款,不复活。
 - 2026-10-13用户接受明确放宽:15分钟内发起线上支付,合法既有尝试允许在缓冲内完成用户认证、付款与服务端确认;不再严格要求第15分钟前认证/扣款完成,也不只允许后台响应延迟。服务端实际发起证据与渠道实收事实分别保存,核实原订单/交易、金额、币种、商家及签名/查询结果,不能信前端点击/回跳或事后补写发起时间。全部合法事实核实后立即生效;主动取消已关闭的批次不再使用缓冲重开。
 
 ### 付款确认缓冲及渠道时间适配
 
-- 平台合并配置页维护支付完成与服务端确认缓冲(分钟),默认5,保存只接受正整数;缺失/非法/读取异常回退5而非无限。创建固定时长/两个截止,修改配置不追改旧批次。默认14:00创建→14:15支付发起/到付确认截止→14:20最终确认截止;第15分钟后禁止新发起/重试/切换/到付确认,既有合法渠道页面仍可继续完成付款。接口/前端文档须明确这项经用户确认的口径放宽,不宣称全部用户付款操作必须在15分钟内结束。
+- 平台合并配置页维护支付完成与服务端确认缓冲(分钟),默认5,保存只接受正整数;缺失/非法/读取异常回退5而非无限。创建固定时长/两个截止,修改配置不追改旧批次。默认14:00创建并逐店选方式(到付当场确认)→14:15线上发起/合法改选截止→14:20最终确认截止;第15分钟后禁止新发起、重试或改选,既有合法渠道页面仍可继续完成付款。接口/前端文档须明确这项经用户确认的口径放宽,不宣称全部线上付款必须在15分钟内结束。
 - 缓冲仅允许第15分钟前服务端已持久记录并实际发起的真实支付尝试继续完成,包含用户渠道认证/付款、回调、查询/补单及服务端确认;前端仅点击、未实际发起、失败后新重试均不因此获得缓冲资格。未知结果不能直接认定未付;未全部核实期间不给商家/骑手履约。全部合法成员就绪立即生效,不必等20分钟;最终截止仍未就绪取消,继续追踪未知交易及迟到实收退款,不能无限等待或在取消后复活。
 - OMG官方[查询订单](https://developers.omg.com.tw/payment/aio/api/04_order_query.html)提供PaymentDate;LINE官方[付款明细](https://developers-pay.line.me/zh/online-api-v4/retrieve-payment-details)提供transactionDate。渠道交易时间、服务端发起时间和本地收款核实时刻分开保存,统一时区;第15分钟截止核对实际发起资格,而不是要求渠道付款时间早于该截止。OMG现有事实对象已有paymentDate,当前LINE补单多以本地new Date记payTime,不能直接拿它冒充真实渠道付款时间。真实收款、最终确认截止和取消终态仍须核实,只在合法新批次适配,不全局改变非多店行为。
 - LINE官方[付款请求状态](https://developers-pay.line.me/zh/online-api-v4/check-payment-request-status)区分认证完成0110与付款完成0123,[confirm](https://developers-pay.line.me/zh/online-api-v4/confirm-payment)仍是服务端步骤。采用已确认的发起截止口径,不依赖官方未提供的认证完成时间来证明用户在第15分钟前完成认证;在途合法尝试可在缓冲完成认证/确认/扣款,但认证或仅有请求号不算实收。data-model/contracts须明确实际发起时间/原尝试及渠道交易关联、证据未知时核查、真实收款核实和最终截止并发;当前业务确认不等于接口已实现或验证。
 - 不以长事务锁等待外部HTTP:渠道核查和父批次状态落库分开设计,但最终生效/取消须在同一并发保护下重验状态及截止。重启扫描、回调/查询重复或乱序都不能在第15分钟提前取消应缓冲交易、重复开放或绕过最终截止。
-- 生效事务记录幂等开放通知,预约记录旧规则可执行时点,提交后且满足开放条件才发送;合并组按组、独立单按子单去重,失败可重试,取消后不开放。逐单回调/到付确认仅记事实并聚合,不直接推履约新单;用户真实支付结果通知及后续逐子单取餐/送达通知保持原职责。
+- 生效事务记录幂等开放事件;提交后独立事务立即尝试开放即时/已到预约时点批次,未到时点及失败/重启由原分钟任务补偿。开放事务写子单显示、组`opened_at`和事件`OPENED`;独立通知任务随后按组/子单推送并去重重试,取消后不开放。逐单回调/到付确认仅记事实并聚合,不在支付事务内推履约新单;用户真实支付结果通知及后续逐子单取餐/送达通知保持原职责。
 
 ### 创建校验、付款快照与旧流程隔离(用户已确认)
 
 - 新批次创建前完整校验各参与店、商品、配送资格、支付可用集合及服务端金额,成功后固化商品/价格/折后运费等快照;不能将此规则写成放松创建校验。
-- 创建后普通菜单改价、上下架、停止接新单或营业时间变化不触发重新报价/自动整批取消;用户仍可在创建起15分钟内发起支付/确认到付,既有线上尝试可在缓冲内完成。付款只基于已创建订单金额,继续验证用户归属、订单/批次未取消未过期、支付方式及凭证可用;旧尝试结果未知仍先对账,不能凭快照绕过支付保护。
+- 创建后普通菜单改价、上下架、停止接新单或营业时间变化不触发重新报价/自动整批取消;用户仍可在创建起15分钟内发起线上支付或合法改选方式,既有线上尝试可在缓冲内完成。付款只基于已创建订单金额,继续验证用户归属、订单/批次未取消未过期、支付方式及凭证可用;旧尝试结果未知仍先对账,不能凭快照绕过支付保护。
 - 真实回调/查询核销仍使用对应支付尝试的原交易及凭证快照验真,不用商家后续菜单/凭证变化抹掉已收款事实。实际不能出餐按既定子单规则,不设计结算未完成时新增商家供餐审核或菜品变化监听;快照不是库存保证,本轮不新增库存预占系统。
 - 新批次规则只用于服务端明确标识的新多店;普通创建/支付/价格/优惠/取消等不全局改写,未标识不误判未就绪或进入整批取消。唯一相关补齐是本次批准普通平台配送预约按旧时点后续扫描,不套新批次期限;单店转账、自取、自配送不改。
 - 单笔取餐/送达及结算/通知仍沿普通流程,组只汇总/去重任务。优惠、促销和发票逐单沿原有效规则;本次已确认补充新批次取消优惠券释放/返还、保留原有效期及幂等,见7.1,不全局重写普通券规则,不把返券或取消状态当作渠道退款成功。
@@ -147,7 +147,7 @@
 
 - 父单:新功能标识、生效状态、幂等号、创建起15分钟用户操作截止、确认缓冲时长快照/最终确认截止、已就绪/已实收及待核实进度、预约信息、合并/锚点和收费快照;不设唯一渠道或全到付无截止例外,状态不代表退款到账。
 - 配送组:父批次、用户/固定地址、待抢/已接/履约/结束汇总状态、骑手、版本;成员关系由子单关联表达。组内可同时有待取、配送中、已送达、合法取消等子单,不用单一组状态覆盖各单事实;汇总只用于展示及任务释放,不新增整组取餐/送达/结算行为。
-- 子单:待选/逐单所选payType、线上已付/到付已确认的就绪事实、选择顺序、运费/优惠/实付快照与原履约状态。不能用创建时默认payType=1或payStatus=1判断到付已经由用户确认;字段/派生规则在data-model统一。
+- 子单:建批时逐店所选payType、线上已付/到付已确认的就绪事实、运费/优惠/实付快照与原履约状态;新批次不产生待选状态。不能用默认payType=1或payStatus=1判断到付已经由用户确认,必须有本次明确选择;字段/派生规则在data-model统一。
 - 退款:对应子单/原支付尝试/渠道交易、凭证快照、退款原因与金额、退款业务号、处理中/结果未知/重试/成功/失败/人工处理。新功能退款记录不能与“付款成功”或“父批次取消”混为一列。
 
 用户已确认首版全局规则、不做城市/区域差异配置,最大合并门店数默认5且可配置。开关、范围、最大店数、动态折扣阶梯及支付完成/确认缓冲统一在配置页面管理;支付发起/到付确认期限固定15分钟,缓冲默认5分钟可配置,创建时固定两个截止。城市/区域覆盖留后续,本轮不加归属字段。最大店数在预结算/创建/接组重验,接单须满足原任务字典,不自动拆组,不新增子单总量上限或要求最大店数小于任务上限。
@@ -223,7 +223,7 @@
 
 整批取消。每个已付款子单退**完整实付金额,包含该单实付配送费**;未付款取消,结果未知先补查。退款实际调用使用该子单对应商家凭证/交易,不能只改 payStatus。
 
-统一15分钟是支付发起/到付确认期限,不是催到付提前交现金;默认5分钟可配置缓冲仅允许合法既有线上尝试继续完成付款和核实,不给到付追加确认机会。全到付未确认不无限保留;在途未知不能按未付款抢先取消,最终截止未就绪关闭,真实线上实收原路退,未收款到付不因payStatus=1造退款。已全部合法就绪生效后不再按结算期限取消;无人接单按FR-042接入037,不能用结算期限替代。
+统一15分钟是线上支付发起/方式改选期限,不是催到付提前交现金;到付已在建批时确认,默认5分钟可配置缓冲仅允许合法既有线上尝试继续完成付款和核实,不开放新改选。在途未知不能按未付款抢先取消,最终截止未就绪关闭,真实线上实收原路退,未收款到付不因payStatus=1造退款。已全部合法就绪生效后不再按结算期限取消;无人接单按FR-042接入037,不能用结算期限替代。
 
 支付请求在发起截止前由服务端记录并实际发起,仅代表既有交易可在缓冲继续完成,不代表已经付款或可以开放履约;须在最终确认截止前核实对应真实收款。第15分钟后禁止新的支付发起/重试/方式切换/到付确认,合法既有渠道页面可能在该时点后完成付款,这是用户已接受的口径放宽。最终截止仍不就绪或用户已主动取消则关闭;本地关闭不能保证渠道不再扣款,迟到实收持续对账退款,不重新激活。
 
@@ -272,9 +272,9 @@
 | 能力 | 输出/约束 |
 |---|---|
 | 多店预结算 | 首店锚点、同骑手本次参与店/圈外排除原因、即时/预约时段、参与店本批次可用方式(过滤转账)、原/折后运费、实付、报价版本;用户确认集合后提交 |
-| 多店创建 | 批次/子单号、待收银状态、15分钟用户截止/缓冲快照/最终确认截止;不要求提前确定方式,不创建即开放,预约沿原规则 |
-| 逐子单收银选择/到付确认 | 前15分钟选择本店可用方式,重验归属/批次/发起截止及凭证;线上真实收款核实才就绪,到付确认不扣款。缓冲禁止新的选择/发起/重试/换方式/到付确认,但允许合法既有线上尝试完成付款及确认;路径见contracts |
-| 批次详情/进度与用户列表 | 未选/部分付款/已付待整批生效/缓冲核实中均可见并恢复合法结算,展示真实付款与到付确认区别及截止;token校验归属,不能按payType空值漏单或将payStatus=1误标可履约。App只交付文档 |
+| 多店创建 | 逐店提交`paymentMethods`并核对报价可用方式,固化子单方式和两个截止;到付当场确认、全到付可创建即`ACTIVE`,但须另满足开放条件,预约沿原规则 |
+| 逐子单支付/安全改选 | 线上仍按原LINE/OMG入口发起真实支付;待生效、前15分钟且该店从未有网关尝试时,专用接口可改选本店可用方式,到付改选即确认但不扣款。缓冲禁止新发起、重试或改选,合法既有线上尝试可完成付款及核实;路径见contracts |
+| 批次详情/进度与用户列表 | 新批次已逐店选方式;部分付款、已付待整批生效及缓冲核实中均可见并恢复合法结算,历史未选记录也不漏单。展示真实付款与到付确认区别及截止;token校验归属,不能将payStatus=1误标可履约。App只交付文档 |
 | 子单支付 | 复用 LINE/OMG 真实支付入口,放行合法新批次成员,不接受客户端金额/商家凭证 |
 | 未生效整批取消 | 原子关闭批次,返回各退款真实进度,不承诺调用完成即到账 |
 | 合并配送接单 | 一次接组,返回所有子单;旧单笔接单不得拆组 |
@@ -292,9 +292,9 @@
 
 | 审查项 | 实施落点 | 约束与验收 |
 |---|---|---|
-| 4 通知 | LinePayFactService、LinePayOrderNotificationService、OmgPaymentNotifyService、DeliveryOrderNotificationService及新批次到付确认 | 支付事实先保存,全部合法就绪后持久通知事件;预约等旧时点,提交后发送,组/独立单去重及失败重试。用户付款结果与履约通知分开,后续单笔通知仍独立;FR-036/SC-024 |
+| 4 通知 | LinePayFactService、LinePayOrderNotificationService、OmgPaymentNotifyService、DeliveryOrderNotificationService及新批次到付确认 | 支付事实先保存,全部合法就绪后持久开放事件;提交后立即尝试开放即时/已到点批次,预约未到及失败由分钟任务补偿。组实际开放后独立通知消费者推送,组/独立单去重及失败重试;用户付款结果与履约通知分开;FR-036/SC-024 |
 | 5 预约开放 | UserOrderController预约初始化、DateUtil旧时间判断、PosOrder查询/更新及新增有效扫描入口 | 普通平台配送/新多店预约旧时点补扫、重启恢复、开放/通知幂等及并发;先设预约字段,新批次额外已生效,普通不套批次期限。禁复用TestTask,不新增倒推最迟接单算法,不回写历史已开放;FR-037/SC-025及FR-042/SC-030 |
-| 6 用户列表 | UserOrderController.orderList/applyTabFilter、UnifiedOrderQueryService、UnifiedOrderTab及批次详情 | 未选/部分付款/已付待生效/缓冲核实可见并恢复合法结算,真实已付与到付分开,不遗漏新批次Apple Pay;只改新批次分类,App只交文档;FR-038/SC-026 |
+| 6 用户列表 | UserOrderController.orderList/applyTabFilter、UnifiedOrderQueryService、UnifiedOrderTab及批次详情 | 新批次已选方式,部分付款/已付待生效/缓冲核实可见并恢复合法结算;历史未选可见,真实已付与到付分开,不遗漏新批次Apple Pay;只改新批次分类,App只交文档;FR-038/SC-026 |
 | 7 权威算价 | 新多店预结算/创建、OrderPromotionHelper及真实商品/规格/促销/原运费能力 | 不信客户端amount/freight/foodAmount及food价格,服务端查真实价格/归属/数量,计算优惠与折后实付;报价差异拒绝/重报不只警告,金额单位明确,支付/退款/到付/账单同快照;FR-039/SC-027 |
 | 8 优惠券 | 新批次整批/合法子单取消、PromotionUserCouponServiceImpl及Coupon Mapper条件更新 | 只返取消成员券、原有效期不延长、过期不续期;原券/原子单绑定幂等及并发核销,迟到旧取消不释放新单券,返券不等于退款到账;FR-040/SC-028 |
 | 9 归属 | 新批次/关联详情、进度、收银/取消及涉及新批次的getParentOrderDetail | token确定用户,校验父/子/组归属和关联,不能原样复用无userId过滤查询;商家/骑手限定现有授权,失败无款项/状态/返券副作用;FR-041/SC-029 |
@@ -308,7 +308,7 @@
 
 | 编号 | 问题 | 本版建议 |
 |---|---|---|
-| Q1 | 每店独立选择与混用 | 已确认逐笔收银选择LINE/OMG/到付,线上成功或明确合法确认到付才就绪,最后成员就绪激活;不能创建时判全到付或默认生效。统一期限见Q6,转账见Q13 |
+| Q1 | 每店独立选择与混用 | 当前已确认建批时逐店选择LINE/OMG/到付;线上真实成功才就绪,明确选到付即确认,全到付可建批即激活,但实际可抢以开放为准。不能服务端默认到付。统一期限见Q6,转账见Q13 |
 | Q2 | 首店围栏及圈外店的结算边界 | 已确认首店A为圆心、默认1KM可配置;圈内A/B参与本次合并结算,圈外C不建本批子单、不计金额/折扣、不等待其付款。预结算明确排除原因、确认成员后提交;C保留购物车另结算为接入建议,不自动建单。撤回C同批及有C整批禁合并两种建议 |
 | Q3 | 折后运费及到付交付 | 已确认每店原40八折后32,商家给骑手32,不另补原价差额;到付给商家=该子单应付总额−该单折后运费,向用户代收该子单总额,配送毛收入为折后运费。佣金/税沿用原规则;逐店整数新台币舍入/不分尾差亦已确认见Q8,不重复询问 |
 | Q4 | 合并组与骑手容量 | 2026-10-13最新确认:撤回双层/子单总量限制,只沿用现有外卖/闪送/总任务字典,合并组算1单、普通单算1单,原字典值不自动改写;组门店上限默认5可配置。资格、任务上限及门店数同锁校验,部分完成仍计1任务,最后有效成员结束才释放;原任务字典异常回退1任务,不新增子单字典/字段/页面项 |
@@ -331,7 +331,7 @@
 3. 完成收银/支付、15分钟发起/可配置缓冲/实际交易核实及生效;接入现有回调/查询/到付的批次通知闸门、持久幂等通知及普通平台配送/新批次预约旧时点扫描。验证部分付款无履约通知、14:14发起14:17完成合法、14:16新操作拒绝、预约按时开放/重启补扫/失败重试/取消竞争及普通兼容;新语义/倒推最迟接单不纳入;037接入和激活前预约过期检查按FR-042~043。
 4. 完成未生效整批取消/超时、生效未接单店取消全退、已接用户拒绝及已接未取商家无法供餐取消,接入LINE/OMG退款并补新批次取消成员优惠券释放/返还。验证实收/未知/迟到事实、接组/取餐竞争、重复取消幂等返券、保留原有效期、已过期不续期、旧取消不释放新单用券、其他成员不受影响;测试环境真实退款限制按6节,不新增用户审核。
 5. 完成整组抢单、原字典任务统计按组去重及组任务释放、每组门店上限校验、沿普通订单独立出餐/取餐/送达/结算/通知、折后运费与混合付款现金/账单对齐、售后任务收口及关联信息权限;验证两骑手抢同组、拆抢、跨类型/组并发、任意取餐顺序、部分已送部分待取的混合进度、单笔幂等、组任务释放、到付交付及不重复收款。不实现已撤回子单上限或全组取齐/统一送达/整组结算流程。
-6. 完成用户原列表/统一列表中新批次分类和继续结算、批次/关联详情归属、平台配置、必要PC及App接入文档,再统一业务回归/模块构建。验证未选/已付待生效/缓冲核实/Apple Pay本批子单、其他用户父/子/组ID越权及商家/骑手授权边界,App不改源码;正式退款/真实支付联调另行批准。
+6. 完成用户原列表/统一列表中新批次分类和继续结算、批次/关联详情归属、平台配置、必要PC及App接入文档,再统一业务回归/模块构建。验证建批已选方式/已付待生效/缓冲核实/Apple Pay本批子单及历史未选兼容、其他用户父/子/组ID越权及商家/骑手授权边界,App不改源码;正式退款/真实支付联调另行批准。
 
 OMG 实现按项目纪律将每个接口的代码、测试源码、规格与 SQL 作为完整批次;不反复确认已确定事项。此处并非启动新的 OMG 重做测试禁令;实际测试时机在执行任务阶段按用户要求确定。