首页 » Web前端 » php账单技巧_以在线教诲公司为例若何做一款财务对账产品

php账单技巧_以在线教诲公司为例若何做一款财务对账产品

访客 2024-11-18 0

扫一扫用手机浏览

文章目录 [+]

财务同学每月月初都须要核对上个自然月微信、支付宝等金融收款账户的交易流水和公司业务系统交易订单的同等性,基于同等的条件下才能做账。
随着业务的爆发性地增长,业务订单量太大,人工对账过于耗时和繁琐,就到了须要通过产品方案来办理,实现自动化对账。

适读工具

php账单技巧_以在线教诲公司为例若何做一款财务对账产品

本文是四勾作为一名产品,通过产品方案来实现自动化对账的产品实践,比较适宜对对账财务专业知识和对账事情流有一定认知,但便是不知道如何下手的产品经理。

php账单技巧_以在线教诲公司为例若何做一款财务对账产品
(图片来自网络侵删)

如果你还不清楚为什么要对账,对账是什么和什么对等一些财务方面的专业知识的话,建议先阅读文章底部的「参考文章」恶补之后,再回来阅读正文。

一、背景先容

为了便于理解和深入业务场景,四勾虚设一个场景,带着大家逐渐深入。

1. 虚拟场景

海豚教诲是一家 K12 在线教诲公司,紧张做事的工具是小学和初中阶段的学生,有数学、英语、语文等学科,紧张的业务交易包括 2 部分:

其一,购买课程的资金流入,分为体验课和正式课,体验课单价 30 – 50;正式课是一年的课程,课单价 6k – 8k;其二,课程退费的资金流出。

资金的流入和流出都是通过微信或支付宝来进行交易,现在交易订单量巨大,须要通过产品来实现将微信和支付宝的逐日交易数据和海豚自己的业务交易数据对账。

微信和支付宝我们都叫做金融账户。

2. 对账的代价

比较随意马虎理解的是实际的进出和业务订单的进出同等,担保做账数据的精确性。
实在有更深层次的代价,反向校验业务数据的准确性,创造业务数据的问题,及时改动;规避财务风险,进而更好的做事用户。

举个栗子,微信有一笔 50 元的退费记录,业务订单里没有,账无法对上。
财务创造问题之后会联系孩子的班主任老师,在业务系统一查创造他的退费申请由于超时过期,退费申请自动关闭了。
创造问题后须要采纳方法,补退费记录,对账号做停课处理。

3. 设计思路其一,每个金融账户分开独立对账,指微信和支付宝其二,以金融账户数据为参照物,拿海豚业务订单数据往上对齐其三,对账不区分学科,学科是对账完毕之后用来出财务饼状图的

二、对账事情流

自动对账是按照逐日对账,当天拉取前一日的微信和支付宝对账单,和海豚的前一日的业务订单进行自动化匹配,然后做出正常或非常的标记。
针对标记非常的,再人工跟进。

对账事情流分为 4 个步骤,每个步骤有详细的分工,全景图如下。

对账事情流全景图

1. 账单下载

账单下载更多的是技能层面的实现,这里不做展开,涉及到如下 2 个 API。

微信是当日上午 10 点出前一日的对账单,以是我们须要 10 点后拉取。

支付宝是当日上午 9 点出前一日的对账单,以是我们须要 9 点后拉取。

微信下载对账单 API:https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=9_6

支付宝下载对账单 API:https://docs.open.alipay.com/204/106262/

2. 数据准备

数据分为 3 个部分,每个金融账户各自须要 1 份数据,我们这里叫做「微信对账数据」和「支付宝对账数据」。
其余,业务系统的订单数据,我们叫做「海豚对账数据」。

1)金融对账数据

微信和支付宝的逻辑一样,下面以微信为例:

整理后的微信对账数据

交易类型,照搬微信对账单上的,不做修正;

海豚订单,是微信里的「商户订单号」,便于理解,四勾故意改了个更直不雅观的名字;

金融账户订单,是微信的微信订单号。

2)海豚对账数据

每天凌晨 2 点拉取前一日的海豚业务订单,包括购课付款成功和退费成功的交易订单,只拉取成功的订单,忽略支付中或退费中的交易未结束的部分。

同时,整理完的对账数据我们须要单独存储,出于 2 点考虑:

其一,业务订单的修正不会影响我们的对账数据;其二,对账完毕后我们会基于对账数据打算各种各样的财务报表,要确保数据源的同等性。

如下图所示,保留 userId、课程名称和课程编号,便于往后按照课程栏目的财务统计。

整理后的海豚对账数据

3. 对账

1)单笔订单的对账状态

正常:系统自动对平的

非常未处理:系统未自动对平的会标记成非常未处理

非常已处理:人工处理掉非常,并且人工进行海豚对账数据和金融账户对账数据关联上

非常已挂起:

便是暂时忽略,往后再说往后可以对已挂起的数据再次人工处理成非常已处理

单笔订单对账状态的流转

2)自动对账

微信自动对账完的数据状态

举个栗子:本日是 2019-12-26,我们对昨天 2019-12-25「微信」的对账数据。
上午 10 点所有金融账户数据准备完毕后,立马实行自动对账。
当然对完微信之后会再对「支付宝」。

Q1:旁边两边的数据来源?

左边是海豚昨天的订单里面,收款和退款的金融账户是微信的;

右边的是微信昨天的全量交易对账数据。

Q2:如何自动对账?

第 1 步,右边的数据按照交易韶光顺序排列,并展示出来(此时,左边全部为空);

第 2 步,针对右边每一条数据,拿「海豚订单」去海豚对账数据里面查询,同时知足下面条件就自动标记成「正常」;

其一,能查询到记录(只去海豚对账数据的 25 号数据里面查)其二,金额一样

第 3 步,将第 2 步中查到的海豚对账数据展示在对应金融数据的左侧,并且将状态标记成「正常」

第 4 步,将金融对账数据没有标记成正常的其它所有的行,都标记成「非常未处理」(此时,这些数据的左侧都是空缺)

第 5 步,将海豚对账数据没有被标记正常的其它所有数据,按照交易韶光顺序插入,都标记成非常未处理(此时,这些海豚数据的右侧全部是空缺)

自动对账包括上面的 5 步,自动对账结束会涌现:

其一,状态只有 2 种,正常和非常未处理;其二,非常未处理的,要么右边空缺,要么左边空缺

3)滚动对账

举个栗子:一笔支付,微信 23:59:59 收到钱,回调海豚做事器时已经跨天 00:00:02,这样在自动对账时会被标记成非常未处理。

涌现上面的情形是由于遭遇日切,滚动对账便是专门来处理这种 case 的。

滚动对账前后的状态变革

高下文:

24 号所有对账结束后,海豚和微信各有 1 条非常未处理;

25 号自动对账结束后,海豚有 1 条非常未处理,微信有 2 条;

现在将要实行 25 号的滚动对账

Q:如何滚动对账?

第 1 步,拿 24 号微信非常的数据,去 25 号海豚的数据查,海豚订单号同等、金额同等,就意味匹配成功,将两者关联上,并同时标记为非常已处理;

第 2 步,反过来,拿 25 号微信非常去查 24 号海豚数据。

处理完上面 2 步之后,就如上图下半部分所示。

4. 差错处理

差错处理分为 2 种,一种是能人工匹配上,处理成非常已处理;另一种是怎么也匹配不上,处理成非常已挂起。

1)处理成非常已处理

通过线下人工查明缘故原由,找到匹配的两边的订单号,然后上系统进行人工关联。

将非常处理成非常已处理

2)处理成非常已挂起

将非常处理成非常已挂起

处理非常之后,对账状态发生变革,就如下所示:

处理完部分非常后的对账状态

三、产品实现1. 页面信息流

2. 对账明细-全部

举个栗子:要进行 2019-12-14 到 31 号对账,如何操作:

对账韶光段:选择 2019-12-14 ~ 2019-12-31

对账周期,如果选择周,下面就按照自然周拆分,显示 4 行,如上图所示;如果按照日,下面显示 31 – 14 + 1 = 18 行。

3. 对账明细-微信

点击上图微信下面的末了一行,显示如下界面。
点击下图「上一周期」,显示上一个自然周的对账。

Q:作甚「未平账」,作甚「已平账」?

对账状态中,只要有非常未处理,称为未平账;没有非常未处理的,称为已平账,包括正常、非常已处理和非常已挂起。

参考文章

1. 详细解析「财务对账」的秘密https://zhuanlan.zhihu.com/p/42289649

2. 财务对账系统设计

https://juejin.im/post/5b1c76f4e51d450688135cfd

3. 聊聊对账系统的设计方案

https://juejin.im/post/5c485cd8f265da61327fa12f

4. 支付对账系统怎么设计?

https://mp.weixin.qq.com/s/SOpwMsVB5wNkwMZdKKMkwg

5. 从0开始学习搭建支付系统——核算对账核心

https://zhuanlan.zhihu.com/p/45492985

本文由 @四勾 4J 原创发布于大家都是产品经理。
未经容许,禁止转载。

题图来自unsplash,基于CC0协议

标签:

相关文章