(每日一题)解析器的设计方法和实现原理

2024-04-03
来源:网络整理

在对账系统的设计中,解析文件是一个关键的核心部分。 那么,如果想要设计一个好的解析器,可以遵循哪些设计原则呢? 在本文中,作者对解析器的设计方法和实现原理进行了分析和总结。 让我们来看看。

解析文件是对账系统设计中非常核心的部分,但上面文章中的解析器描述可能不够详细。 因此,本文将单独谈谈解析器的设计方法和实现原理。

1. 文献与分析

获取并解析文件是对账系统中非常重要的一环,也是后续对账的基础。

获取文件主要指三类文件:平台支付数据、渠道清算数据、渠道结算数据。 平台数据可以通过SQL、MQ、接口、文件等方式获取,而通道文件一般通过接口获取或者手动下载。 并导入对账系统。

获得文件后,如何将文件解析到数据库中,形成数据库数据,需要解析和处理能力,当然可以直接通过技术来开发和实现。

这样做的缺点很明显,就是如果增加新的通道,或者改变通道文件,或者改变对账规则,可能需要研发修改解析规则,这会大大增加研发成本,降低成本研发。 业务需求的反映效率。

因此就可以实现解析规则的配置,也就是本文要介绍的“坑解析器配置”。

为什么叫坑解析器呢? 因为该模型的数据库表是固定的,但文件数据是按照对应关系解析成固定字段的。

相比之下,另一种解析模型是按原样解析文件并保留文件中的字段数量。 但这样的解析模型会创建大量的数据表结构,后续的处理和对账设置会稍微麻烦一些。

2. 文件与解析规则的关系

对于第三方支付机构来说,交易对账就是核对平台支付数据记录与渠道下发的清算档案记录的一致性。 可以通过SQL获取平台数据,通过接口获取清算数据,进行后期处理。 文件解析,解析需要解析规则,如下图所示。

对账项目的解析器和清算文件是绑定的,即对账项目的清算文件按照对账项目绑定的解析器设定的规则进行解析。

3. 如何设计配置工具

下图为某支付渠道的清算文件格式。

商户订单号是平台请求的唯一订单号,是与平台数据核对的唯一标识,所以需要解析出来。 其他交易状态代表退款和付款类型,还有金额和其他对账要求。 场地。

如何设置将这些字段解析到数据库表中的规则,需要下面的配置工具。

整个配置工具由2部分组成。

第一部分是基本配置。

这是配置解析规则的基本信息。 主要配置“我们需要什么数据”,比如解析器的编号、所属的调节项目、文件的格式和编码等。

其中,过滤字段设置为“哪些数据不需要”。 例如示例中的含义是过滤文件中的第9列和第10列。 第 9 列是“未知,失败”或第 10 列是 01 数据。 不需要解析。

数据起始行的作用是指定从哪一行开始解析。 由于某些频道在文件开头有标头或某些统计信息不需要解析,因此应将其删除。 例如,在以下文件中,应从第6行开始填写“6”。 开始解析行数据,前5行数据不需要。

数据列数的配置实际上是用来设置解析哪些数据的。 可与“数据起始行”配置配合使用,以强化条件。 例如,填写“12”表示只有12个字段的数据行才会被解析。 。

第二部分是解析规则的配置。

这部分是规则部分,主要是关于配置文件中“如何将数据放入数据表”。

配置中有3列:

第一列是数据库表的固定字段,如银行订单号、交易类型、卡类型等。

第二列是字段位置,即该字段取文件中该列的数据。 例如,在原型中,银行订单号填写为1,表示将文件中的第一列解析为银行订单号。

第三列是描述文件中的数据格式、单位或值。

这里需要强调的是,整个规则配置主要可以分为三类。

类别一:基于号码的配置,如银行订单号等,只需填写数据栏“号码”即可。 无需配置格式、单位或值。 您可以直接从文件中获取数据。

类别2:映射配置,比如交易类型、卡类型,这两个都是数据库中固定的枚举值,即“支付、退款”、“借记卡、信用卡”,根据原型示例配置表示根据“13”栏判断卡牌类型。 如果是01代表借记卡,02代表信用卡。 当解析到数据库中时,卡类型字段将设置为“借记卡”或“信用卡”。 卡”代替文件中的值;同一原型中的交易类型字段由“10”栏确定,当为“S13、S22、S23、S36、S37、S46、S54、S56、S64”时代表付款,当为“”时,代表退款。

第 3 类:单位和格式配置。 例如,原型中的金额需要使用配置文件中的单位进行配置,时间需要使用配置文件中的时间格式进行配置。

专栏作家

陈天宇,微信公众号:陈天宇,人人都是产品经理专栏作家。 多平台支付领域专栏作家,拥有十年产品经验; 专注于为10万支付产品经理、支付机构和企业提供深度支付内容和服务!

分享