Java生鲜电商平台-交易对账以及跟商家对账的思考

说明:对于任何一家电商而言,资金的安全尤为重要,在资金管理过程中,涉及到交易订单的对账以及商家的对账,那i么如何来保证对账的高效与准确呢?

公司在搭建交易平台时其实考虑过建立一套账务系统来满足记账的需求,从现在来看虽然当时考虑的比较片面,最终也只是作为客户的账户在使用。但账户的概念很好,财务的科目其实也是账户记录进进出出的流水,于是希望再次把账户系统利用起来,通过账户系统输出账单,完成对账从而减轻财务系统压力,一套以账户系统为逻辑基础的电商交易账务及对账协作方案应运而生。

一. 账户系统的作用:

1. 记录账户流水和余额,最基本的作用

2. 信用额度控制,同时提供一种支付方式,这是原本有的功能

3. 按照会计规则建立一套分户账户,提供会计核算,业务对账的基础,这是方案的核心点

以上三点,前两点是目前账户系统就有的功能,要实现第三点功能,首先需要建立一套完备的账户体系

二. 账户系统结构:

我认为就电商交易来看,一套完备的账户包括:收入,成本,费用,库存,应收,应付,实收,实付几大类账户

 
账户系统结构

其中,实收实付类的账户可以通过支付系统直接记账,后期和财务系统核对;其他的账户的数据产生需要大量的财务记账逻辑,所以都由财务系统完成财务记账同时推送会计分录流水到账户系统,账户系统计入各个账户。账户建立完成后,下面就讲一下账户系统是如何工作的

三. 账户系统如何记账

下面以交易过程中几个简单的例子描述账户系统如何记账

3.1.1 销售订单交易

 
销售订单生命周期

一笔销售交易订单的生命周期经理客户下单,支付,订单发货,确认完成4个关键步骤,交易系统会记录下这4个节点,账户系统完成支付相关的分户账户记账,财务系统根据业务系统交易单据完成财务记账,并同步会计分录流水进分户账户。

3.1.2 记账过程如下:

 
销售订单记账过程

3.2.1 供应链交易

 
供应链交易生命周期

一笔采购订单交易的生命周期,具有入库,到票,支付3个关键步骤,财务系统对3个节点分别记账,并同步分录流水到账户系统

3.2.2 记账过程如下:

 
采购交易记账过程

这套方案里,支付系统会控制资金流入和流出,因此实收,实付类账户可以由账户系统和财务系统分别记账,再定时对账;以订单支付为例,支付网关返回支付状态时触发记账。

 
订单支付过程(支付系统内部流程不是很专业)

根据交易实例会发现,账户系统更多的只是记录财务系统给到的数据;如果只是单纯记录下分录流水,那就毫无意义,因此如何界定财务系统和账户系统的关系,财务系统和账户系统相互如何协同工作,是不可避开的问题。

四. 财务系统与账户系统的关系及如何协作

对于账户系统来说,财务系统就是她其中的一个业务系统,会计分录流水就是账户系统的业务流水,账户系统负责储存这些数据;当需要对账时,调出对应的账户即可,不再需要财务系统和各个业务系统核对。所以财务系统不再承担对账的功能,转而由账户系统承担起所有的对账职责,一来减轻财务对账压力,而来账户系统对账更为方便。

由此,整个系统账务及对账协作关系如下:

 
 

整个记账&对账协作参与系统包括:

1. 交易系统:记录业务单据

2. 支付系统:控制资金的流出与流入

3. 财务系统:负责财务记账

4. 资金管理系统:负责账单数据的采集

5. 账户系统:负责分户账户记账及对账

五. 账户系统对账:

对账的整体规划为:账户系统承担集团内各个系统间的对账,资金系统和支付系统会承担外部渠道对账;内部对账包括:业务账,财务账,资金账。账户系统接过对账后,由于账户天然存在期初,期末值,粗颗粒度只需要核对期初期末值是否一致;细颗粒度则只需要导出账户的账单明细与其他系统提供的明细进行核对即可

财务对账:

账户系统分户账户按照会计规则建立,因此每一个会计科目对应一个汇总账户,每一个会计科目不同的核算维度不同则对应一个单独的账户。财务对账就是核对会计科目余额与分户账户余额的过程,极大的减轻了财务对账麻烦程度。

资金对账:

流水和余额的记录是账户系统的基本功能,资金管理平台的资金流水变动都需要同步到账户系统,实时记录公司各个银行,其他货币资金账号的余额;财务凭证的挂银行科目的分录流水也会同步到账户系统,记录到对应的账户里,因此只需要比对内部的账户余额就可以完成简单的资金对账

业务对账:

由于交易系统业务单据的流转都会引发账户系统账户的变动,当业务系统需要对账,只需要导出账户的账单明细与业务系统提供的业务单据明细即可核对

六. 增值服务:报表

有了这套账户甚至可以协助完成部分报表服务,例如库存报表,仓库采购入库,销售退货入库,盘盈入库,等本期增加数以及销售出库,采购退货,盘亏等本期减少数 都能通过账户拉取账户的期末值减去期初值得到。报表的生成只需要将各个账户的名称展示在表头,账单明细展示在行上面就能形成一张报表。

这套方案虽然没有用起来,也没有验证可行性,因此总结在这里,提供一个思路。目前做的清结算系统与这个方案系统结构大不相同,但是核心逻辑一致,都是将业务数据转化为可视化账户。从方案实施来看,文中的账户系统与财务系统互补,账户流水依赖于财务系统,重心在数据记录和对账上;而清结算系统与当前财务系统在功能上有冲突,同样的逻辑在财务系统实现一套在清结算系统实现一套,当然这里面也有公司先搭建财务系统导致财务系统承担的功能太多,后来才搭建清结算平台的历史原因。

联系QQ:137071249

QQ群:793305035

Java生鲜电商平台-交易对账以及跟商家对账的思考的更多相关文章

  1. Java生鲜电商平台-商家支付系统与对账系统架构实战

    Java生鲜电商平台-商家支付系统与对账系统架构实战 说明:关于生鲜电商平台,支付系统是连接消费者.商家(或平台)和金融机构的桥梁,管理支付数据,调用第三方支付平台接口,记录支付信息(对应订单号,支付 ...

  2. Java生鲜电商平台-生鲜售后系统的退款架构设计与代码分享

    Java生鲜电商平台-生鲜售后系统的退款架构设计与代码分享 说明:任何一个电商行业都涉及到退货与退款的问题,但是生鲜电商行业还设有一个显著的特点,那就是换货.在人性面前,各种各样的退货,退款,换货的售 ...

  3. Java生鲜电商平台-生鲜系统中商品订单系统售后系统设计

    Java生鲜电商平台-生鲜系统中商品订单系统售后系统设计(服务订单履约系统) 说明: 电商之下,我们几乎能从电商平台上买到任何我们日常需要的商品,但是对于很多商品来说,用户购买发货后,只是整个交易流程 ...

  4. Java生鲜电商平台-会员积分系统的设计与架构

    Java生鲜电商平台-会员积分系统的设计与架构 说明:互联网平台积分体系主要用于激励和回馈用户在平台的消费行为和活动行为,一个良好的积分体系可以很好的提升用户的粘性及活跃度. 一.互联网平台积分体系设 ...

  5. Java生鲜电商平台-生鲜系统中微服务架构设计与分析实战

    Java生鲜电商平台-生鲜系统中微服务架构设计与分析实战 说明: Java生鲜系统中微服务的拆分应该如何架构设计与分析呢?以下是我的实战中的设计与经验分析. 目录 1. 微服务简介2. 当前现状3. ...

  6. Java生鲜电商平台-生鲜电商中商品类目、属性、品牌、单位架构设计与实战

    Java生鲜电商平台-生鲜电商中商品类目.属性.品牌.单位架构设计与实战 说明:Java生鲜电商平台-生鲜电商中商品类目.属性.品牌.单位架构设计与实战经验分享 凡是涉及到购物,必然是建立在商品的基础 ...

  7. Java生鲜电商平台-高可用微服务系统如何设计?

    Java生鲜电商平台-高可用微服务系统如何设计? 说明:Java生鲜电商平台高可用架构往往有以下的要求: 高可用.这类的系统往往需要保持一定的 SLA,7*24 时不间断运行不代表完全不挂,而是有一定 ...

  8. Java生鲜电商平台-商城优惠券设计要点复盘与总结

    Java生鲜电商平台-商城优惠券设计要点复盘与总结 Java生鲜电商平台本文将从优惠券设计用户端,需求端,业务流程全方案解析优惠券设计方案 为什么要设计优惠券 设计优惠券的核心:拉新和促活 新产品上线 ...

  9. Java生鲜电商平台-电商虚拟币的充值与消费思考

    Java生鲜电商平台-电商虚拟币的充值与消费思考 项目背景 最近由于项目业务原因,需要为系统设计虚拟币的充值及消费功能.公司内已经有成熟的支付网关服务,所以重点变成了如何设计项目内虚拟币的充值流程,让 ...

随机推荐

  1. 解决苹果mac远程桌面无VDI客户端

    解决苹果mac远程桌面云aDesk无VDI客户端 因集团办公工作需要使用桌面云aDesk 在深信服官网并未有mac 的VDI Client客户端 mac电脑可通过Google浏览器访问VDI的服务器地 ...

  2. 从KafkaConsumer看看Kafka(一)

      Kafka的消息模型为发布订阅模型,消息生产者将消息发布到主题(topic)中,一个或多个消费者订阅(消费)该主题消息并消费,此模型中发布到topic中的消息会被所有消费者所订阅到,先介绍Kafk ...

  3. Java连载62-使用throws关键字处理异常

    ​一.处理异常的两种方式 1.所有的编译时异常,要求程序员在编写程序阶段,必须对它进行处理,如果不处理的话,编译就会无法通过,处理异常有两种方法:捕捉和声明抛出. 2.捕捉:try.....catch ...

  4. SpringCloud-服务注册与实现-Eureka创建服务提供者(附源码下载)

    场景 SpringCloud-服务注册与实现-Eureka创建服务注册中心(附源码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  5. Java面试必看之Integer.parseInt()与Integer.valueOf()

    Integer.parseInt()和Integer.valueOf()都是将成为String转换为Int,但是为什么Java会提供两个这样的方法呢,他们如果是同样的操作,岂不是多此一举? 我们来深挖 ...

  6. linux 文件管理命令

    一,文件查看more,less,head,tail,cat,tac 分屏查看文件内容 more:和man用法一样,但翻屏到尾部自动推出. less:和man用法一样. head:查看文件的前n行.n默 ...

  7. js中数组去重方法及性能对比

    js中数组的 数组去重 常用的数组去重方法以及效率分析: 首先我们先构建一个数组,主要是用于进行去重实验,我们主要实验的量级为1000,10000,100000,500000.具体的生成数组的方法如下 ...

  8. web.xml的常见配置

    web.xml的常见配置 <!-- 配置全局的编码过滤器 --> <filter> <description>编码过滤器</description> & ...

  9. MySQL5.6与MySQL5.7安装的区别

    一.MySQL5.6与MySQL5.7安装的区别 1.cmake的时候加入了boost 下载boost.org 2.初始化时 cd /application/mysql/bin/mysql 使用mys ...

  10. linux 启动jar包 指定yml配置文件和输入日志文件

    命令为: nohup java -jar project.jar  --spring.config.location=/home/project-conf/application.yml >  ...