凡涉及到支付的就需要对账。最近的项目中刚好涉及到了对账处理,这个模块是我负责的,跟大家分享一下我的经验。
1.获取对账文件,按银行提供的方式去获取文件,一般会在凌晨跑批生成对账文件;
2.解析入库,我遇到对账文件格式有txt和csv,什么格式不重要,只要能接信息出来就好了;
3.解析完成,保存到数据库;
4.获取自己的业务数据
5.对账:双方数据一一比对,形成差错清单,保存数据库;
业务对账:
我方 | 银行 |
有 | 无 |
无 | 有 |
异常 | 有 |
成功(无需显示到差错清单) | 成功(无需显示到差错清单) |
金额对账:
我方 | 银行 |
长款 | 短款 |
短款 | 长款 |
一致(无需显示到差错清单) | 一致(无需显示到差错清单) |
6.生成一条汇总的清单,记录当前会计日的对账是否成功或失败),保存数据库
7.对账完成,界面提供查询和下载功能;
备注:程序需要加上一些校验,
比如:
1.重复对账;
2.对账成功无需对账;
3.处理数据量大的时候,最好加个synchronized,否则会出现卡死,或者死锁的情况