Files
junhong_cmp_fiber/openspec/specs/order-payment-wallet/spec.md

2.1 KiB
Raw Blame History

支付与客户钱包当前行为

Purpose

描述个人客户订单、充值、钱包及支付回调共同资金不变量的当前可观察行为。

Requirements

Requirement: 金额单位

系统 SHALL 以整数分保存和计算钱包、订单、充值、退款与佣金金额。

Scenario: 金额单位

  • GIVEN 请求包含合法金额
  • WHEN 执行资金操作
  • THEN 响应与持久化金额按分精确一致且不使用浮点计算

Requirement: 支付回调幂等

系统 SHALL 验证渠道回调并只把匹配金额和待支付业务首次推进到已支付。

Scenario: 支付回调幂等

  • GIVEN 同一合法支付回调被重复发送
  • WHEN 重复调用回调入口
  • THEN 业务资金与状态只生效一次,重复回调得到渠道可接受响应

Requirement: 钱包并发

系统 SHALL 防止同一钱包并发扣款造成余额低于允许值或重复记账。

Scenario: 钱包并发

  • GIVEN 同一钱包收到并发资金请求
  • WHEN 同时执行扣款
  • THEN 最多允许满足余额与状态条件的请求成功,每笔成功只产生一条业务事实

可达操作索引

本节只用于入口导航,不是行为 Requirement业务义务以上述 Requirements 为准。

支付回调

POST /api/callback/alipay(支付宝回调);POST /api/callback/fuiou-pay(富友支付回调);POST /api/callback/wechat-pay(微信支付回调)。

个人客户 - 订单

GET /api/c/v1/orders(订单列表);GET /api/c/v1/orders/{id}(订单详情);POST /api/c/v1/orders/{id}/pay(订单支付);POST /api/c/v1/orders/create(创建订单)。

个人客户 - 充值订单

GET /api/c/v1/recharge-orders(充值订单列表);GET /api/c/v1/recharge-orders/{id}(充值订单详情)。

个人客户 - 钱包

GET /api/c/v1/wallet/detail(钱包详情);POST /api/c/v1/wallet/recharge(创建充值订单);GET /api/c/v1/wallet/recharge-check(充值前校验);GET /api/c/v1/wallet/recharges(充值记录列表);GET /api/c/v1/wallet/transactions(钱包流水列表)。