什么是对账?
对账系统
对账系统,是支付体系中最重要的一环,也是保证交易、资金安全的最后一道防线。通过系统的使用,不仅可以提升对账效率和解放人工对账工作量,而且还可以快速扩展其他支付类渠道,它的职责就是替代传统的人工对账,解放人工对账的工作量,提升对账效率,实现系统自动化。
以笔者多年前参与的项目为例,对接了多个银行渠道系统进行代收代付业务,在实际应用场景中,生产交易系统总会存在因掉单或者系统突发异常导致的同一笔交易在支付系统与银行系统的信息不对称,使得支付系统在银行的账户资金实际发生额与应该发生额不一致,比如长款(银行多结算给支付系统)和短款(银行少结算给支付系统)。
如何高效对账
通过对既有系统以及其他渠道系统进行研究发现,对账的通用流程大致分为如下步骤: 渠道对账单下载、对账单文件解析、对账(轧账/平账)。 对账系统是一个以定时任务为主的系统,我们在系统架构方面基于分布式任务框架elastic-job与自定义任务逻辑相结合的方式进行设计,其中elastic-job作为无中心化的分布式定时调度框架,其优势就是保证后续任务可以在任意节点中执行。业务逻辑架构如图1所示:
各个功能模块功能:
1、对账单下载
从技术实现的角度来说,我们可以将其设计为工厂模式,针对不同的支付渠道对应不同的下载类,如果是http接口可以将获取到的文件写入到对账单中,用于后续解析操作,如果是对方提供的是ftp服务器,则需要将服务器中的对账单下载至本机。 在这个环节中,为了防止单一应用宕机导致系统产生异常,对账单下载至本地后会同步将其上传至DFS服务器中,方便后续步骤中的定时任务可以从DFS服务器中获取到对应的对账单文件。 这个环节的主要编码工作包括通用ftp工具类、http(s)工具类的编写,并会涉及到IO读写相关的实现。
在下载对账单的步骤中,很多同仁都踩过不少坑,也针对共性问题进行了总结,那就是“HTTP(S)用apache httpclient即可实现链接池和断点续传功能,亦可使用Apache Commons Net API实现FTP的上传与下载。但不管是哪一种方式,都需要谨慎的设置重试次数、重试间隔以及链接超时时间,其原因是重试太频繁容易导致服务器夯死;时间间隔太大又会阻塞后续处理步骤,评估下来5~10分钟是一个较为合理的重试间隔区间。”
2、对账单转换
如果完全按照下游渠道系统提供的原始账单格式进行对账单存储,那么对于后续的账单数据处理逻辑就会随着下游渠道的增加而不断的扩展,并且每增加一个新的支付渠道,账单存储表都需要根据渠道账单结构新建,使得开发工作量大幅增加。因此,从对账模块来看,为了让后续的对账操作变得统一,需要格式化不同形式的对账文件,并对其进行标准化处理显得尤为重要。
由于支付渠道系统在设计上存在差异性,我们需要为每个渠道开发一套对应的解析规则,可能包含计量单位的转换、交易日期的格式化、交易结果的映射转换等操作,对账单转换模块的职责就是将各式各样的数据源解析为标准格式后插入交易记录表中,用于后续对账工作。
3、对账模块
在对账的过程中可能出现某些系统无法匹配的异常数据,为了便于分析,我们需要将三个集合中出现的长款、短款、金额不一致等问题记录在差异表中,并同时登记产生差错的类型。 对于某些类型的差异数据,对账系统在后续的跑批中能够自动化处理,一致化交易数据。 而对于那些系统无法处理的异常,则需要人工干预排查问题原因,并寻找合理的解决方式。 此外,由于各个支付系统的日切时间会存在细微的差异,对于可能在当日的账单数据中没有匹配到待对账的数据需要我们进行滚动对账。
4、差错处理
另外,从技术角度发现对账过程中逐行比对算法效率较低,但目前仍未找到更为合理的算法进行替代,如采用数据库INTERSECT、MINUS的方式进行比对则将压力转嫁到了对数据库侧。当业务呈井喷式增长时,大量的交易数据需要进行对账操作,也会导致数据库负荷较高,通过读写分离以及避开交易高峰等空间换时间的操作虽然可降低生产系统的风险,但仍没有从根本上彻底解决问题。后续优化重构的过程中也会尝试使用Redis等NOSQL数据库进行对账操作,如使用Redis的set集合的sdiff功能,返回两个集合之间的差异集合,比对解析后的对账单记录和本地自有记录的差异,降低对生产交易中的mysql数据库的压力,并且Redis数据库在扩展上也相对容易。
当然,这个方案是否是最优解仍需要验证后才可知,如何在特定的情况制定出一套最佳方案仍需要我们在漫漫长路上不断探索与研究。
本文作者:兴业数金供应链金融事业部技术团队 张佳鹏
文章来源:兴业数金公众号(ID:gh_b700b775ae81)
原文链接:https://mp.weixin.qq.com/s/2tiHlWT_6iXmIRpxnlwCww
如有侵权,请联系删除
未经允许不得转载:RPA中国 | RPA全球生态 | 数字化劳动力 | RPA新闻 | 推动中国RPA生态发展 | 流 > 对账那些事儿
热门信息
阅读 (14728)
1 2023第三届中国RPA+AI开发者大赛圆满收官&获奖名单公示阅读 (13753)
2 《Market Insight:中国RPA市场发展洞察(2022)》报告正式发布 | RPA中国阅读 (13055)
3 「RPA中国杯 · 第五届RPA极客挑战赛」成功举办及获奖名单公示阅读 (12964)
4 与科技共赢,与产业共进,第四届ISIG中国产业智能大会成功召开阅读 (11567)
5 《2022年中国流程挖掘行业研究报告》正式发布 | RPA中国