金融|适用于多业务的资金账户管理系统如何设计?( 二 )



小王染发费用为 240 元 , 前台告知小王本次消费后余额还有 340 元 。 小王纳闷了 , 上次充值消费后还剩 540 元 , 这次扣了 240, 怎么还有 340 元?
——原来是第一次小王充值消费的时候 , 前台比较忙 , 就先口头告知了小王消费后余额 , 后来忘了记录当次消费单的扣款 。 如果不是小王自己提出 , 就少扣了 40 元了 。 前台为小王的账户余额补扣了 40 元 , 目前余额为 300 元 。
我们可以看到 , 当客户选择了先充值后消费的方式 , 客户在平台中会存在可消费、可使用的资金 。
在这个过程中 , 如果没有对账户和资金进行合理的管理 , 可能出现资金管控风险 。
因此 , 针对客户的资金 , 其变动过程和变动的结果 , 需要记录下来 , 进行管理 , 以准确反映资金的变动情况和确保客户账户资金余额的正确性 。
而随着业务的发展 , 一个平台可能会产生越来越多不同类型的业务 , 需要在开展过程中应用资金账户管理系统 。
例如 A 业务部门 , 针对 A 类客户群体提供流量服务 , 需要先充值后结算抵扣;
B 业务部门 , 需要针对 B 类客户群体在移动端 app 中提供服务 , 为了在 iOS 系统中能够灵活定价商品 , 便于业务开展 , 选择了让客户先通过 app 充值虚拟币 , 再购买具体商品的模式 。

那么这时候 , 我们要如何从整体进行抽象提炼 , 设计出一个适用多业务的资金账户管理系统呢?
03 设计思路
从账户和资金这两点出发 , 分别对应增删改查这几个功能模块 。
资金账户管理的整体介绍如下:
金融|适用于多业务的资金账户管理系统如何设计?
本文插图
1. 关于账户

(1)增:创建账户
创建账户是指为某个主体建立一个新的载体 , 用于记录、整理和汇总原始资金数据 。
创建账户的出发点是即将有业务要在该载体上发生 , 业务的起点是客户要充值 。
如果该客户此前并没有对应账户 , 则需要先为客户创建账户 , 然后把相应的资金充值到账户中 , 后续客户需要使用资金时 , 也从该账户中扣款 。
创建账户的方式包括人工创建和系统创建 。
结合上文 , 当客户要充值时 , 如果客户并没有账户 , 需要先创建账户 。
这里存在的场景分别有客户经理与客户线下达成了营收 , 成单后 , 客户经理需要在平台中为客户充值款项;客户自主在线发起充值 。

在客户经理为客户创建账户并充值的场景中 , 客户经理在系统中输入相关客户信息和账户信息 , 为客户人工创建好账户;在客户自主发起充值的场景中 , 系统可以自动获取相关信息 , 由系统完成账户的自动创建 。
创建账户属性包括:业务类型、账户主体、适用体系、开票方式等 。
其中 , 业务类型是用于区分不能共用的不同业务之间的款项的标记 。
例如软件类商品、课程类商品、流量计费类商品 , 如果在业务上 , 客户就是专门为后续消费某类商品而发起的资金充值 , 相当于资金是只能给某类商品使用的 , 那么需要按照业务类型进行标记区分 。
适用体系是指当前账户内的资金能够使用的体系是什么 , 包括 iOS 和非 iOS。
因为当客户使用的系统是 iOS 时 , 通过 app 充值是走的苹果内购 , 此方式下客户充值的款项是先给到苹果公司 , 再由苹果公司与我们的平台进行结算 , 苹果公司要分成其收入的 30% 作为平台费用 , 最终平台真实收到的款项只有客户支付款项的 70%。
而其他渠道下充值 , 款项是直接给到平台的 。 这两种方式下 , 客户充值的资金流是不一样的 , 款项收到了不同商户主体下 。 苹果公司规定 , 数据不与其他系统互通 。

同时 , 客户若后续有退款、开票之类的诉求 , 也是直接联系苹果公司处理的 , 不经由我们的平台处理 。 因此 , 通过 iOS 系统和非 iOS 系统充值的款项需要进行标记区分管理 。 即同一个客户同一个 app, 如果在 iOS 系统和安卓系统中分别充值了 , 款项是不互通的 , 会存在两个账户中 , 分别对应不同的账户适用体系 。


推荐阅读