CORE-05 积分账务、订单与支付
Core 是唯一客户账务写入方
Core 是唯一客户账务写入方。先做好积分、预留和结算,再接人民币订单与选定支付方式;所有上游支付提供方不必同时接入。
数据与代码边界
参考 new-api model/quota_reserve.go、service/billing_session.go、text_quota、topup 与 task_billing。拟新增客户资金来源/余额、流水、预留、结算、订单与支付事件;实体名称待数据设计,账务唯一键与事务是必需行为。
接口与文档输入
账务 API、OW-04、INT-01/04/05,以及运营补单/调整。充值商品与周期订阅是两种能力;同一业务服务供 HTTP 与同仓 Worker 调用。
下列路径中“拟新增”是建议落点,实际命名随代码评审确定;不表示文件、表或接口已经存在。每项交付同时包含对应 Schema、请求/响应及错误样例。
可执行任务
CORE-05.01 · 积分账户、流水与资金来源
前置:CORE-01.02/03、CORE-04.03。
实施范围:确定余额与预留的表示方式、购买/赠送来源和单位版本,新增可追溯流水与数据库唯一约束;禁止覆盖余额冒充增减。
交付物:账务实体/迁移、不变量说明和流水查询 Schema。
验收场景:余额与流水可核对;跨账户写入拒绝;精度/溢出受控;审计和业务写入的失败规则明确。
CORE-05.02 · 原子预留与预算控制
前置:CORE-05.01、CORE-04.05。
实施范围:以同一操作身份预留用户余额和 Key 限额,约定锁顺序、请求摘要和可估上限;模型无限 Key 不等于用户钱包无限。
交付物:预留领域服务、唯一键、额度上限与余额不足结果;准入适配从 CORE-06 调用。
验收场景:两个并发请求不能共花同一余额;同键同摘要返回原预留,异摘要冲突;提交失败不残留半笔扣减。
CORE-05.03 · 最终结算、释放及纠错
前置:CORE-05.02。
实施范围:用可信最终用量与价格快照结算;剩余预留释放,结算唯一;取消/超时只入待核对,不凭缺失用量当零成本。超预留的追加授权或债务策略需明确。
交付物:结算/释放领域服务、状态转移表、超预留策略与冲正关联规则。
验收场景:重复结算同结果;崩溃和响应丢失可查询;结算后释放不双退;并发追加/结算无余额穿透或丢账。
CORE-05.04 · 人民币报价、订单与充值商品
前置:CORE-05.01、已选积分与充值规则。
实施范围:实现 topup/info、报价和订单查询;订单保存人民币实付、购买/赠送积分、客户适用范围、规则版本与支付状态。支付回跳不写到账事实。
交付物:订单/商品版本迁移和 Schema;精确订单状态查询缺口按 API 提案登记。
验收场景:报价过期/改价后旧订单保持依据;下单未知可定位;客户端金额不能覆盖服务器报价。
CORE-05.05 · 选定支付提供方适配
前置:CORE-05.04、支付方式确认。
实施范围:从 new-api 选择一套需要的支付创建/查询接口,定义凭据引用、签名、金额/币种/商户校验与错误恢复,其他提供方保持关闭。
交付物:选定提供方请求/回调/查询契约与配置说明,隔离模拟和实际验收记录。
验收场景:伪造金额或商户、签名失败、支付创建超时、重复下单有明确处理;日志不含支付密钥。
CORE-05.06 · 回调到账与订单恢复
前置:CORE-05.05、CORE-05.01。
实施范围:支付事件去重、订单终态校验与积分入账原子处理;轮询/主动查询恢复未知订单;补单复用同一到账服务。
交付物:支付事件记录、回调响应、恢复作业和订单/流水关联证据。
验收场景:并发/重复/乱序回调只入账一次;合法支付未回调可核对恢复;回跳成功但未到账不会显示充值完成。
CORE-05.07 · 兑换码、周期权益与营销条件项
前置:CORE-05.01–06 中所需能力、产品启用决定。
实施范围:兑换码和订阅分别实现商品/额度/到期/扣费偏好;返利、签到、aff_transfer 不因源路由存在自动纳入首期。
交付物:每项启用条件、与人民币/积分的兼容规则及单独验收;不启用项保持不挂载。
验收场景:兑换码重复不重复入账;订阅停售与已有权益失效区分;周期重置、超额和退款按已定规则核对。
本阶段退出条件
文本链可使用已验证的预留/结算,不必等待全部支付方式。正式充值要求所选支付流程、到账恢复与一致性验收全部完成。
具体步骤的运行状态查Core 开工基线和本机工作台;完成一个步骤不自动完成整个阶段。