外观
现货手册 · 核心交易流程 / TGEX KNOWLEDGE BASE
手续费计费落地
手续费在**成交瞬间**于撮合内存账本上计算并扣减;费率来自内存配置缓存,扣完后的商户 / 平台份额先写入账户格子上的暂存字段,再由旁路结算。本页把「规则假设 → 缓存 → 成交计费」接成一条读线。
教学假设数字见业务概述 · 手续费;规则轴见交易规则 · 精度与手续费。成交动作总表见撮合主流程。
费率从哪来
成交计价前,撮合按用户、商户、币种、交易对、方向解析费率,主要读:
| 缓存 | 贡献什么 |
|---|---|
| 用户手续费缓存 | VIP 等级与买/卖基础费率 |
| 平台币抵扣缓存 | 是否用平台币抵扣、抵扣比例 |
| 高频手续费缓存 | 指定交易对卖单递增惩罚 |
| 商户分成比例缓存 | 商户从手续费中分成的比例 |
初始化时装入,见撮合初始化链路。无等级或未命中时的默认费率以产品配置为准,本文不固化具体缺省值。
成交时做什么
一笔成交在撮合处理链上,与划转同一事务语义内大致包括:
- 算费:按成交额(或产品约定基数)× 适用费率;若开启平台币抵扣,先按抵扣规则拆出抵扣部分。
- 扣用户:从用户获得币或支付币中扣除(扣费币种以产品为准);对应改用户币币账户缓存 的可用 / 冻结。
- 记暂存:商户份额累加到该用户币种格子的
paTotal,平台份额累加到adTotal(命名以工程字段为准)。 - 落缓冲:账户与成交明细写入 Redis,供异步刷库与后续结算任务消费。
要点:
- 计费时机是成交,不是下单冻结。下单预占通常按价量(及规则要求的费用缓冲);真正扣费在成交支。
- 暂存 ≠ 已打给商户。
paTotal/adTotal是撮合热路径上的累计坑,结算 / 分成由账务或批处理旁路消化。 - 业务概述教学表可先忽略费用;加上费用后,买方净得或卖方实收会略少于「裸成交量」。
和旁路的关系
成交计费(撮合内存)
→ Redis 账户 / 流水量
→ 异步刷库
→ 账务或结算任务按暂存与流水做分成 / 归集账务批处理侧会消费与手续费相关的结果消息,见账务初始化链路。对账时费用流水应能解释「用户少了多少 ↔ 商户 / 平台多了多少」,见对账与资金一致性。
本文边界
| 对照 | 说明 |
|---|---|
| 撮合主流程 | 成交总动作;本文展开其中「计手续费」 |
| 用户币币账户缓存 | paTotal / adTotal 字段含义 |
| 费率类缓存 070806–070811 | 计费输入 |
| maker/taker 分档、抵扣币种清单 | 以产品配置为准,不在此枚举 |
| 商户结算打款日切 | 不展开 |