报文组装方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种用于银行仿真测试系统的报文组装方法及装置。
背景技术
目前,银行与第三方支付机构之间开展了使用银行卡验证、付款、提现等业务,这些业务绝大部分是通过同步接口收发报文的方式完成的。当第三方支付机构需要对涉及这些接口的业务系统进行单方面技术改造时,为保证对于银行端不产生影响,需要保证发给银行端所有报文与技术改造之前完全的一致,包括报文格式,报文内容,编码方式等等。
目前,技术改进采用的测试方法主要有以下三种方式:一、联系银行提供联调环境进行测试。该方式需要获得银行的配合、及银行额外的技术资源的投入,会导致银行成本的增加,部分银行也可能根本无法提供合适的测试环境。二、通过人工比对改造前后报文是否一致。该种方式需要人工额外投入,而且报文格式多样,参数繁多,人工比对很容易出现纰漏。三是采用线上环境或准线上环境进行试运行保证。但这种方式需要准备相应银行的真实银行卡,且一些特殊银行卡状态比如冻结、挂失等异常很难模拟,需要去银行办理,也会直接影响顾客的真实交易,引起客户投诉。
上述测试方式均需要逐一针对各家银行进行测试,大大降低了测试效率、增加了测试成本,鉴于此,有必要找到一种能够将各银行金融机构融合的适用于第三方支付机构的银行仿真测试系统。
发明内容
本申请实施例提供一种报文组装方法,用以解决现有技术中无法将多家金融机构进行融合测试的问题。
本申请实施例提供一种报文组装装置,用以解决现有技术中无法将多家金融机构进行融合测试的问题。
本申请实施例采用下述技术方案:
一种报文组装方法,包括:
获得报文组装码;其中,所述报文组装码包括金融机构代码;
依据所述金融机构代码调用与所述金融机构对应的组装模板,组装并生成报文。
一种报文组装装置,包括:
获取单元,用于获得报文组装码;其中,所述报文组装码包括金融机构代码;
组装单元,用于依据所述金融机构代码调用与所述金融机构对应的组装模板,组装并生成报文。
本申请实施例提供的上述至少一个方案可以达到下述技术效果:
通过报文组装码的方式来组装报文,在所述报文组装码内集成金融机构代码,再通过金融机构代码从本地调取对应金融机构对应的已配置好的组装模板来进行报文组装,可以解决现有技术中无法将多家金融机构进行融合测试的问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例一提供的报文组装方法流程图;
图2为本申请实施例二提供的仿真测试方法流程图;
图3为本申请实施例三提供的报文处理方法流程图;
图4为本申请实施例四提供的报文组装装置结构示意图;
图5为本申请实施例五提供的仿真测试装置结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例一提供的报文组装方法流程,主要是指通过获取报文组装码,再依据报文组装码来组装报文,具体包括以下步骤:
S101:获得报文组装码。
所述报文组装码是动态生成的一串驱动数据,包括金融机构代码、表示报文类型的报文类型代码、表示对所述金融机构的请求报文的处理结果的代码;延迟发送时间标识;与所述金融机构和第三方支付机构的错误码相对应的返回码。
每个金融机构对应一个金融机构代码。
每一个金融机构对于报文类型的定义各不相同,每一个金融机构对应有若干报文类型代码,如下表1所示的报文类型代码示例:
报文类型代码 |
含义 |
01 |
支付 |
02 |
验证 |
03 |
签约 |
04 |
提现 |
05 |
充退 |
06 |
支付查询 |
07 |
验证查询 |
08 |
签约查询 |
09 |
提现查询 |
10 |
充提查询 |
11 |
文件类报文 |
12 |
握手报文 |
··· |
··· |
表1
S102:依据所述报文组装码组装报文。
报文的组装需要依据不同的金融机构调用不同的组装模板进行组装,所述组装模板与所述报文组装码中的金融机构代码及报文类型代码存在映射关系。在组装报文之前,需要依据所述金融机构代码、及报文类型代码从本地数据库中调用对应的组装模板,依据该组装模板将所述报文组装码组装成报文。
在具体实施中,存在所述组装模板仅与所述金融机构代码存在映射关系的情况,也在本案保护范围之内。
组装报文时,所述报文组装码的内容被组装为报文。
需要说明的是,实施例一所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。
图2为本申请实施例二的金融机构仿真测试方法流程,该测试方法中采用了实施例一中的报文组装方法,包括如下步骤:
S201:接收报文。
接收报文是指系统接收来自请求方的请求报文,所述请求方为第三方支付机构。接收报文的同时获取请求方的发送地址。
S202:解析报文。
解析报文主要是从请求报文中解析出报文内容,依据报文发送地址从本地缓存中调用对应的解析所述报文的报文格式,并根据所述报文格式,从所述报文中解析出报文内容。
所述请求报文内容包括金融机构代码、报文类型、姓名、证件号码、证件类型、银行卡号、手机号、交易号等。
S203:处理报文并得到处理结果。
依据所述报文内容进行对应的处理操作,并生成作为所述报文组装码的处理结果。
主要是依据所述报文内容的金融机构代码、报文类型从本地读出报文类型码,通过执行与所述报文类型码相对应的处理操作并获得处理结果:
当所述报文类型码表示的报文类型为交易类或信息类时,通过比对所述报文内容中的特定信息和从本地捞取的预设金融机构卡信息,得到所述处理结果;
当所述报文类型码表示的报文类型为流水查询类,且所述报文内容包括交易号时,依据所述交易号,从本地读取对应的查询结果作为所述处理结果。
S204:获得报文组装码。
所述报文组装码是通过上一步的报文处理得到的,是一串动态生成的驱动数据,包括金融机构代码、表示报文类型的报文类型代码、表示对所述金融机构的请求报文的处理结果的代码;延迟发送时间标识;与所述金融机构和第三方支付机构的错误码相对应的返回码。
每个金融机构对应一个金融机构代码。
每一个金融机构对于报文类型的定义各不相同,每一个金融机构对应有若干报文类型代码,如下表1所示的报文类型代码示例:
报文类型代码 |
含义 |
01 |
支付 |
02 |
验证 |
03 |
签约 |
04 |
提现 |
05 |
充退 |
06 |
支付查询 |
07 |
验证查询 |
08 |
签约查询 |
09 |
提现查询 |
10 |
充提查询 |
11 |
文件类报文 |
12 |
握手报文 |
··· |
··· |
表1
S205:依据所述报文组装码组装报文。
报文的组装需要依据不同的金融机构调用不同的组装模板进行组装,所述组装模板与所述报文组装码中的金融机构代码及报文类型代码存在映射关系。在组装报文之前,需要依据所述金融机构代码、及报文类型代码从本地数据库中调用对应的组装模板,依据该组装模板将所述报文组装码组装成报文,此处的组装的报文为测试后的返回报文。
在具体实施中,存在所述组装模板仅与所述金融机构代码存在映射关系的情况,也在本案保护范围之内。
组装报文时,所述报文组装码的内容被组装为报文。
S206:发送报文。
发送报文是指将组装好的返回报文发送至请求报文的发送地址。
需要说明的是,实施例二所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。
实施例一、实施例二通过报文组装码组装报文的方式将所有金融机构融合于一个测试系统之内,降低了开发成本、测试成本。
图3所示实施例三是报文处理方法流程,具体指实施例二中的S203步骤的报文处理方法,即依据请求报文内容进行对应的处理操作,并生成作为报文组装码的处理结果,包括如下步骤:
S301:依据报文类型从本地缓存读取报文类型码。
所述报文是第三方支付机构发送的请求报文,所述请求报文的内容包括金融机构代码、报文类型、用户姓名、证件号码、证件类型、银行卡号、手机号、交易号等。
依据所述金融机构代码及报文类型从本地读取报文类型码,所述请求报文的报文类型与所述报文类型码存在映射关系。
S302:验证所述报文类型码并进行对应处理操作。
对所述报文类型码进行判断:
当所述报文类型码为交易、或信息类时,则从本地捞取预设的金融机构卡信息与所述报文内容进行对比:对比时,逐一比对预设金融卡信息与报文内容的金融机构代码、报文类型、用户姓名、证件号码、证件类型、银行卡号、手机号、交易号等信息,如全部匹配则返回正常结果,并进行交易流水记录,并将交易信息写入数据库或者依据交易号查询交易结果,并返回处理结果;如任一项或多项不匹配则返回错误处理结果。
当所述报文类型码为其他类时,则进行异常处理并返回处理结果。
S303:依据所述处理结果生成报文组装码。
以上为本申请实施例一提供了报文组装方法、实施例二提供的基于实施例一的报文组装方法的仿真测试方法,基于同样的思路,本申请实施例还提供相应的报文组装装置、仿真测试装置。
图4所示为本申请实施例四提供的报文组装装置的结构示意图,具体包括:
获取单元401,用于获得报文组装码;其中,所述报文组装码包括金融机构代码;
组装单元402,用于依据所述金融机构代码调用与所述金融机构对应的组装模板,组装并生成报文。
所述报文组装码是动态生成的一串驱动数据,包括金融机构代码、表示报文类型的报文类型代码、表示对所述金融机构的请求报文的处理结果的代码;延迟发送时间标识;与所述金融机构和第三方支付机构的错误码相对应的返回码。
每个金融机构对应一个金融机构代码。每一个金融机构对于报文类型的定义各不相同,每一个金融机构对应有若干报文类型代码,如下表1所示的报文类型代码示例:
报文类型代码 |
含义 |
01 |
支付 |
02 |
验证 |
03 |
签约 |
04 |
提现 |
05 |
充退 |
06 |
支付查询 |
07 |
验证查询 |
08 |
签约查询 |
09 |
提现查询 |
10 |
充提查询 |
11 |
文件类报文 |
12 |
握手报文 |
··· |
··· |
所述金融机构代码、或金融机构代码与报文类型代码的组合与所述组装模板之间存在映射关系,所述组装单元402依据所述金融机构代码、或金融机构代码与报文类型代码调用保存于本地与所述报文组装码中包含的所述金融机构代码相映射的组装模板;最后,所述组装单元402依据所述组装模板,采用以所述报文组装码作为报文内容的方式组装报文。
图5所示为本申请实施例五提供的仿真测试装置的结构示意图,具体包括:
接收单元501,用于接收报文;
解析单元502,用于从所述报文中解析出报文内容;
处理单元503,用于依据所述报文内容进行对应的处理操作,并生成作为报文组装码的处理结果;
获取单元504,用于获取所述报文组装码,其中,所述报文组装码包括金融机构代码;
组装单元505,用于依据所述金融机构代码调用与所述金融机构对应的组装模板,组装并生成报文;
发送单元506,用于发送所述组装单元505组装好的报文。
所述接收单元501接收的报文是来自请求方的请求报文,所述请求方为第三方支付机构,接收报文的同时获取请求方的发送地址。
所述解析单元502解析报文主要是从请求报文中解析出报文内容,依据报文发送地址从本地缓存中调用对应的解析所述报文的报文格式,并根据所述报文格式,从所述报文中解析出报文内容。
所述请求报文内容包括金融机构代码、报文类型、姓名、证件号码、证件类型、银行卡号、手机号、交易号等。
所述处理单元503依据所述报文内容进行对应的处理操作,并生成作为所述报文组装码的处理结果,具体如下:
所述处理单元503依据所述报文内容的金融机构代码、报文类型从本地读出报文类型码,并通过执行与所述报文类型码相对应的处理操作并获得处理结果:
当所述报文类型码表示的报文类型为交易类或信息类时,通过比对所述报文内容中的特定信息和从本地捞取的预设金融机构卡信息,得到所述处理结果;
当所述报文类型码表示的报文类型为流水查询类,且所述报文内容包括交易号时,依据所述交易号,从本地读取对应的查询结果作为所述处理结果。
所述获取单元504获取所述处理单元503的处理结果并作为报文组装码,所述报文组装码是一串动态生成的驱动数据,包括金融机构代码、表示报文类型的报文类型代码、表示对所述金融机构的请求报文的处理结果的代码;延迟发送时间标识;与所述金融机构和第三方支付机构的错误码相对应的返回码。
每个金融机构对应一个金融机构代码。一个金融机构对于报文类型的定义各不相同,每一个金融机构对应有若干报文类型代码,如下表1所示的报文类型代码示例:
报文类型代码 |
含义 |
01 |
支付 |
02 |
验证 |
03 |
签约 |
04 |
提现 |
05 |
充退 |
06 |
支付查询 |
07 |
验证查询 |
08 |
签约查询 |
09 |
提现查询 |
10 |
充提查询 |
11 |
文件类报文 |
12 |
握手报文 |
··· |
··· |
表1
所述组装单元505组装报文需要依据不同的金融机构调用不同的组装模板进行组装,所述组装模板与所述报文组装码中的金融机构代码及报文类型代码存在映射关系。在组装报文之前,需要依据所述金融机构代码、及报文类型代码从本地数据库中调用对应的组装模板。所述组装单元505依据该组装模板将所述报文组装码内容组装成报文,此处的组装的报文为测试后的返回报文。
所述组装模板也可以仅与所述金融机构代码存在映射关系的情况,也在本案保护范围之内。
所述发送单元506是将所述组装单元505组装好的返回报文发送至请求报文的发送地址。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。