应用于金融报文的校验方法和装置与流程

文档序号:11180584阅读:1681来源:国知局
应用于金融报文的校验方法和装置与流程

本发明涉及计算机技术领域,尤其涉及一种应用于金融报文的校验方法和装置。



背景技术:

随着线上交易业务的发展,需要与许多国内外的金融机构,例如,银行机构、清算机构,以及结算机构等进行合作,线上交易业务的交易过程主要是通过金融报文的方式进行。

相关技术中,由于不同金融机构之间的金融报文结构差异大,相同金融机构的金融报文的种类繁多,并且每个金融报文包含多个一级标签,每个不同的一级标签下又包含多个子标签。随着金融报文所属的业务类型不同,相同的金融报文的相同级标签,其值有不同或者相同的业务规范,并且,由于不同金融报文中相同的子标签的路径不同,因此需要对子标签重复校验,金融报文的校验效率不高,校验成本大。



技术实现要素:

本发明旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本发明的一个目的在于提出一种应用于金融报文的校验方法,能够有效提升金融报文的校验效率。

本发明的另一个目的在于提出一种应用于金融报文的校验装置。

为达到上述目的,本发明第一方面实施例提出的应用于金融报文的校验方法,包括:获取金融报文,并对所述金融报文进行解析以获取所述金融报文的 子标签;从第一配置表中读取与所述子标签的键值对应的基础xml标签校验器的校验值,以及从第二配置表中读取所述金融报文的特征校验器的校验值;根据所述基础xml标签校验器的校验值和所述特征校验器的校验值对所述金融报文进行校验。

本发明第一方面实施例提出的应用于金融报文的校验方法,通过获取金融报文的子标签,并根据基础xml标签校验器的校验值和特征校验器的校验值对金融报文进行校验,能够有效提升金融报文的校验效率。

为达到上述目的,本发明第二方面实施例提出的应用于金融报文的校验装置,包括:第一获取模块,用于获取金融报文,并对所述金融报文进行解析以获取所述金融报文的子标签;读取模块,用于从第一配置表中读取与所述子标签的键值对应的基础xml标签校验器的校验值,以及从第二配置表中读取所述金融报文的特征校验器的校验值;校验模块,用于根据所述基础xml标签校验器的校验值和所述特征校验器的校验值对所述金融报文进行校验。

本发明第二方面实施例提出的应用于金融报文的校验装置,通过获取金融报文的子标签,并根据基础xml标签校验器的校验值和特征校验器的校验值对金融报文进行校验,能够有效提升金融报文的校验效率。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1是本发明一实施例提出的应用于金融报文的校验方法的流程示意图;

图2是本发明实施例中金融报文的一级标签示意图;

图3是本发明实施例中金融报文的子标签示意图;

图4是本发明实施例中cnaps报文的xml文件示意图;

图5是本发明实施例中citi报文的xml文件示意图;

图6是本发明另一实施例提出的应用于金融报文的校验方法的流程示意图;

图7是本发明实施例中第一配置表的结构示意图;

图8是本发明实施例中第二配置表的结构示意图;

图9是本发明实施例中第三配置表的结构示意图;

图10是本发明实施例中目标校验器的结构示意图;

图11是本发明实施例中不同业务类型金融报文与一级标签校验器的对应关系示意图;

图12是本发明另一实施例提出的应用于金融报文的校验装置的结构示意图;

图13是本发明另一实施例提出的应用于金融报文的校验装置的结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。

图1是本发明一实施例提出的应用于金融报文的校验方法的流程示意图。

本实施例以该应用于金融报文的校验方法被配置为应用于金融报文的校验装置中来举例说明。其中,该应用于金融报文的校验装置可以例如设置在支付系统中,本发明实施例对此不作限制。

本实施例的方法可以基于国际金融服务金融业通用报文标准(iso20022标准)。

参见图1,该方法包括:

s11:获取金融报文,并对金融报文进行解析以获取金融报文的子标签。

其中,金融报文用于使各个金融机构之间进行线上业务沟通,各个金融机构可以例如国内外银行机构、清算机构,或者结算机构等。金融报文例如国内的二代支付系统报文、建行报文,国外的swift报文、boa报文,以及citi报文等。

金融报文遵循iso20022标准。

可以理解的是,金融报文可以由多级标签构成,例如,金融报文包含一个或者多个一级标签,其中,每个一级标签包含一个或者多个的子标签,因此,随着金融报文所属的业务类型的不同,相同金融报文的同级标签可以具有不同或者相同的校验值。

其中,根据金融报文所属的业务类型,可以将金融报文划分为支付类报文、非支付类报文、批量支付类报文,以及文件通知报文。

参见图2,图2为本发明实施例中金融报文的一级标签示意图,其中,支付类报文的一级标签例如报文基本信息、原报文基本信息、报文业务渠道信息等;非支付类报文的一级标签例如报文基本信息、原报文基本信息、报文业务渠道信息等;批量支付类报文的一级标签例如批量包头信息和批量组头信息;文件通知报文的一级标签例如报文基本信息、原报文基本信息、路由信息等。

一个实施例中,参见图3,每个一级标签包含一个或者多个的子标签,对图2中的“业务处理信息”一级标签进行细粒度示例,非支付类报文的一级标签“业务处理信息”中可以特有“业务状态码”子标签,支付类报文和文件通知报文特有“清算日期”和“处理状态”子标签,而所有业务类型的金融报文共有“响应返回码”、“响应描述信息”、“处理日期”、“轧差日期”、“轧差场次”,以及“业务参与机构行号”子标签,其中,所有业务类型的金融报文共有的子标签的值和类型一致,即遵循iso20022标准。

本实施例中以通过可扩展标记语言(extensiblemarkuplanguage,xml) 标记金融报文示例。

进一步,可选地,参见图4和图5,图4为本发明实施例中以二代支付系统的cnaps报文(saps.360.001.01)的xml文件示意图,图5为本发明实施例中以花旗银行报文citi报文的xml文件示意图。

其中,标签<?xml>用于说明xml版本和解码方式等信息;标签<document>用于说明xml命名空间,标签<?xml>和标签<document>是所有金融报文的必要标签。<bktocstmracctrpt>是cnaps报文saps.360.001.01的根标签;<msgid>是的子标签,其中,<msgid>子标签的路径是<bktocstmracctrpt>/<grphdr>。相同<msgid>子标签在citi报文的路径是<cstmrcdttrfinitn>/<grphdr>。可以理解的是,虽然cnaps报文中的<msgid>子标签和citi报文中的<msgid>子标签的值、属性,以及类型相同,但是路径不相同,对于cnaps报文中的<credttm>子标签和citi报文中的<credttm>子标签,以此类推。

s12:从第一配置表中读取与子标签的键值对应的基础xml标签校验器的校验值,以及从第二配置表中读取金融报文的特征校验器的校验值。

一个实施例中,对金融报文进行校验的校验器包括一个或者多个的一级标签校验器,每个一级标签校验器包括一个或者多个的基础xml标签校验器,其中,一级标签校验器可以用于对金融报文的子标签的路径进行校验,基础xml标签校验器可以用于对金融报文的子标签的值、属性,以及类型进行校验。

可选地,可以预先根据与金融报文的子标签对应的基础xml标签校验器生成第一配置表,以及预先根据与金融报文的子标签对应的特征校验器生成第二配置表。

可以理解的是,预先根据与金融报文的子标签对应的基础xml标签校验器生成第一配置表,即,根据各个金融机构对不同或者相同的子标签的值、属性,以及类型的校验规范生成基础xml标签校验器,并将子标签的键值和对应的基础xml标签校验器生成第一配置表,进一步,预先根据与金融报文的子标签对应的特征校验器生成第二配置表,即,根据各个金融机构对不同或者相同的子 标签的特征点的校验规范生成第二配置表,在生成第一配置表和第二配置表后,也可以将配置表存储在服务器中,在此不作限制。

通常获取到金融报文的子标签,例如,获取到图4中cnaps报文中的<msgid>子标签和<credttm>子标签,以及图5中citi报文中的<msgid>子标签和<credttm>子标签,可以先定位<msgid>子标签和<credttm>子标签在不同金融报文中的路径。例如,在cnaps报文中,<msgid>子标签和<credttm>子标签的路径是<bktocstmracctrpt>/<grphdr>,而在citi报文中,<msgid>子标签和<credttm>子标签的路径是<cstmrcdttrfinitn>/<grphdr>,在根据不同的路径定位到<msgid>子标签和<credttm>子标签后,可以校验<msgid>子标签和<credttm>子标签的值、属性,以及类型,由于不同金融报文中相同的子标签的路径不同,因此需要对子标签重复校验,金融报文的校验效率不高。

而本发明的实施例中,在获取到金融报文的子标签后,可以从第一配置表中读取与子标签的键值对应的基础xml标签校验器的校验值,以及从第三配置表中获取与子标签的键值对应的路径校验值,其中,第一配置表是根据与金融报文的子标签对应的基础xml标签校验器预先生成的,第三配置表是根据与金融报文的一级标签对应的一级标签校验器预先生成的,以及,从第二配置表中读取金融报文的特征校验器的校验值,第二配置表是根据与金融报文的子标签对应的特征校验器预先生成的,可以实现根据子标签的键值从第一配置表、第二配置表,以及第三配置表中调取对应校验器的校验值进行校验,不需要对不同路径下的子标签进行重复校验,提升金融报文的校验效率。

s13:根据基础xml标签校验器的校验值和特征校验器的校验值对金融报文进行校验。

可选地,根据基础xml标签校验器的校验值和特征校验器的校验值对金融报文进行校验,包括:根据基础xml标签校验器的校验值对金融报文的子标签的值、属性,以及类型进行校验;根据特征校验器的校验值对金融报文的子标签的特征点进行校验。

例如,以cnaps报文为例,采用基础xml标签校验器对cnaps报文的子标签的值、属性,以及类型进行校验可以示例如下,其中,基础xml标签校验器的校验值可以包括基于iso20022标准的值、基于iso20022标准的属性,以及基于iso20022标准的类型,当子标签为“预警值通知类型”时,基于iso20022标准的值可能为“enab”(预警开启)或者“disa”(预警解除),假设cnaps报文子标签“预警值通知类型”的基于iso20022标准的值为“enab”,则当接收到的cnaps报文子标签“预警值通知类型”的值为“enab”时,该子标签“预警值通知类型”的值合法,而当接收到的cnaps报文子标签“预警值通知类型”的值为“disa”时,该子标签“预警值通知类型”的值不合法,以此完成对接收到的cnaps报文子标签“预警值通知类型”的值的校验;基于iso20022标准的属性可能为“[1..1]”(表示cnaps报文必须有子标签“预警值通知类型”,若接收到的cnaps报文没有子标签“预警值通知类型”,则对接收到的cnaps报文格式不能正常解析)或者“[0..1]”(表示cnaps报文可有可无子标签“预警值通知类型”,若接收到的cnaps报文没有填写子标签“预警值通知类型”,cnaps报文格式不会解析错误),以此完成对接收到的cnaps报文子标签“预警值通知类型”的属性的校验;基于iso20022标准的类型例如为“max4text”(文本格式,包含字母和数字,最短长度为1,最大长度为4,长度超过4时,报错),假设cnaps报文子标签“预警值通知类型”的基于iso20022标准的类型为“max4text”,则当接收到的cnaps报文子标签“预警值通知类型”的类型为“12x”时,该子标签“预警值通知类型”的值合法,而当接收到的cnaps报文子标签“预警值通知类型”的类型为“12345”时,该子标签“预警值通知类型”的值不合法,以此完成对接收到的cnaps报文子标签“预警值通知类型”的值的校验。基于iso20022标准的类型还可以例如,maxnnumerictext,表示数字串,最少1位,最多n位的数字;isodate:表示日期,格式为yyyy-mm-dd;isodatetime:表示日期和时间,格式为yyyy-mm-ddthh:mm:ss。

本实施例中,通过获取金融报文的子标签,并根据基础xml标签校验器的 校验值和特征校验器的校验值对金融报文进行校验,能够有效提升金融报文的校验效率。

图6是本发明另一实施例提出的应用于金融报文的校验方法的流程示意图。

本实施例以该应用于金融报文的校验方法被配置为应用于金融报文的校验装置中来举例说明。其中,该应用于金融报文的校验装置可以例如设置在支付系统中,本发明实施例对此不作限制。

本实施例的方法可以基于国际金融服务金融业通用报文标准(iso20022标准)。

参见图6,该方法包括:

s601:根据与金融报文的子标签对应的基础xml标签校验器生成第一配置表。

可以理解的是,预先根据与金融报文的子标签对应的基础xml标签校验器生成第一配置表,即,根据各个金融机构对不同或者相同的子标签的值、属性,以及类型的校验规范生成基础xml标签校验器,并将子标签的键值和对应的基础xml标签校验器生成第一配置表。

参见图7,本实施例中以第一配置表为基础xml标签校验配置表为例。其中,根据iso20022标准,预先根据与金融报文的子标签对应的基础xml标签校验器生成第一配置表,例如,对于子标签,它有3个iso20022标准维度的基础xml标签校验器的校验值,即,基于iso20022标准的值、基于iso20022标准的属性,以及基于iso20022标准的类型,基础xml标签校验器可以从这3个iso20022标准维度对子标签进行校验。所有对子标签进行校验的基础xml标签校验器的校验值以第一配置表的形式存储在服务器中,其中,键值(key)为common表示通用iso20022校验标准,键值(key)为金融机构标识表示该金融机构对子标签校验有特殊规范。

对于金融机构对子标签校验的特殊规范,可以通过s602进行配置。参见图 7,cnaps报文的<msgid>子标签的类型校验值不同。如果金融机构对子标签校验有特殊规范,基础xml标签校验器会从第二校验表中读取与子标签的键值对应的特征校验器的校验值进行特征点校验。

s602:根据与金融报文的子标签对应的特征校验器生成第二配置表。

可以理解的是,预先根据与金融报文的子标签对应的特征校验器生成第二配置表,即,根据各个金融机构对不同或者相同的子标签的特征点的校验规范生成第二配置表,在生成第一配置表和第二配置表后,也可以将配置表存储在服务器中,在此不作限制。

参见图8,本实施例中以第二配置表为具体报文特殊化配置表为例。其中,可以预先根据与金融报文的子标签对应的特征校验器生成第二配置表,例如文件通知报文,美银cmt.052报文,<cdtdbtind>子标签的合法值有crdt和dbit。如果是贷记业务,<cdtdbtind>子标签的值为crdt,如果是借记业务,<cdtdbtind>子标签的值为dbit;如支付类报文,pain.001报文中的<endtoendid>子标签,基础xml标签校验器的校验值中,以及iso20022标准的类型是textmax35(char类型最长35),但是,花旗银行<endtoendid>子标签长度是15,而美国银行<endtoendid>子标签,根据usach系统为15位,根据uswires系统为16位。可以将金融报文的特征校验器的校验值配置在第二配置表中。

s603:根据与金融报文的一级标签对应的一级标签校验器生成第三配置表。

参见图9,本实施例中以第三配置表为一级标签“报文基本信息”校验配置表为例。其中,可以预先根据与金融报文的一级标签对应的一级标签校验器生成第三配置表,一级标签是由至少一个的子标签组成,对应的,一级标签校验器由至少一个的基础xml标签校验器组成。不同金融机构金融报文的子标签的路径不同或者相同,本发明的实施例中,为了使一级标签校验器能校验所有的结构不同的金融报文,可以对一级标签校验器添加对子标签的路径进行校验。可选地,参见图9,一级标签“报文基本信息”校验配置表可以包括三个维度 的信息,一级标签“报文基本信息”校验配置表的最左列为组成一级标签的子标签,最右列为基础xml标签校验器,中间列为不同金融机构,子标签的路径。

s604:获取金融报文,并对金融报文进行解析以获取金融报文的子标签。

其中,金融报文用于使各个金融机构之间进行线上业务沟通,各个金融机构可以例如国内外银行机构、清算机构,或者结算机构等。金融报文例如国内的二代支付系统报文、建行报文,国外的swift报文、boa报文,以及citi报文等。

金融报文遵循iso20022标准。

可以理解的是,金融报文可以由多级标签构成,例如,金融报文包含一个或者多个一级标签,其中,每个一级标签包含一个或者多个的子标签,因此,随着金融报文所属的业务类型的不同,相同金融报文的同级标签可以具有不同或者相同的校验值。

其中,根据金融报文所属的业务类型,可以将金融报文划分为支付类报文、非支付类报文、批量支付类报文,以及文件通知报文。

参见图2,图2为本发明实施例中金融报文的一级标签示意图,其中,支付类报文的一级标签例如报文基本信息、原报文基本信息、报文业务渠道信息等;非支付类报文的一级标签例如报文基本信息、原报文基本信息、报文业务渠道信息等;批量支付类报文的一级标签例如批量包头信息和批量组头信息;文件通知报文的一级标签例如报文基本信息、原报文基本信息、路由信息等。

一个实施例中,参见图3,每个一级标签包含一个或者多个的子标签,对图2中的“业务处理信息”一级标签进行细粒度示例,非支付类报文的一级标签“业务处理信息”中可以特有“业务状态码”子标签,支付类报文和文件通知报文特有“清算日期”和“处理状态”子标签,而所有业务类型的金融报文共有“响应返回码”、“响应描述信息”、“处理日期”、“轧差日期”、“轧差场次”,以及“业务参与机构行号”子标签,其中,所有业务类型的金融报文共有的子标签的值和类型一致,即遵循iso20022标准。

本实施例中以通过可扩展标记语言(extensiblemarkuplanguage,xml)标记金融报文示例。

进一步,可选地,参见图4和图5,图4为本发明实施例中以二代支付系统的cnaps报文(saps.360.001.01)的xml文件示意图,图5为本发明实施例中以花旗银行报文citi报文的xml文件示意图。

其中,标签<?xml>用于说明xml版本和解码方式等信息;标签<document>用于说明xml命名空间,标签<?xml>和标签<document>是所有金融报文的必要标签。<bktocstmracctrpt>是cnaps报文saps.360.001.01的根标签;<msgid>是的子标签,其中,<msgid>子标签的路径是<bktocstmracctrpt>/<grphdr>。相同<msgid>子标签在citi报文的路径是<cstmrcdttrfinitn>/<grphdr>。可以理解的是,虽然cnaps报文中的<msgid>子标签和citi报文中的<msgid>子标签的值、属性,以及类型相同,但是路径不相同,对于cnaps报文中的<credttm>子标签和citi报文中的<credttm>子标签,以此类推。

s605:获取与金融报文所属的业务类型对应的目标校验器,其中,目标校验器包含至少一个的一级标签校验器,每个一级标签校验器包含至少一个的基础xml标签校验器。

参见图10,图10为本发明实施例中目标校验器的结构示意图,其中,图10包括根据金融报文所属的业务类型进行分类的目标校验器101,一级标签校验器102,以及基础xml标签校验器103。目标校验器由至少一个的一级标签校验器组成,一级标签校验器由至少一个的基础xml标签校验器组成。不同的目标校验器101中所包含的一级标签校验器不同或者相同,且不同的目标校验器101中所包含的一级标签校验器的个数不同或者相同。进一步,可以理解的是,不同的一级标签校验器102中所包含的基础xml标签校验器不同或者相同,且不同的一级标签校验器102中所包含的基础xml标签校验器的个数不同或者相同。

一个可替换的实施例中,参见图11,根据金融报文所属的业务类型,可以 将金融报文划分为支付类报文、非支付类报文、批量支付类报文,以及文件通知报文。可以理解的是,由于相同业务类型的金融报文包含的一级标签校验器的总类可能相同,因此,可以根据金融报文的业务类型封装四个通用校验器,该通用校验器包含至少一个的一级标签校验器。

s606:从至少一个的基础xml标签校验器中获取与子标签的键值对应的基础xml标签校验器。

例如,在实际校验的过程中,可以先判断该金融报文所属的业务类型,并获取与金融报文所属的业务类型对应的通用校验器作为目标校验器,后续从目标校验器中的至少一个的基础xml标签校验器中获取与子标签的键值对应的基础xml标签校验器即可,不需要遍历所有子标签的基础xml标签校验器,减少了校验金融报文的子标签需要的基础xml标签校验器的个数,提升金融报文的校验效率。

s607:从第一配置表中读取与子标签的键值对应的基础xml标签校验器的校验值,以及从第二配置表中读取金融报文的特征校验器的校验值。

本发明的实施例中,在获取到金融报文的子标签后,可以从第一配置表中读取与子标签的键值对应的基础xml标签校验器的校验值,其中,第一配置表是根据与金融报文的子标签对应的基础xml标签校验器预先生成的,以及,从第二配置表中读取金融报文的特征校验器的校验值,第二配置表是根据与金融报文的子标签对应的特征校验器预先生成的,可以实现根据子标签的键值从第一配置表、第二配置表中调取对应校验器的校验值进行校验,不需要对不同路径下的子标签进行重复校验,提升金融报文的校验效率。

s608:根据基础xml标签校验器的校验值对金融报文的子标签的值、属性,以及类型进行校验。

例如,以cnaps报文为例,采用基础xml标签校验器对cnaps报文的子标签的值、属性,以及类型进行校验可以示例如下,其中,基础xml标签校验器的校验值可以包括基于iso20022标准的值、基于iso20022标准的属性,以及 基于iso20022标准的类型,当子标签为“预警值通知类型”时,基于iso20022标准的值可能为“enab”(预警开启)或者“disa”(预警解除),假设cnaps报文子标签“预警值通知类型”的基于iso20022标准的值为“enab”,则当接收到的cnaps报文子标签“预警值通知类型”的值为“enab”时,该子标签“预警值通知类型”的值合法,而当接收到的cnaps报文子标签“预警值通知类型”的值为“disa”时,该子标签“预警值通知类型”的值不合法,以此完成对接收到的cnaps报文子标签“预警值通知类型”的值的校验;基于iso20022标准的属性可能为“[1..1]”(表示cnaps报文必须有子标签“预警值通知类型”,若接收到的cnaps报文没有子标签“预警值通知类型”,则对接收到的cnaps报文格式不能正常解析)或者“[0..1]”(表示cnaps报文可有可无子标签“预警值通知类型”,若接收到的cnaps报文没有填写子标签“预警值通知类型”,cnaps报文格式不会解析错误),以此完成对接收到的cnaps报文子标签“预警值通知类型”的属性的校验;基于iso20022标准的类型例如为“max4text”(文本格式,包含字母和数字,最短长度为1,最大长度为4,长度超过4时,报错),假设cnaps报文子标签“预警值通知类型”的基于iso20022标准的类型为“max4text”,则当接收到的cnaps报文子标签“预警值通知类型”的类型为“12x”时,该子标签“预警值通知类型”的值合法,而当接收到的cnaps报文子标签“预警值通知类型”的类型为“12345”时,该子标签“预警值通知类型”的值不合法,以此完成对接收到的cnaps报文子标签“预警值通知类型”的值的校验。基于iso20022标准的类型还可以例如,maxnnumerictext,表示数字串,最少1位,最多n位的数字;isodate:表示日期,格式为yyyy-mm-dd;isodatetime:表示日期和时间,格式为yyyy-mm-ddthh:mm:ss。

s609:根据特征校验器的校验值对金融报文的子标签的特征点进行校验。

例如,在从第二配置表中读取金融报文的特征校验器的校验值后,根据特征校验器的校验值对金融报文的子标签的特征点进行校验。

s610:从第三配置表中获取与子标签的键值对应的路径校验值。

本发明的实施例中,在获取到金融报文的子标签后,还可以从第三配置表中获取与子标签的键值对应的路径校验值,其中,第三配置表是根据与金融报文的一级标签对应的一级标签校验器预先生成的,可以实现根据子标签的键值从第三配置表中调取对应校验器的校验值进行路径校验,在保证金融报文子标签路径校验的精确度的情况下,提升金融报文的校验效率。

s611:根据对应的路径校验值对金融报文的子标签的路径进行校验。

例如,在从第三配置表中读取金融报文的路径校验值后,根据路径校验值对金融报文的子标签的路径进行校验。

本实施例中,通过增加一级标签对子标签的路径校验,使一级标签校验器能适用于任何结构不相同的金融报文的校验,在保证金融报文子标签路径校验的精确度的情况下,提升金融报文的校验效率。通过先判断该金融报文所属的业务类型,并获取与金融报文所属的业务类型对应的通用校验器作为目标校验器,后续从目标校验器中的至少一个的基础xml标签校验器中获取与子标签的键值对应的基础xml标签校验器即可,不需要遍历所有子标签的基础xml标签校验器,减少了校验金融报文的子标签需要的基础xml标签校验器的个数,提升金融报文的校验效率。通过获取金融报文的子标签,并根据基础xml标签校验器的校验值和特征校验器的校验值对金融报文进行校验,能够有效提升金融报文的校验效率。

图12是本发明另一实施例提出的应用于金融报文的校验装置的结构示意图。

其中,该应用于金融报文的校验装置可以例如设置在支付系统中,本发明实施例对此不作限制。

本实施例的方法可以基于国际金融服务金融业通用报文标准(iso20022标准)。

参见图12,该装置120包括:第一获取模块121、读取模块122,以及校验模块123。其中,

第一获取模块121,用于获取金融报文,并对金融报文进行解析以获取金融报文的子标签。

读取模块122,用于从第一配置表中读取与子标签的键值对应的基础xml标签校验器的校验值,以及从第二配置表中读取金融报文的特征校验器的校验值。

校验模块123,用于根据基础xml标签校验器的校验值和特征校验器的校验值对金融报文进行校验。

可选地,一些实施例中,参见图13,该装置120还包括:

第二获取模块124,用于获取与金融报文所属的业务类型对应的目标校验器,其中,目标校验器包含至少一个的一级标签校验器,每个一级标签校验器包含至少一个的基础xml标签校验器。

第三获取模块125,用于从至少一个的基础xml标签校验器中获取与子标签的键值对应的基础xml标签校验器。

第四获取模块126,用于从第三配置表中获取与子标签的键值对应的路径校验值。

配置模块127,用于根据与金融报文的子标签对应的基础xml标签校验器生成第一配置表;根据与金融报文的子标签对应的特征校验器生成第二配置表。

配置模块127还用于:根据与金融报文的一级标签对应的一级标签校验器生成第三配置表。

可选地,一些实施例中,参见图13,校验模块123还包括:

基础信息校验子模块1231,用于根据基础xml标签校验器的校验值对金融报文的子标签的值、属性,以及类型进行校验。

特征点校验子模块1232,用于根据特征校验器的校验值对金融报文的子标签的特征点进行校验。

路径校验子模块1233用于根据对应的路径校验值对金融报文的子标签的路径进行校验。

需要说明的是,前述对应用于金融报文的校验方法实施例的解释说明也适用于该实施例的应用于金融报文的校验装置120,其实现原理类似,此处不再赘述。

本实施例中,通过增加一级标签对子标签的路径校验,使一级标签校验器能适用于任何结构不相同的金融报文的校验,在保证金融报文子标签路径校验的精确度的情况下,提升金融报文的校验效率。通过先判断该金融报文所属的业务类型,并获取与金融报文所属的业务类型对应的通用校验器作为目标校验器,后续从目标校验器中的至少一个的基础xml标签校验器中获取与子标签的键值对应的基础xml标签校验器即可,不需要遍历所有子标签的基础xml标签校验器,减少了校验金融报文的子标签需要的基础xml标签校验器的个数,提升金融报文的校验效率。通过获取金融报文的子标签,并根据基础xml标签校验器的校验值和特征校验器的校验值对金融报文进行校验,能够有效提升金融报文的校验效率。

需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有 用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1