基于上一篇的《支付平台--账户体系之作用和分类》得出的结论,账户体系作为支付平台的核心模块,可以发展出二级账户体系,例如:积分,理财账户,信用账户,而信用账户可以基于交易等等信息流得到信用分等,进而可以做小贷等等。
一、那账户体系中都有哪些内容呢?
账户体系总的来说包括:
1、账户信息:
(1) :用户基本信息包括姓名,身份证号等实名认证信息,此外还有性别、年龄、职业、联系地址、联系电话、证件类型、电子邮件地址、工作单位、工作性质、职位等等社会属性,
如果是商户账户,则法人客户的概念同样成立,此实体应该包含了法人客户的社会属性的描述。如法人机构名称、证件类型、证件号码、联系人、联系地址、联系电话、法人机构性质等。
(2) :设备信息:所使用的设备型号,有些可能在用户同意的情况下还会收集用户的坐标地址等,小贷公司会收集用户的手机通讯录,通话记录(当你在小贷公司的平台上输入了手机运营商的密码信息,同时也就将自己的通话记录等信息暴露了),支付宝芝麻分等,这些内容可做为风控系统的基本过滤信息;权限中心给的权限。
(3):安全信息:安全验证服务等。
2、账务信息:
签约中信,虚拟账户资金(包括资金的冻结,解冻,提现,转账,扣款等)。
账户体系对应的联机记账的过程,在实际过程中会划分为客户用户信息子系统、账户子系统以及记账子系统。
二、业务设计
1、账户体系用户信息设计
个人用户还是企业用户,他们的数据都是在注册或申请时就已经固定或者修改比较少的数据,数据量也不会很大,现在支付宝和微信的用户分别是将近9亿和10.4亿,这么多用户的基本信息的数据量也不会很大,用单个库和分表可能会就能搞定,做缓存,主从,读写分离之后,应该就没问题。所以不再讨论用户基本信息内容及设计,主要讨论账户的账务业务及设计。
2、账务的业务设计
很多人会从会计学的角度来讨论在设计账户时如何设计,我本来想单纯的从开发人员的角度来讨论一下信息流的走向,但是后来觉得太片面了,因为账户的设计基本是核心模块,那就应该为整个公司的可能发展方向,和产品可能的发展路径和系统的扩展性上考虑,所以还是要先介绍会计学上的账户设计。
在会计学上,账户是根据会计科目设置的,具有一定格式和结构,用户分类反馈会计要素增加变动情况及其结果的载体。设置账户是会计核算的重要方法之一。这里提醒一句:无论作为程序员还是产品经理,做支付行业,基本的会计学知识也是必须的。
账户是有结构和内容的,账户分为左方,右方两个方向,一个登记增加(入账),一个登记减少(出账)。账户的内容包括了账户的名称(账户号),记录经济业务的日期(订单时间),所依据记账凭证的编号(订单号),经济业务摘要(做什么用的,工资扣款,缴水电费等等),借贷金额(订单金额)还有最后一个账户余额(在做了交易之后还剩多少钱)。
基本上程序员关注的,在系统记录下的就是有上面的订单要素:订单时间,商户号或者用户ID,订单号,订单金额,摘要,账户余额等。所以在程序上设计一个账户时,从账户的结构和内容上分析,一个账户需要记录账户变动的过程,也就是资金出账和入账的过程,同时还要记录下在出账或入账之后的账户余额。
账户=账户流水(入账或出账)+ 账户余额
账户的基本内容和结构:在账户的核算中(基本会在会计系统中表现出来),账户一般是“T”字账的,包括账户名称,借方,贷方,发生额(订单金额),借贷方余额和账户余额等。如下图(P2P或小贷业务中可能表现的更为贴切):
账户的内部对账是:在一个指定的核算周期内,保证余额和流水的一致性。第三方支付公司的核算周期一般是一天,也就是会每天对账,但是这个时候会有差别,在清结算的文章中我说过:不同的公司订单量和清结算的能力各不一样,只要能够在一定的周期内保持账务平衡就可以(最要不要超过一周,因为有时候银行对账文件会有问题)。
(如果具体实现是通过db的事务机制,则DB本身就可以保证两者的一致性,如果不是,比如即流水,异步落地余额的情况,则需要按每天根据流水对余额进行调整或者纠正)
账户的外部对账是:保证账户操作的流水跟外部系统相关依赖流水的一致性。
同会计科目分类相对应,账户按其提供的信息详细程度和分属关系不同分为总账账户和明细账户。
按照账户反映的经济内容不同可分为资产类账户,负债类账户(做信用小贷必须的,如花呗等等),所有者权益账户,成本费用类账户,损益类账户。
会计的要素有哪些?主要是6个方面:资产,负债,所有者权益,利润,费用,收入。
网友评论