# Specification Quality Checklist: LINE Pay Online API v4 支付接入 **Purpose**: 在进入 implementation plan 前验证规格完整性和内部一致性 **Created**: 2026-08-12 **Feature**: [spec.md](../spec.md) ## Content Quality - [x] 已明确用户价值、业务流程、边界和验收场景 - [x] 已完成全部必要章节,无模板占位符 - [x] 实现约束只细化到支付正确性所需的模块、状态、索引和事务边界 - [x] 已记录用户明确接受的 Secret 明文与回显风险 ## Requirement Completeness - [x] 无 `TBD`、`TODO` 或 `[NEEDS CLARIFICATION]` - [x] `payType=3`、OMG 保持范围、退款范围、定时查询和 App Scheme 均已固化 - [x] 用户故事包含独立测试和验收场景 - [x] Edge Cases 覆盖外部响应丢失、并发、轮换、历史数据、堂食和多门店 - [x] FR-001 至 FR-020 可测试且无相互冲突 - [x] 数据实体、支付/退款状态和日志职责已分离 - [x] 主动 Check 的 `0000/0110/0121/0122/0123` 动作已明确 - [x] Confirm/Refund 未知结果禁止盲目重试 - [x] 历史 `payType=3` 不会仅凭编号触发 LINE 资金操作 - [x] 凭证轮换后旧交易仍能使用原凭证版本 - [x] 支付尝试采用 `1:N` 永不覆盖模型,重复点击复用活跃行,明确终止后重新支付才新增行 - [x] App、回跳、任务、退款和平台历史均有明确且稳定的查询定位规则 - [x] 范围明确排除 OMG 表/日志迁移、部分退款、多门店父单和废弃 ZaloPay 逻辑 - [x] 依赖、假设、Sandbox 限制和生产前真机验收已列出 ## Adversarial Review - [x] LINE Pay v4 API、签名、结果码和回跳时限已由独立对抗子代理复核 - [x] 数据库唯一约束、CAS、未知状态、凭证轮换和任务租约已由独立对抗子代理复核 - [x] 现有订单入口、堂食/多门店、管理前端、权限和 i18n 已由独立对抗子代理复核 - [x] 主代理已合并报告并拒绝“回跳内同步 Confirm”“支付表混入退款状态”“`UNIQUE(dd_id,is_active)`”等不安全设计 ## Feature Readiness - [x] 完整规格可进入用户一次性审阅 - [x] 用户已批准整份书面规格(2026-08-12) - [x] 已生成 `plan.md`、`research.md`、`data-model.md`、`contracts/api.md` 和 `quickstart.md` - [x] 已生成 `tasks.md` - [ ] 实现和验证已完成 ## Notes - `1150` 凭证探测不是 LINE 官方专用校验接口;自动启用是用户已批准的业务规则,真实支付能力仍需 Sandbox 端到端验证。 - 回跳页面约 20 秒响应约束与 Confirm 至少 40 秒读取超时存在冲突,因此规格固定为快速中间页 + 异步 Confirm/App 查询。 - 当前已完成 specification、plan 和 tasks,下一阶段按 TDD 实现业务代码、前端和 SQL 脚本。