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