Skip to content
现货手册 · 核心交易流程 / TGEX KNOWLEDGE BASE

手续费计费落地 ​

手续费在**成交瞬间**于撮合内存账本上计算并扣减;费率来自内存配置缓存,扣完后的商户 / 平台份额先写入账户格子上的暂存字段,再由旁路结算。本页把「规则假设 → 缓存 → 成交计费」接成一条读线。

教学假设数字见业务概述 · 手续费;规则轴见交易规则 · 精度与手续费。成交动作总表见撮合主流程。

费率从哪来 ​

成交计价前,撮合按用户、商户、币种、交易对、方向解析费率,主要读:

缓存贡献什么
用户手续费缓存VIP 等级与买/卖基础费率
平台币抵扣缓存是否用平台币抵扣、抵扣比例
高频手续费缓存指定交易对卖单递增惩罚
商户分成比例缓存商户从手续费中分成的比例

初始化时装入,见撮合初始化链路。无等级或未命中时的默认费率以产品配置为准,本文不固化具体缺省值。

成交时做什么 ​

一笔成交在撮合处理链上,与划转同一事务语义内大致包括:

  1. 算费:按成交额(或产品约定基数)× 适用费率;若开启平台币抵扣,先按抵扣规则拆出抵扣部分。
  2. 扣用户:从用户获得币或支付币中扣除(扣费币种以产品为准);对应改用户币币账户缓存 的可用 / 冻结。
  3. 记暂存:商户份额累加到该用户币种格子的 paTotal,平台份额累加到 adTotal(命名以工程字段为准)。
  4. 落缓冲:账户与成交明细写入 Redis,供异步刷库与后续结算任务消费。

要点:

  • 计费时机是成交,不是下单冻结。下单预占通常按价量(及规则要求的费用缓冲);真正扣费在成交支。
  • 暂存 ≠ 已打给商户。paTotal / adTotal 是撮合热路径上的累计坑,结算 / 分成由账务或批处理旁路消化。
  • 业务概述教学表可先忽略费用;加上费用后,买方净得或卖方实收会略少于「裸成交量」。

和旁路的关系 ​

成交计费(撮合内存)
    → Redis 账户 / 流水量
    → 异步刷库
    → 账务或结算任务按暂存与流水做分成 / 归集

账务批处理侧会消费与手续费相关的结果消息,见账务初始化链路。对账时费用流水应能解释「用户少了多少 ↔ 商户 / 平台多了多少」,见对账与资金一致性。

本文边界 ​

对照说明
撮合主流程成交总动作;本文展开其中「计手续费」
用户币币账户缓存paTotal / adTotal 字段含义
费率类缓存 070806–070811计费输入
maker/taker 分档、抵扣币种清单以产品配置为准,不在此枚举
商户结算打款日切不展开

同组:撮合主流程 · 用户手续费缓存 · 用户币币账户缓存 · 业务概述

TGEX · 交易所设计与业务流程