SPEC 更新时间
TradeHub 新资金系统 · 前台收银台 H5

自选充值

路径:/cashier/self-select  ·  菜单:收银台 › 自选充值  ·  范围:存款首页「自选」Tab + 购买后撮合存款链路(不含取款自选)
⚠️ 来源说明:老板 TG 历史(08-18~08-30)「快捷/自选」专项口述。本页依据:老平台 H5 实页截图、Nova 原型 F-107~F-109,金额/弱反馈以 2026-09-01 技术回填为准
技术回填(2026-09-01):wallet 项目对应路由 /wallet/business(C2C 卖单列表,代码无「自选」字面命名);IM 对应 c-play 聊天室。完整对照表见 独立站 · 技术确认清单 或仓库 docs/自选充值_金额与弱反馈_技术确认.html
📌 C 币 vs 撮合(已澄清):列表「C」是库存展示单位,不等于非撮合。是否进 IM 由下单后 uiType / 通道 payModel 决定;uiType=3 跳聊天室。老板口径中的 ZHOTC/余额 C 是另一条产品线,勿与 business 卖单列表混谈。详见 §⑨。
① 范围
维度说明
入口存款首页顶栏 Segmented:快捷 | 自选(F-107)。默认 Tab、是否展示自选由后台配置。
自选态页面报价列表(C 币 P2P 市场),非通道 Grid + 金额输入区。
开单方式点报价卡「购买」(F-109)直接锁单;「确认存款」按钮。
开单后进入撮合存款沟通页(S-02),后续上传回单 / 待确认 / 完成 / 驳回 / 超时 / 取消等与 撮合支付 SPEC 共用,但首条卖方文案与金额来源不同(见 §③④)。
不含取款侧无「自选」;快捷存款 Tab;C 币钱包直充(非报价购买)见 三方支付 SPEC。
Demo 深链/cashier-prototype/index.html?screen=deposit&depositMode=custom
自选报价大厅实页
✅ 实页截图自选 Tab:筛选条 + 报价卡(名称 / 成单量 / 等级 / 可售 / 购买)。顶栏同时有余额与「订单」。
② 流程
存款首页 → 点「自选」→ 报价列表(可筛选 F-108)→ 点「购买」→ (可选)付款人姓名弹窗 → 沟通页「待付款」→ 上传回单 → 已付款待确认 → 完成 / 驳回 / 失败 / 超时 / 取消
步骤页面用户动作金额锁定时机
1自选大厅浏览 / 筛选 / 排序报价未锁定
2自选大厅点「购买」锁定depositAmount = offer.stock
3沟通页填付款人姓名(撮合路径)已锁定,不可改
4沟通页付款 + 上传回单订单卡展示锁定金额
5后续态同撮合存款详情 / 列表沿用锁定值
③ 金额展示(已定案 · 以代码为准)
✅ 下列「定案展示」= wallet / c-play 代码实装;「Nova 原型」列仅作对照,不以原型覆盖代码
③a 自选大厅(wallet · business)
展示位置定案展示数据字段 / 格式化小数单位来源
顶栏余额¥999,999(千分位)GET /counter/front/merchant/getAvailableBalance · number(分)→ Math.floor(res/100)formatNumberToThousand整数¥ 前缀前端
筛选金额区间标签1-100(示例)sellPageAmountRangeConfig · ${startAmount}-${endAmount};接口空时兜底 0-1000整数不带 CAPI 配置
报价卡「可售」可售 105 Camount raw number + 前端字面量 C整数后缀 CAPI+前端
成单量成单量99+historyChildFinishCount · >=99 显示 99+前端封顶
空列表暂无数据通用空态 pull-refresh.emptyText非 PRD 句
③b 购买开单后(wallet + c-play IM)
展示位置定案展示数据字段 / 格式化小数单位备注
购买成功 Toast成功走 uiType 外跳或 jumpToIMNova 原型有 Toast,代码未实现
购买弹窗内金额105deposit-popup · {{ info.amount }}元整数锁单前确认
卖方 IM 文本话术(WS 推送,无固定「可售」模板)msgObject.text HTML 直出订单信息卡:{quantity} c +「交易数量」
沟通页订单卡大字105c-play · Math.floor(amount) + 小字「元」整数 floor与列表 amount 同值,展示单位不同
订单列表行+105 C账单 +/- amount currencycurrency 字段非 +¥
订单详情标题105 C{{ amount }} {{ currency }}API 原值currency无单独「申请金额」字段名
实际到账105.00 等actualAmount 直接渲染;退回 reimburseAmount.toFixed(2)跟 API / 2 位手续费 feeQuantity.toFixed(2)
倒计时04:30(IM)/ 120s(wallet 通用)IM:CountDown MM:SS;wallet 通用为剩余秒数场景不同组件不同
赠送语{N}分钟内上传回单…赠送3rebateRatio×amount 截断 2 位;分钟数 ceil(rebateTimeLimit/60)2 位截断无固定「5分钟」句
③c 格式化总规则(汇总)
规则 ID规则状态
AMT-01列表库存 amount:整数 raw + 前端拼 C已定案
AMT-02筛选区间标签来自 sellPageAmountRangeConfig,格式 start-end,不带 C已定案
AMT-03IM 支付卡主金额:Math.floor(amount) +「元」;订单信息卡 quantity +「 c」已定案
AMT-04顶栏余额:分转元 floor 后千分位 + ¥ 前缀已定案
AMT-05锁单后金额不可改;quantity = amount 原样 1:1 下单已定案
AMT-06工具类:floatNumCutformatNumberToThousandmultiplyAllFloatutils/base.js);IM:formatRebateAmounttruncateMoney2Display已定案
AMT-07CNY 一律 2 位小数:弹窗整数+「元」;fee/gift 2 位截断;actualAmount 跟 API已定案
④ 提示文案(已定案 · 以代码为准)
📌 下表「定案」= 代码实装;「Nova 原型」= 仅原型/mock,未在老平台实现。弱反馈多数为 API msg 直出或前端常量 FE_LITERAL:文案,无统一 i18n key。
④a 自选大厅与筛选(wallet business)
触发定案 / Nova 原型类型messageCode / 来源
切换自选 Tab未实现 · Nova:已切换自选报价Toastwallet 无快捷/自选 Tab
切换快捷 Tab未实现Toast同上
付款方式筛选变更未实现 · 静默刷新列表filter-sort.vue · handleFilterSortChange
金额筛选变更未实现 · 静默刷新同上
可售数量排序未实现 · 三态排序仅 emithandleResidualQuantitySortAsc
筛选无结果暂无数据页内空态FE_LITERAL:暂无数据「暂无符合当前条件的报价」)
报价失效 / 购买失败接口 msg + 可选 【code】Toast无固定「报价失效」key;实名 6286;未接单 100032
购买成功未实现 Toast · 直接跳 IM/外跳proceedDepositBuy 成功分支
未勾选协议请先勾选同意后下单Toastdeposit-popup
④b 沟通页各状态(c-play IM · 购买后)

状态轴与 撮合支付 一致。下表为代码实装的固定模板;卖方首条文本话术为 WS msgObject.text 直出,前端无「已锁定自选报价」写死模板。

状态状态标签卖方首条 / 系统消息订单卡锁层倒计时 / 底栏提示完成 / 附属
待付款 待付款 WS 文本 msgObject.text(无固定自选模板) (未锁定) {MM:SS} 内付款,超时将自动取消订单 RebateTag:{N}分钟内上传回单…赠送 M 元
已付款待确认 已付款 用户发「我已支付,请查收,谢谢」+ 回单图 已付款
请等待对方查收
请等待 {MM:SS} 对方发货中... 前端推导 tradeStatus∈[3,4,6,7,8]
已完成 已完成 WS / 蒙层 已完成(StatusMask 全屏) Toast「存款已到账」;蒙层 FE_LITERAL:已完成
回单驳回 回单驳回 WS disPlayType 9 → toast msgObject.text 驳回原因跟 API content,前端不枚举 无固定「回单已驳回」key
④c 弹窗 · 强制退出 · Toast
场景定案文案类型来源
付款人姓名校验失败请输入2-20位中文或英文字符Toastc-play · payer-name-panel「请填写付款人姓名」)
付款人姓名提交成功无 Toast关面板 + sessionStorage
锁单成功无 Toast按 uiType 跳转
强制退出 · 未完成单购买订单未完成,请尽快查看!
按钮:查看 → 跳 IM
Modalwallet · ConfirmTip;counter 侧为「充值订单未完成…」
复制订单号复制成功ToastcopyToClipboard不含订单号)
取消成功刻意无 Toast(卖家侧)买家 WS 未接单:支付商家未接单,请更换通道尝试.
存款成功WS payload.title/content 或蒙层「已完成」推送/蒙层固定「存款已到账」Toast
④d 订单详情 / 列表
订单态列表状态文案详情状态文案详情操作
进行中待处理待处理
待确认待处理待处理
已完成已完成已完成
已取消已取消已取消「再来一单」→ 存款首页
驳回回单驳回回单驳回回沟通页修改
失败已失败存款失败申诉 / 重新发起
⑤ 数据来源(API 已定案)
字段含义接口 / 配置状态
amount可售库存 → 下单 quantity(1:1)POST .../buyOrder/v2/sellPage · WalletSellOrderPageVO.amount已定案
historyChildFinishCount成单量(≥99 显示 99+)sellPage 列表已定案
payTypeName支付方式名 / 通道payTypeCodeaccountTypeNamecustomTypeName已定案
giftRatio / rebateRatio赠送 / 返利比例POST .../buyOrderConfig + 列表字段已定案
筛选项付款方式、金额区间GET .../buyTradeType · BuyOrderConfigVO + sellPageAmountRangeConfig已定案
购买锁单创建存款单POST .../buyFromSellList · 入参 WalletBuyDTOpayTypeCodequantity已定案
下单结果跳转方式PlacePayOrderVO.uiType(3=IM,1/2=浏览器,4/5=USDT/ZHOTC)已定案
进行中撮合单强制退出弹窗GET .../getInProgressMatchOrder已定案
levelBadge等级标签文案matchPayLevel 等 · 实页「优质」待产品对齐待产品
默认 Tab快捷 or 自选counter 侧配置 · wallet business 无 Tab 字面待产品
⑥ 关联 SPEC
页面关系
可点击原型Demo 实现 F-107~F-109;深链 depositMode=custom
撮合支付购买后全流程、强制退出、上传回单、客服介入
老板 Bug 清单购买后 Bug 与快捷撮合共用
技术确认清单金额格式 + 弱反馈完整回填(wallet + c-play + 架构)
三方支付C 币钱包直充(非报价自选)
⑦ 业务待确认(技术已答 / 产品待决)
#主题技术结论产品待决状态
1C 币 vs 撮合列表 C = 展示单位;是否撮合看 payModel/uiType,可下撮合单与老板 08-20/08-24 口径需产品拍板表述产品
2可售 C vs 订单元同字段 amount 1:1;列表拼 C、IM 卡拼元,无汇率换算Nova 原型需对齐代码展示技术✓
3顶栏余额存款/取款页 CounterHeaderTitle 展示余额自选态是否必展示产品
4等级 badgematchPayLevel 字段存在「优质」vs「高级」文案产品
5成单量 99+>=99 封顶已定案
6金额筛选枚举API 配置 sellPageAmountRangeConfig,非写死「100C以内」Nova 是否改区间展示(不带 C)技术✓
7报价列表 APIPOST .../sellPage + GET .../buyTradeType分页/刷新策略已定案
8购买锁单 APIPOST .../buyFromSellList;失败码见 §⑨已定案
9stock 小数位整数 raw已定案
10自选默认 Tabwallet 无 Tab;counter 侧有通道切换新系统入口配置产品
11筛选 UI / Toast实装为静默刷新,无筛选 ToastNova 是否保留原型 Toast产品
12卖方锁定句IM 无写死「已锁定自选报价」模板是否要求后端推固定句产品
13小铃铛 / 待处理进行中撮合单 getInProgressMatchOrder 触发强提示与老板「C 币不提示」是否冲突产品
14赠送语rebateRatio + rebateTimeLimit 动态分钟数无固定「5 分钟」句技术✓
⑧ 技术回填摘要
✅ 完整 A/B/C/D 表(含代码路径)见 独立站 · 技术确认清单。下表为 SPEC 速查。
⑧a 金额 · 关键差异(Nova vs 代码)
展示位Nova 原型 / 截图代码定案
筛选区间100C以内1-100(不带 C)
列表可售105(无 C)105 C
订单列表+¥105+105 C
空态暂无符合当前条件的报价暂无数据
购买 Toast已选择…可售…无 Toast
⑧b 弱反馈 · 关键差异
场景Nova 原型代码定案
筛选变更付款方式:{选项} Toast静默刷新
付款人姓名请填写付款人姓名请输入2-20位中文或英文字符
复制订单号已复制订单号:{orderNo}复制成功
存款到账存款已到账 ToastWS 推送 / 蒙层「已完成」
强制退出充值订单未完成…wallet:购买订单未完成,请尽快查看!
⑨ 业务架构(金额 / 提示相关)
#问题技术回答
D1订单类型自选购买 = 卖单列表购买;按支付方式分流uiType=3 撮合 IM,1/2 外跳浏览器,4/5 USDT/ZHOTC。代码无「自选」独立订单类型名。
D2列表 APIPOST /front/buyOrder/v2/sellPageWalletSellOrderPageVOamounthistoryChildFinishCountfeeRatiogiftRatio 等);筛选项 GET .../buyTradeType
D3锁单 APIPOST /front/buyOrder/v2/buyFromSellList;失败码含 6286 实名、6265 库存不足、6276 已成交/下架、100032 未接单等;成功无 Toast。
D4C 币非撮合?不直接冲突:C 是展示单位;撮合看 PayModel.isMatchModel / typeCode;ZHOTC/余额 C 是另一条线。
链路串联
节点金额提示
sellPage 列表amount + C筛选无 Toast;空态「暂无数据」
buyFromSellListquantity = amount 1:1失败 API msg;成功按 uiType 跳
uiType=3 → IM支付卡 floor+「元」;quantity+「 c」WS 文本 / 倒计时 MM:SS / StatusMask
账单/详情amount+currency / actualAmount复制「复制成功」;结束 WS content