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. 面试连环炮系列(二十三): StringBuffer与StringBuild的区别

    StringBuffer与StringBuild的区别 频繁修改字符串时,建议使用StringBuffer和StringBuilder类.StringBuilder相较于StringBuffer有速度 ...

  2. CQRS+ES项目解析-Equinox

    今天我们来分析另一个开源的CQRS+ES项目:Equinox.该项目可以在github上下载并直接本地运行,项目地址:https://github.com/EduardoPires/EquinoxPr ...

  3. MIT-6.824 操作系统 汇总

    MIT-6.828-JOS-环境搭建 ELF文件格式 lab1:C, Assembly, Tools, and Bootstrapping lab2:Memory management lab3:Us ...

  4. Springboot vue.js html 跨域 前后分离 shiro权限 集成代码生成器

    本代码为 Springboot vue.js  前后分离 + 跨域 版本 (权限控制到菜单和按钮) 后台框架:springboot2.1.2+ mybaits+maven+接口 前端页面:html + ...

  5. oopday02(面向对象-构造方法&静态static)

    面向对象之封装 01_面向对象(构造方法Constructor概述和格式) * A:构造方法概述和作用 * 给对象的数据(属性)进行初始化 * B:构造方法格式特点 * a:方法名与类名相同(大小也要 ...

  6. Nmap参数详解(含扫描参数原理解释)

    语法结构:nmap [Scan Type(s)] [Options] {target specification} 端口状态介绍 open:确定端口开放,可达 closed :关闭的端口对于nmap也 ...

  7. Splash 学习笔记

    一.介绍 Splash 跟之前我们介绍的 Selenium ( 参考 Selenium 与自动化测试 -- <Selenium 2 自动化测试实战>读书笔记) 很类似,都可以理解成一个浏览 ...

  8. Appium+Java 自动化测试系列一:环境搭建

    Appium+Java 自动化测试框架搭建主要分为以下几个方面的下载安装及环境配置 1.Java开发环境 涉及到的内容又jdk.编译器工具(推荐jdk 1.8.Eclipse编译器或者IDEA编译工具 ...

  9. Redux学习及应用

    Redux学习及应用 一:Redux的来源? Redux 是 JavaScript 状态容器,提供可预测化的状态管理.Redux是由 Flux 演变而来,但受 Elm 的启发,避开了 Flux 的复杂 ...

  10. centos安装go环境

    centos安装go环境 1,下载合适的go安装包 https://studygolang.com/dl 2 上传到 centos服务器的 /usr/local下然后解压 3.设置go的环境变量    ...