2.1 KiB
2.1 KiB
支付与客户钱包当前行为
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(钱包流水列表)。