yeg
2026-09-17 0c8ea845c81f25e29b1a1ec2727cc80328ce87c1
refs
用户 yeg <1347747024@qq.com>
星期四, 九月 17, 2026 17:55 +0800
提交者 yeg <1347747024@qq.com>
星期四, 九月 17, 2026 17:56 +0800
提交0c8ea845c81f25e29b1a1ec2727cc80328ce87c1
目录 1d1f5dda82d707de5fa44d3fb5bf96df6132a521 目录 | zip | gz
parent c46ef64cd3cc90da78bc7946a9a0666d035a680e 查看 | 对比
feat(payment): 取消订单不再等关单结论,按用户意图立刻生效

真机复测后产品定案:取消是高频操作,而「等一个对账周期」是每次都要付的代价。讨论结论记在
docs/adr/0003 的 2026-09-17 修订里,那里原本就写着这条路——「关单中期间允许直接落成已取消」
的前提是「取消后收到钱能自动退回付款人」,而这个前提在票 05 的悬账自动退款落地后已经成立。

- cancel:查单明确说钱已收下 → 不取消,落成已支付并告知用户(不变,这是「不谎报钱」的底线);
查单说没收款、或通道不可达 → 立刻取消订单并按用户意图返回已取消。
- 关单改成尽力而为:它的结论只决定这次尝试的本地终态(关掉了 → CLOSED,不必再盯;
没关掉 → CLOSING/CANCEL_UNCONFIRMED,由对账继续盯着并继续关),不再挡住取消。
- cancel_requested_at(V151)降级为审计事实,删掉随之失去消费者的
cancelOrdersAwaitingCloseConclusion() 对账扫描:等待态不存在了,留着就是死状态。
- 关单回执说「原交易可能已成功」而查单又查不到时同样立刻取消,PAYMENT_CLOSE_CONFLICT 问题记录
继续留给人工,钱真进来了走悬账退款,人才端订单显示「已退款」。
- 代价明确记账在 ADR 里:偶发「用户付了钱又被自动退回」,要求支付恰好完成在「查单之后、凭证被
关掉之前」那几秒里(多是用户自己在支付途中返回又点取消);多一笔收款+退款流水,手续费大概率
不退。

回归:新增/改写五条(关单处理中即时取消、通道不可达即时取消、取消时间落库、取消后凭证仍被
关掉、已收款订单不可取消),并把「未定局凭证挡住新建」那条改用放弃支付路径触达——取消现在会
直接结束订单,不再能用来构造待支付+CLOSING 的组合。全量 369 项,仅 testing.md 记录的 3 项基线
失败。ADR-0004 里那句「5 分钟一轮」同步改成 1 分钟。
7个文件已修改
244 ■■■■■ 已修改文件
.scratch/pending-order-payment-flow/issues/04-payment-converges-per-attempt.md 1 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
.scratch/pending-order-payment-flow/issues/09-terminal-prepay-zombie-order.md 26 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
docs/adr/0003-payment-converges-per-attempt.md 32 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
docs/adr/0004-active-query-is-authoritative.md 3 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
talent-card-server/src/main/java/com/talentcard/server/business/payment/PaymentReconciliationService.java 46 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
talent-card-server/src/main/java/com/talentcard/server/business/portal/PendingOrderPortalService.java 46 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史
talent-card-server/src/test/java/com/talentcard/server/business/payment/PendingPaymentConfirmationTests.java 90 ●●●●● 对比 | 查看 | 原始文档 | blame | 历史