优化
This commit is contained in:
+2
-2
@@ -4,9 +4,9 @@
|
||||
|
||||
## 当前确认:一件代发客户资金账户(2026-09-05)
|
||||
|
||||
当前对话已将资金账户作为一件代发的前置节点重新纳入范围,并覆盖本文后续历史章节中“钱包不做”的旧结论。首批固定为 CNY。账户分别保存实际余额、冻结金额、授信额度、已用授信和冻结授信;`总可用余额 = 实际余额 + 授信额度 - 已用授信 - 冻结金额`,`可用授信 = 授信额度 - 已用授信 - 冻结授信`。扣款及业务冻结先使用未冻结的实际资金,再使用授信;充值先归还已用授信,剩余金额增加实际余额。
|
||||
当前对话已将资金账户作为一件代发的前置节点重新纳入范围,并覆盖本文后续历史章节中“钱包不做”的旧结论。首批固定为 CNY。平台设置授信时必须同时设置晚于今天的到期日,最远日期不设上限;到期日当天仍有效。有效期内消费先扣实际可用资金,不足部分累计为已用授信;次日授信失效时,已用授信自动并入实际余额并允许形成负数,负数实际余额会阻止客户提交新订单。充值先归还已用授信或负余额,剩余金额才形成正数资金。
|
||||
|
||||
客户选择固定或自定义金额,查看后台配置的微信/支付宝静态收款码,付款后上传 JPG/PNG 截图形成待审核申请。平台在客户账户明细顶部审核或驳回,也可手工充值、扣款和设置客户授信额度;每次变动写不可变账户流水。新账户授信额度读取 `baiyue.finance.wallet.default-credit-limit`,默认 `0.00`,平台设置的客户额度随后独立持久化。Finance 还提供仅服务令牌可访问、按业务类型和业务单号幂等的冻结、结算和释放接口,供一件代发等模块接入。审核、账户更新、流水、冻结记录和幂等结果在 Finance 单事务内完成,文件内容仍归 File 服务。接口契约见 [客户资金账户 OpenAPI](openapi/finance-wallet-v1.yaml)。
|
||||
客户选择固定或自定义金额,查看后台配置的微信/支付宝静态收款码,付款后上传 JPG/PNG 截图形成待审核申请。平台在客户账户明细顶部审核或驳回,也可手工充值、扣款和设置客户限时授信;每次变动写不可变账户流水。新账户默认授信为 `0.00`,只有平台明确设置额度与有效期后才启用。Finance 还提供仅服务令牌可访问、按业务类型和业务单号幂等的冻结、结算和释放接口,供一件代发等模块接入。审核、账户更新、流水、冻结记录和幂等结果在 Finance 单事务内完成,文件内容仍归 File 服务。接口契约见 [客户资金账户 OpenAPI](openapi/finance-wallet-v1.yaml)。
|
||||
|
||||
> 盘点日期:2026-09-09
|
||||
> 当前状态:费用入池 P0 与对账结算 P1 已完成测试环境部署及真实 HTTP 全链验收;最终报告为 `baiyue-firstleg/reports/admin-test-env-acceptance-20260909103401.json`,1518/1518 通过。领导页面人工截图仍按独立验收规则执行
|
||||
|
||||
@@ -3,9 +3,9 @@ info:
|
||||
title: 客户资金账户、授信与充值 API
|
||||
version: 1.1.0
|
||||
description: |
|
||||
CNY 资金账户支持静态收款码、付款截图申请、平台审核、手工充扣、授信额度及业务冻结/结算/释放。
|
||||
总可用余额 = 实际余额 + 授信额度 - 已用授信 - 冻结金额;业务扣款先使用未冻结的实际资金,再使用授信。
|
||||
充值先归还已用授信,剩余部分增加实际余额。新账户授信额度由
|
||||
CNY 资金账户支持静态收款码、付款截图申请、平台审核、手工充扣、限时授信及业务冻结/结算/释放。
|
||||
授信到期日当天仍有效,次日不再计入可用余额。消费直接扣减实际余额并允许形成负数;实际余额为负时禁止提交新订单。
|
||||
充值直接增加实际余额。新账户授信额度由
|
||||
`baiyue.finance.wallet.default-credit-limit` 初始化,默认 `0.00`,平台可按客户调整。
|
||||
paths:
|
||||
/api/client/finance/v1/account:
|
||||
@@ -203,16 +203,18 @@ components:
|
||||
data: { $ref: '#/components/schemas/WalletAccount' }
|
||||
WalletAccount:
|
||||
type: object
|
||||
required: [currencyCode, actualBalance, frozenBalance, availableBalance, creditLimit, creditUsed, creditFrozen, availableCredit, version]
|
||||
required: [currencyCode, actualBalance, frozenBalance, availableBalance, creditLimit, creditUsed, creditFrozen, availableCredit, creditActive, version]
|
||||
properties:
|
||||
currencyCode: { type: string, enum: [CNY] }
|
||||
actualBalance: { type: number, format: decimal, minimum: 0 }
|
||||
actualBalance: { type: number, format: decimal, description: 实际余额;授信到期后已用额度并入此余额,可为负数 }
|
||||
frozenBalance: { type: number, format: decimal, minimum: 0, description: 实际资金冻结与授信冻结合计 }
|
||||
availableBalance: { type: number, format: decimal, minimum: 0, description: 实际可用资金与可用授信合计 }
|
||||
availableBalance: { type: number, format: decimal, description: 当前可用余额,可在授信失效后为负数 }
|
||||
creditLimit: { type: number, format: decimal, minimum: 0 }
|
||||
creditUsed: { type: number, format: decimal, minimum: 0 }
|
||||
creditFrozen: { type: number, format: decimal, minimum: 0 }
|
||||
availableCredit: { type: number, format: decimal, minimum: 0 }
|
||||
creditExpiresOn: { type: string, format: date, nullable: true, description: 授信到期日,当天仍有效 }
|
||||
creditActive: { type: boolean, description: 授信当前是否有效 }
|
||||
version: { type: integer, minimum: 0 }
|
||||
updatedAt: { type: string, format: date-time, nullable: true }
|
||||
RechargeReviewRequest:
|
||||
@@ -235,9 +237,10 @@ components:
|
||||
expectedAccountVersion: { type: integer, minimum: 0 }
|
||||
CreditLimitRequest:
|
||||
type: object
|
||||
required: [creditLimit, expectedAccountVersion]
|
||||
required: [creditLimit, creditExpiresOn, expectedAccountVersion]
|
||||
properties:
|
||||
creditLimit: { type: number, format: decimal, minimum: 0 }
|
||||
creditExpiresOn: { type: string, format: date, description: 必须晚于服务端当前日期,不限制最远日期 }
|
||||
remark: { type: string, maxLength: 500 }
|
||||
expectedAccountVersion: { type: integer, minimum: 0 }
|
||||
WalletFreezeRequest:
|
||||
|
||||
Reference in New Issue
Block a user