该文章是本人在产品项目摸爬滚打的总结,不一定权威,现将思考过程分享给大家。
以微信打印机延伸的广告交易平台,所涉及的支付交易业务为例子,业务涉及广告主充值,广告消耗,设备主获得广告利益,用户付费打印,设备主提现,系统对账,财务记账等,总结以下几个方面需求:
- 交易的需求:比如说充值、提现、扣费、余额是否充值等
- 记账的需求:根据会计的需求记录金钱的进、出
- 对账的需求:包括各方对账的需求,特别是公司对账,核对交易记录,金额是否正确等;
- 风控的需求:防止恶意的行为导致交易的发生
业务一般来说从交易开始,会涉及到资金的流动,从一个账户到另外一个账户,通过某支付平台的渠道进行流入流出,因此需要关注交易主体账户、渠道、交易对方账户这三个对象,这涉及到记账、对账的需要,明确每笔业务发生,钱从何而来,去往哪里,数量多少都要做到可追溯。
记录的信息如下,但不仅限如此:
交易主体账户ID、交易主体账户名称、交易对方的账户ID、账户名称、渠道类型、商品类别、商品的名称、发生的时间、流水号及渠道返回的订单号,如果过程中有状态的变化,需要增加状态的类型。
轧帐
一般来说,正常交易和退款都会涉及资金的变动,由于广告系统和设备系统是两个相对独立又密切关系的系统,所以对账成为必不可缺的工作,但是每天发生几十万的交易记录,人为对账显然不切实际,这里涉及内部对账和与渠道的对账。
内部对账是内部系统之间的数据核对,设备系统打印之后上报给广告平台,再由广告平台进行费用的扣减和广告收益的分配,设备系统后台记录的是打印数据,这里有两点需要注意:当业务量大或者服务不稳定的时候,容易造成数据的丢失,另外广告费用扣除的时间和打印系统打印的时间,哪一个为标准?
我们内部采取的对账方式是凌晨的时候,两个系统的原始数据进行核对,因此业务时间的唯一性很重要,原因是当23:59打印的一些数据,到00:00后才上报过来,这笔业务属于哪一天的?对账的时候需要数据查找工作,必然会影响线上业务,因此只能在凌晨业务量小的时候进行。
平账
一般来说,数据不平的情况是涉及的对象数据不匹配导致的,如:
- 设备系统记录了,但是广告没有记录,这时候需要把这笔费用扣除上;
- 广告重复扣除了费用,这时候需要手动把这笔记录删除;
- 设备系统无记录,但是广告没有重复扣除情况下,多扣除了费用,这种情况一般是设备系统本身的问题,比较少见,需要具体分析;
对于渠道商的对账也是如此,因为设备主提现或者广告主充值,都有可能涉及钱明明付出去了,但是还没到账的情况,所以需要记录渠道反馈的状态字段,以免发生不必要的纠纷。