详解 | 结算系统设计

13 评论 49031 浏览 510 收藏 11 分钟

编辑导语:在生活中和企业里很多时候都会用到结算系统,在结算系统中一般会有比较复杂的流程,由很多板块组成,也有很多不同的结算方式;本文作者分享了关于结算系统设计的详细流程,我们一起来了解一下吧。

每个月公司要给员工结算工资;陈老师在京东开了一个店铺,定期京东需要给我结算货款;你请了一个保姆,每个月要给阿姨结算服务费….等等,结算场景我们并不陌生,但是怎么设计一个结算系统,你知道么!今天我们就好好聊一聊。

01 什么是结算

1. 定义

将平台的代收款结算给平台商家的资金转移过程。

展开来讲就是现在有很多平台比如滴滴,货拉拉,京东商城;作为一个服务平台上面有很多商家(我们将滴滴司机也成为商家),用户在平台购买商品或者服务,服务完成后,平台需要按照协议约定将服务款抽取一定费用后的剩余部分结算到商家的平台,结算账户中或者直接付款支商家银行账户的资金划转过程。

2. 结算名词解释

02 结算的模式

结算我们常见的有2种模式:

  • 结算到银行卡:直接将结算款项直接付款到商家签约的结算银行卡账户中;
  • 结算到虚拟户:将虚拟结算款结算入账到商家在平台开通的结算户中,后续可以商家自主提现。

像微信支付宝在开通支付产品时都会获得一个商户号,每个商户号会有一套账户用于收款和结算,并且签约绑定一张结算卡,次日会将上一日的结算款先结算之虚拟户在一笔结算之绑定的对公户;当然结算到对公户的比例可以自己设定,可以全额结算也可以部分结算,将一部分资金留在虚拟户里,用于次日的退款或者其他付款需求。

03 关于结算产品

结算产品其实就是指支撑不同类型结算模式的结算能力:

  • T1结算:工作日结算,当天的服务款,在下一个工作日结算;
  • D1结算:日然日结算,当天的服务款,在下一个自然日结算;
  • D0结算:日然日结算,当天的服务款,在当天结算;
  • S0结算:交易完成后即可结算,按照订单号逐笔进行结算,像借贷的还款,一般逐笔;

结算功能,用户可以选择系统自动结算,也可以选自主发起结算:

  • 自动:系统按照结算协议,在约定时间自动将服务款支付给结算卡;
  • 自助:商家需要自主的在服务平台完成可结算周期内的款项的结算申请;

结算签约,商家入驻平台时会进行资质认证以及签约一款适合自己的结算产品。

04 结算场景

上面还是比较抽象,我们列举几个容易理解的结算场景

  • 支付公司将收单款结算给商户;
  • 电商平台将交易款结算给商家;
  • 滴滴平台将打车钱结算给司机;
  • 电影院将票房结算给各方;
  • 公司将工资结算给员工等等。

所以,简而言之,结算就是将属于别人的钱给到别人。

05 如何评价结算产品的好坏

评价结算系统的好和坏一个是站在公司角度,另一个是站在用户角度:

  • 站在公司角度:准确率高,资金安全,能容用户满意,投诉少。
  • 站在用户角度:支持银行多,服务好就是后台好用,到账快,成本低。

06 结算的业务架构

业务完成后,到了结算节点,账务系统按照结算周期将已经入账待结算数据打包后推送给结算系统,结算系统对结算数据进行处理加工后生成结算记录和结算明细;然后请求账务系统进行结算打款,账务系统请求账户中心扣款之后调用打款中心进行打款申请。

07 结算系统系统架构

对于不同结算产品,需要定时任务的管理去推动结算的进行:

  • 商户后台是商家自主发起结算,查询结算信息,变更信息的后台。
  • 运营后台是公司内部运营的操作台。

账务系统为结算系统提供结算数据,接受打款申请以及反馈出款通知:

  • 垫资系统是针对D0,S0的结算请求申请垫资的受理方。
  • 计费系统是计算结算时商家需要支付的费用,比如一笔2元。
  • 商家系统是用于查询商家的相关结算需要的信息。

08 结算系统业务实体结构

了解即可,从更小的颗粒度审视结算各信息记录之间的关系以及每个信息单元所记录的内容,便于对结算系统有个更精细的认知。

  • 结算请求:一次同时结算所有可以结算的商家,记录多少个商家;
  • 结算记录:一个商家生成一条结算记录,本次结算多少钱,以及打款状态;
  • 结算明细:按照商家结算的支付产品类型记录每个支付产品结算多少笔,多少钱;
  • 结算信息:记录这个商家签约了什么结算产品,结算的时间管理等。

比如某一日一共结算了100个商家(一次结算请求);其中A商家结算了1000块钱(一条结算记录);其中A商家的快捷支付结算了100笔500块钱,网关支付结算了600笔500块钱(结算明细)。

09 业务流程

10 系统交互时序图

11 详细流程图

每个处理阶段的详细逻辑流程图,篇幅有限,为了更加易读,简化了流程图,仅绘制了核心的节点。

1. 数据准备

2. 结算处理(以T1结算为例)

3. 打款处理

4. 结算状态流转

5. 结算账单

商户可以在后台下载结算账单,或者通过接口获取账单。

最后还有关于结算平台系统、商户结算服务平台、结算案例讲解就不多赘述了。

美好的时光总是很短暂,相信通过上面的文章介绍,大家已经可以设计出一个结算系统了,如果还有不明白的地方,可以在文章下面评论,深度交流。

 

作者:陈晓光,一个会弹吉他会算命的产品经理老司机,微信公众号:陈天宇宙

本文由 @陈天宇宙 原创发布于人人都是产品经理。未经许可,禁止转载

题图来自Unsplash,基于CC0协议

专栏作家

陈天宇宙,微信公众号:陈天宇宙,人人都是产品经理专栏作家。多平台支付领域专栏作者,十年资深产品;专注为10万支付产品经理和支付机构以及企业提供深度支付内容和服务!

题图来自 Unsplash,基于 CC0 协议

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
海报
评论
评论请登录
  1. 怎么加群交流

    来自福建 回复
  2. 这篇真的赞!我看过的文章里讲结算讲得最详细的

    来自北京 回复
  3. 懂了懂了,交易手续费扣掉后再付结算手续费

    来自福建 回复
  4. 为啥商户到账是148,不是149啊

    来自福建 回复
  5. 流程图结尾的“开始”是写错了吗?还是有什么深意?

    来自北京 回复
  6. 每篇文章都值得细细品味!

    来自广东 回复
  7. 牛逼牛逼

    来自浙江 回复
  8. 10的时序图,有个问题请教下:
    账务系统的定位是什么?为什么是账务系统请求结算系统?而不是订单系统请求结算系统,结算系统请求账务系统记账?

    来自北京 回复
    1. 根据公司管理制度而定,有公司是先账后款,有公司是先款后账。

      来自北京 回复
  9. 非常细致,补两个点:
    1)商户账户加可用余额判断,避免出现资损;
    2)再请求出款,建议加“账务冻结/解冻”
    ①避免清算时有钱,结算时没钱;
    ②避免账户余额先减后退回,余额变动给商户会带来一定焦虑感;

    来自广东 回复
  10. Crm

    回复
  11. 陈总的经验很受用!

    来自湖北 回复
  12. 来自中国 回复