脱机交易记录保存方法、装置、计算机设备和存储介质与流程

文档序号:11216097
脱机交易记录保存方法、装置、计算机设备和存储介质与流程

本发明涉及计算机技术领域,特别是涉及一种脱机交易记录保存方法、装置、计算机设备和存储介质。



背景技术:

在脱机交易设备中,脱机交易完成后,会在本地存储脱机交易记录。当脱机交易记录达到一定数量时,脱机交易设备将脱机交易记录上传给后台。如果在脱机交易记录上传之前,脱机交易设备发生了故障,很可能出现脱机交易记录不完整的问题。因此,如何有效保存脱机交易记录,提高脱机交易记录完整性是目前需要解决的一个技术问题。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种既能有效保存脱机交易记录又能提高脱机交易记录完整性的脱机交易记录保存方法、装置、计算机设备和存储介质。

一种脱机交易记录保存方法,所述方法包括:

获取第一存储装置的第一文件,所述第一文件包括脱机交易记录;

获取第二存储装置的第二文件,所述第二文件包括脱机交易记录;

对所述第一文件和所述第二文件分别进行完整性校验;

若所述第一文件校验成功且所述第二文件校验失败,则利用所述第一文件中的脱机交易记录替换所述第二文件中的脱机交易记录,在所述第二存储装置中保存替换后的第二文件;若所述第一文件校验失败且所述第二文件校验成功,则利用所述第二文件中的脱机交易记录替换所述第一文件中的脱机交易记录,在所述第一存储装置中保存替换后的第一文件。

在其中一个实施例中,所述对所述第一文件和所述第二文件分别进行完整性校验的步骤之后,所述方法还包括:

若所述第一文件和所述第二文件均校验成功,则获取所述第一文件长度和所述第二文件长度;

对所述第一文件长度和所述第二文件长度进行一致性校验。

在其中一个实施例中,所述第一文件还包括第一校验码,所述完整性校验包括对所述第一文件长度进行校验,所述对所述第一文件长度进行校验的步骤,包括:

获取所述第一文件长度;

获取单条脱机交易记录字节数,所述单条脱机交易记录字节数包括所述第一文件中的单条脱机交易记录占用的字节;

获取校验码字节数,所述校验码字节数包括所述第一校验码占用的字节;

通过所述单条脱机交易记录字节数、所述校验码字节数和所述第一文件长度,计算所述第一文件中的脱机交易记录条数;

判断所述第一文件中的脱机交易记录条数是否为正整数;

若不是,则所述第一文件校验失败。

在其中一个实施例中,所述第一文件还包括第一校验码,所述完整性校验还包括对校验码进行校验,所述对校验码进行校验包括对所述第一校验码进行校验的步骤,包括:

获取预设的密钥;

通过所述密钥和所述第一文件中的脱机交易记录计算所述第一文件对应的第一完整性校验码;

判断所述第一文件的第一校验码是否与所述第一文件对应的第一完整性校验码相等;

若不相等,则所述第一文件校验失败。

在其中一个实施例中,所述第一存储装置为内存储装置,所述第二存储装置为外存储装置,对所述第一文件长度和所述第二文件长度进行一致性校验的步骤,包括:

若所述第一文件长度大于所述第二文件长度,则利用所述第一文件中的脱机交易记录替换所述第二文件中的脱机交易记录;

若所述第一文件长度等于所述第二文件长度且内容不一致,则利用所述第一文件中的脱机交易记录替换所述第二文件中的脱机交易记录;

若所述第一文件长度小于所述第二文件长度,则利用所述第二文件中的脱机交易记录替换所述第一文件中的脱机交易记录。

一种脱机交易记录保存装置,所述装置包括:

获取模块,用于获取第一存储装置的第一文件,所述第一文件包括脱机交易记录;获取第二存储装置的第二文件,所述第二文件包括脱机交易记录;

校验模块,用于对所述第一文件和所述第二文件分别进行完整性校验;

替换模块,用于若所述第一文件校验成功且所述第二文件校验失败,则利用所述第一文件中的脱机交易记录替换所述第二文件中的脱机交易记录;若所述第一文件校验失败且所述第二文件校验成功,则利用所述第二文件中的脱机交易记录替换所述第一文件中的脱机交易记录;保存模块,用于在所述第二存储装置中保存替换后的第二文件,在所述第一存储装置中保存替换后的第一文件。

在其中一个实施例中,所述获取模块还用于若所述第一文件和所述第二文件均校验成功,则获取所述第一文件长度和所述第二文件长度,所述校验模块还用于对所述第一文件长度和所述第二文件长度进行一致性校验。

在其中一个实施例中,所述第一文件还包括第一校验码,所述校验模块还用于对所述第一文件长度进行校验,包括:获取所述第一文件长度;获取单条脱机交易记录字节数,所述单条脱机交易记录字节数包括所述第一文件中的单条脱机交易记录占用的字节;获取校验码字节数,所述校验码字节数包括所述第一校验码占用的字节;通过所述单条脱机交易记录字节数、所述校验码字节数和所述第一文件长度,计算所述第一文件中的脱机交易记录条数;判断所述第一文件中的脱机交易记录条数是否为正整数;若不是,则所述第一文件校验失败。

一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中提供的方法步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中提供的方法步骤。

上述脱机交易记录保存方法、装置、计算机设备和存储介质,脱机交易设备通过第一存储装置和第二存储装置分别存储脱机交易记录,降低了第一存储装置和第二存储装置同时故障的可能性。通过对第一文件和第二文件进行完整性校验,可以发现脱机交易记录是否完整。通过将校验成功的文件中的脱机交易记录替换校验失败的文件中的脱机交易记录,使第一文件中的脱机交易记录和第二文件中的脱机交易记录完整、一致,进一步提高脱机交易记录的完整性。

附图说明

图1为一个实施例中脱机交易记录保存方法的流程图;

图2为一个实施例中脱机交易记录保存装置的结构示意图;

图3为一个实施例中计算机设备的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

在一个实施例中,如图1所示,提供了一种脱机交易记录保存方法,以该方法应用于脱机交易设备为例进行说明,具体包括:

步骤102,获取第一存储装置的第一文件,第一文件包括脱机交易记录。

步骤104,获取第二存储装置的第二文件,第二文件包括脱机交易记录。

脱机交易设备是指在脱机状态下进行脱机交易的金融脱机交易设备,可以是公交车车载收费终端、地铁收费终端或食堂收费终端等。部分联机交易设备在脱机状态下也可以作为脱机交易设备使用,例如,POS机(Point of Sales Terminal,销售点终端管理系统)。

传统的脱机交易设备只包括一个存储装置。一旦存储装置发生故障,脱机交易记录将会丢失。本实施例中的脱机交易设备可以包括两个或两个以上存储装置,存储装置包括内存储装置和外存储装置。内存储装置可以包括至少一个存储装置,内存储装置可以是FLASH存储装置,也可以是SRAM(Static Random Access Memory,静态随机存取存储器)存储装置。外存储装置可以包括至少一个存储装置,外存储装置可以是SD卡(Secure Digital Card)存储装置,也可以是ESAM卡(Embedded Secure Access Module,嵌入式安全模块)。内存储装置中的一个存储装置可以叫做第一存储装置,外存储装置中的一个存储装置可以叫做第二存储装置。内存储装置中的一个存储装置也可以叫做第二存储装置,外存储装置中的一个存储装置相应的叫做第一存储装置。存储装置中存储了多个文件,包括脱机交易记录文件。脱机交易记录文件中存储了脱机交易记录。脱机交易记录文件包括第一文件和第二文件,脱机交易设备在第一存储装置中存储了第一文件,第二存储装置中存储了第二文件。

当脱机交易设备发生交易时,产生脱机交易记录。脱机交易记录包括脱机交易信息,例如,脱机交易时间、脱机交易金额以及脱机交易方式等。脱机交易设备将脱机交易记录写入存储装置的脱机交易记录文件中,具体地,将脱机交易记录分别写入第一存储装置中的第一文件以及第二存储装置中的第二文件。

步骤106,对第一文件和第二文件分别进行完整性校验。

当脱机交易设备向脱机交易记录文件写入脱机交易记录时,如果脱机交易记录写入失败,将导致脱机交易记录文件中的脱机交易记录不完整。为了确保脱机交易记录完整,脱机交易设备需要对脱机交易记录文件进行完整性校验,包括对第一文件和对第二文件分别进行完整性校验。

具体地,脱机交易设备对脱机交易记录文件进行完整性校验,包括对脱机交易记录文件长度进行校验以及对脱机交易记录文件中的校验码进行校验。其中,脱机交易设备通过对脱机交易记录文件长度进行校验,可以检测出部分脱机交易记录不完整的脱机交易记录文件。例如,当脱机交易设备写入脱机交易记录时,脱机交易设备发生断电,脱机交易设备无法继续写入该条脱机交易记录,则该条脱机交易记录文件不完整。

脱机交易设备对脱机交易记录文件长度进行校验时,首先,脱机交易设备获取脱机交易记录文件长度、单条脱机交易记录字节数和校验码字节数。其次,脱机交易设备通过脱机交易记录文件长度、单条脱机交易记录字节数和校验码字节数计算脱机交易记录条数。然后,判断脱机交易记录条数是否为正整数,如果脱机交易记录条数不是正整数,说明脱机交易记录不完整,则该脱机交易记录文件校验失败。通过脱机交易记录文件长度计算脱机交易记录条数,可以根据脱机交易记录条数判断脱机交易记录是否残缺,初步确定脱机交易记录的完整性。

进一步地,如果脱机交易设备写入脱机交易记录时,突然发生断电,且断电时刻写入的那条脱机交易记录字节数等于校验码字节数,校验码没有生成,则通过对脱机交易记录文件长度进行校验时,脱机交易设备将该条不完整的脱机交易记录误认为校验码,无法检查出脱机交易记录是否完整。因此,脱机交易设备对脱机交易记录文件长度进行校验之后,还可以进一步对脱机交易记录文件中的校验码进行校验。脱机交易文件中除了脱机交易记录之外,还包括校验码。校验码是利用脱机交易记录文件中的脱机交易记录和预存的密钥生成的。第一文件中包括脱机交易记录和第一校验码。第二文件中包括脱机交易记录和第二校验码。脱机交易设备对脱机交易记录文件长度进行校验之后,对脱机交易记录文件中的校验码进行校验。

具体地,脱机交易设备获取预设的密钥,通过密钥和第一文件中的脱机交易记录计算第一文件的第一完整性校验码,判断第一校验码是否与第一完整性校验码相等。如果相等,表示第一校验码包含的脱机交易记录信息和第一完整性校验码第一完整性校验码包含的脱机交易记录信息一致,第一文件的完整性校验成功;若不相等,表示第一校验码的第一完整性校验码不是正确的校验码,而是不完整的脱机交易记录,第一文件中的脱机交易记录不完整,则第一文件的完整性校验失败。

可以理解地,脱机交易设备对第二文件进行校验码校验也可以采用上述方式,不再赘述。校验码包括脱机交易记录属性,脱机交易设备通过对校验码进行校验进一步确定脱机交易记录文件中的脱机交易记录的完整性。

步骤108,若第一文件校验成功且第二文件校验失败,则利用第一文件的脱机交易记录替换第二文件的脱机交易记录,在第二存储装置中保存替换后的第二文件;若第一文件校验失败且第二文件校验成功,则利用第二文件中的脱机交易记录替换第一文件中的脱机交易记录,在第一存储装置中保存替换后的第一文件。

脱机交易设备对第一文件和第二文件分别进行完整性校验之后,获取第一文件和第二文件的完整性校验结果。完整性校验结果是指脱机交易记录文件校验成功或校验失败的结果。如果第一文件校验成功且第二文件校验失败,说明第一文件中的脱机交易记录保存完整且第二文件中的脱机交易记录保存不完整,脱机交易设备利用第一文件中的脱机交易记录替换第二文件中的脱机交易记录,在第二存储装置中保存替换后的第二文件。反之,如果第二文件校验成功且第一文件校验失败,说明第二文件中的脱机交易记录保存完整且第一文件中的脱机交易记录保存不完整,则利用第二文件替换第一文件,在第一存储装置中保存替换后的第一文件。脱机交易设备通过将校验成功的文件替换校验失败的文件,脱机交易记录不完整的文件替换成了脱机交易记录完整的文件,第一文件中的脱机交易记录和第二文件中的脱机交易记录均完整,且达到了一致。

在一个实施例中,脱机交易设备根据脱机交易记录文件的完整性校验结果替换脱机交易记录文件的内容,可以替换脱机交易记录文件中的脱机交易记录,也可以替换脱机交易记录文件中的脱机交易记录和校验码,还可以直接将脱机交易记录文件替换。例如,如果第一文件校验成功且第二文件校验失败,脱机交易设备可以利用第一文件中的脱机交易记录替换第二文件中的脱机交易记录,也可以利用第一文件中的脱机交易记录和第一校验码分别替换第二文件中的脱机交易记录和第二校验码,还可以将第一文件直接替换第二文件。脱机交易设备直接替换脱机交易记录文件的方法较为简单。

本实施例中,脱机交易设备的存储装置包括第一存储装置和第二存储装置,存储装置中包括脱机交易记录文件,脱机交易记录文件包括第一文件和第二文件,其中,第一文件存储在第一存储装置中,第二文件存储在第二存储装置中。脱机交易设备对第一文件和第二文件分别进行完整性校验,若第一文件校验成功且第二文件校验失败,则利用第一文件的脱机交易记录替换第二文件的脱机交易记录,在第二存储装置中保存替换后的第二文件,反之亦可。脱机交易设备通过第一存储装置和第二存储装置分别存储脱机交易记录,降低了存储装置故障的可能性。通过对第一文件和第二文件进行完整性校验,可以发现脱机交易记录是否完整。通过将校验成功的文件中的脱机交易记录替换校验失败的文件中的脱机交易记录,使第一文件中的脱机交易记录和第二文件中的脱机交易记录完整、一致,进一步提高脱机交易记录的完整性。

在一个实施例中,对第一文件和第二文件分别进行完整性校验的步骤之后,还包括:若第一文件和第二文件均校验成功,则获取第一文件长度和第二文件长度;对第一文件长度和第二文件长度进行一致性校验。

脱机交易设备向存储装置写入脱机交易记录之前,如果其中一个脱机交易记录文件中已经存有脱机交易记录,而另一个脱机交易记录文件中没有脱机交易记录,那么,向两个脱机交易记录文件分别写入脱机交易记录的情况下,第一文件和第二文件均能通过完整性校验,但是两个脱机交易记录文件中保存的脱机交易记录不一致。因此,脱机交易设备需要进一步对第一文件和第二文件进行比较,包括对第一文件长度和第二文件长度进行比较、对第一文件的内容和第二文件的内容进行比较。

具体地,如果第一文件和第二文件均校验成功,脱机交易设备对第一文件长度和第二文件长度进行比较。如果第一文件长度大于第二文件长度,说明第一文件中的脱机交易记录多于第二文件中的脱机交易记录,为了完整保存脱机交易记录,脱机交易设备利用脱机交易记录较多的文件替换脱机交易记录较少的文件,即第一文件中的脱机交易记录替换第二文件中的脱机交易记录,在第二存储装置中保存替换后的第二文件。反之,如果第一文件长度小于第二文件长度,说明第一文件中的脱机交易记录少于第二文件中的脱机交易记录,则利用第二文件中的脱机交易记录替换第一文件中的脱机交易记录,在第一存储装置中保存替换后的第一文件。由此,将脱机交易记录较少的脱机交易记录文件替换成了脱机交易记录较多的脱机交易记录文件,第一文件中的脱机交易记录和第二文件中的脱机交易记录达到了一致,提高第一文件中的脱机交易记录和第二文件中的脱机交易记录的准确性。

如果第一文件长度等于第二文件长度,脱机交易设备对第一文件的内容和第二文件的内容进行比较。如果第二存储装置为外存储装置,在对脱机交易记录进行校验之前,脱机交易设备的外存储装置被工作人员取出,由于工作人员疏忽,原来的脱机交易设备的外存储装置被替换成了其他脱机交易设备中的外存储装置。如果替换后的外存储装置中的脱机交易记录保存完整,也可以通过完整性校验、且替换后的外存储装置中的第二文件长度和内存储装置中的第一文件长度一致,但是原来的外存储装置中的脱机交易记录与替换后的外存储装置中的脱机交易记录不同。在这种情况下,脱机交易设备需要对第一文件中的内容和第二文件中的内容进行比较。

具体地,如果第一文件长度等于第二文件长度,说明第一文件中的脱机交易记录和第二文件中的脱机交易记录一样多,脱机交易设备对第一文件的内容和第二文件的内容是进行比较:如果第一文件中的内容和第二文件中的内容一致,说明第一文件中的脱机交易记录和第二文件中的脱机交易记录一致,则在第一存储装置中保存第一文件,在第二存储装置中保存第二文件。如果第一文件的内容和第二文件的内容不一致,即第一文件中的脱机交易记录或第二文件中的脱机交易记录出错。脱机交易设备利用第一文件中的脱机交易记录替换第二文件中的脱机交易记录。优选地,第一存储装置可以是内存储装置,第二存储装置可以是外存储装置,由于内存储装置存储的脱机交易记录比外存储装置的脱机交易记录准确,将内存储装置的脱机交易记录替换外存储装置的脱机交易记录,即将第一文件中的脱机交易记录替换第二文件的脱机交易记录,在第二存储装置中保存替换后的第二文件。通过对第一文件的内容和第二文件的内容进行比较,将内存储装置中的脱机交易记录替换成了外存储装置中的脱机交易记录,进一步提高脱机交易记录的准确性,第一存储装置中保存的第一文件和第二存储装置中保存的第二文件达到了一致。

本实施例中,在第一文件和第二文件均校验成功的情况下,脱机交易设备对第一文件和第二文件进行进一步比较,包括对第一文件长度和第二文件长度进行比较、对第一文件的内容和第二文件的内容进行比较。通过对第一文件长度和第二文件长度进行比较,将脱机交易记录较多的文件替换脱机交易记录较少的文件,提高脱机交易记录的准确性。通过对第一文件的内容和第二文件的内容进行比较,进一步提高脱机交易记录文件的准确性。

在一个实施例中,第一文件还包括第一校验码,完整性校验包括对第一文件长度进行校验,对第一文件长度进行校验的步骤,包括:获取第一文件长度;获取单条脱机交易记录字节数,单条脱机交易记录字节数包括第一文件中的单条脱机交易记录占用的字节;获取校验码字节数,校验码字节数包括第一校验码占用的字节;通过单条脱机交易记录字节数、校验码字节数和第一文件长度,计算第一文件中的脱机交易记录条数;判断第一文件中的脱机交易记录条数是否为正整数;若不是,则第一文件校验失败。

第一文件包括脱机交易记录和第一验证码,第二文件包括脱机交易记录和第二校验码。脱机交易设备将脱机交易记录写入第一存储装置时,利用密钥和第一文件中的脱机交易记录生成第一校验码;脱机交易设备将脱机交易记录写入第二存储装置时,利用密钥和第二文件中的脱机交易记录生成第二校验码。脱机交易设备将单条脱机交易记录占用字节记录为单条脱机交易记录字节数;脱机交易设备将校验码占用字节记录为校验码字节数。当脱机交易设备将脱机交易记录写入脱机交易记录文件时,脱机交易记录占用单条脱机交易记录字节数,脱机交易记录文件长度增加相应的字节。因此,随着脱机交易记录增加,脱机交易记录文件长度以单条脱机交易记录字节数增加。通过脱机交易记录文件长度可以计算得到脱机交易记录条数。当脱机交易设备向脱机交易记录文件写入脱机交易记录时,如果脱机交易设备断电,则脱机交易设备无法继续将该条脱机交易记录完整的写入脱机交易记录文件,该条脱机交易记录没有占用完整的单条脱机交易记录字节数,导致脱机交易记录文件中的该条脱机交易记录不完整。为了确保脱机交易记录文件中的单条脱机交易记录完整,脱机交易设备需要对脱机交易记录文件长度进行校验。脱机交易设备对脱机交易记录文件长度进行校验包括对第一文件长度进行校验和对第二文件长度进行校验。

具体地,脱机交易设备对第一文件长度进行校验,首先,脱机交易设备获取第一文件长度、单条脱机交易记录字节数和校验码字节数。其次,脱机交易设备通过脱机交易记录文件长度、单条脱机交易记录字节数和校验码字节数计算脱机交易记录条数。具体地,脱机交易设备利用脱机交易记录文件长度和校验码字节数计算脱机交易记录文件长度减去校验码字节数的结果,利用该结果除以单条脱机交易记录字节数,即得到脱机交易记录条数。然后,判断脱机交易记录条数是否为正整数,如果脱机交易记录条数不是正整数,说明脱机交易记录文件中存在单条脱机交易记录不完整,则该脱机交易记录文件校验失败。通过脱机交易记录文件长度计算脱机交易记录条数,可以检测出脱机交易记录文件中是否包括不完整的脱机交易记录,初步判断第一文件中的脱机交易记录存储的完整性。

可以理解地,脱机交易设备可以按照上述方式对第二文件长度进行校验,通过脱机交易记录文件长度计算脱机交易记录条数,可以检测出脱机交易记录文件中是否包括不完整的脱机交易记录,初步判断第二文件中的脱机交易记录存储的完整性。

本实施例中,脱机交易设备利用脱机交易记录文件长度、单条脱机交易记录字节数以及校验码字节数准确计算出脱机交易记录条数,通过判断脱机交易记录条数是否为正整数,初步确定脱机交易记录文件中的脱机交易记录是否完整。

在一个实施例中,第一文件还包括第一校验码,完整性校验包括对校验码进行校验,对校验码进行校验包括对第一校验码进行校验的步骤,包括:获取预设的密钥;通过密钥和第一文件中的脱机交易记录计算第一文件对应的第一完整性校验码;判断第一文件的第一校验码是否与第一文件对应的第一完整性校验码相等;若不相等,则第一文件校验失败。

脱机交易设备通过对脱机交易记录文件长度进行校验,确定了脱机交易记录文件中脱机交易记录条数为正整数,初步判断了的完整性。但是当脱机交易设备在写入脱机交易记录时发生断电,且断电前未写完的脱机交易记录字节数刚好等于校验码字节数时,脱机交易记录文件仍然能够通过对脱机交易记录文件长度进行的校验。因此,脱机交易设备通过对脱机交易记录文件长度进行校验之后,需要进一步对脱机交易记录文件进行校验。脱机交易记录文件中的校验码是通过脱机交易记录和密钥计算得到的,校验码中包括与脱机交易记录相关的信息,与脱机交易记录的内容完全不同。因此,脱机交易设备可以通过对脱机交易记录文件的校验码进行校验,进一步检测脱机交易记录是否完整,更准确的判断脱机交易记录的完整性。

脱机交易设备从后台获取预设的密钥。当脱机交易设备向脱机交易记录文件写入脱机交易记录、或者对脱机交易记录文件中的校验码进行校验时,利用脱机交易记录文件中的脱机交易记录和密钥计算校验码。例如,脱机交易设备可以将脱机交易记录和密钥按照HMAC-SHA256算法计算得到校验码。脱机交易设备每次向第一文件写入一条脱机交易记录时,脱机交易设备利用当前第一文件中所有的脱机交易记录和密钥计算第一校验码。当前计算得到的第一校验码覆盖上一次计算得到的第一校验码。可以理解地,第二文件中的第二校验码也可以以类似方式计算得到。

脱机交易设备对第一文件中的第一校验码进行校验时,首先获取密钥和第一文件中的全部脱机交易记录。其次,通过密钥和全部脱机交易记录计算第一文件的第一完整性校验码。判断第一校验码是否与第一完整性校验码相等。如果第一校验码与第一完整性校验码相等,表示第一校验码包含的脱机交易记录信息和第一完整性校验码包含的脱机交易记录信息一致,第一文件校验成功。如果第一校验码和第一完整性校验码不相等,表示第一校验码包含的脱机交易记录信息和第一完整性校验码包含的脱机交易记录信息不一致,则第一文件中的脱机交易记录不完整,第一文件校验失败。同样地,脱机交易设备可以利用上述方式对第二文件的第一完整性校验码进行校验码校验,不再赘述。脱机交易设备通过对脱机交易记录文件中的校验码进行校验,进一步确定了脱机交易记录的完整性。

本实施例中,脱机交易设备利用密钥和第一文件中的脱机交易记录计算得到第一完整性校验码,通过对比第一校验码和第一完整性校验码,进一步确定第一文件中的脱机交易记录的完整性。利用密钥和第二文件中的脱机交易记录计算得到第二完整性校验码,通过比对第二校验码和第二完整性校验码,进一步确定第二文件中的脱机交易记录的完整性。

在一个实施例中,第一存储装置为内存储装置,第二存储装置为外存储装置,对第一文件长度和第二文件长度进行一致性校验的步骤包括:若第一文件长度大于第二文件长度,则利用第一文件中的脱机交易记录替换第二文件中的脱机交易记录;若第一文件长度等于第二文件长度且内容不一致,则利用第一文件中的脱机交易记录替换第二文件中的脱机交易记录;若第一文件长度小于第二文件长度,则利用第二文件中的脱机交易记录替换第一文件中的脱机交易记录。

脱机交易设备向存储装置写入脱机交易记录之前,如果其中一个脱机交易记录文件中已经存有脱机交易记录,而另一个脱机交易记录文件中没有脱机交易记录,那么,脱机交易设备向两个脱机交易记录文件分别写入脱机交易记录的情况下,第一文件和第二文件均能通过完整性校验,但是两个脱机交易记录文件中保存的脱机交易记录不一致。因此,脱机交易设备需要进一步对第一文件和第二文件进行比较,包括对第一文件长度和第二文件长度进行比较、对第一文件的内容和第二文件的内容进行比较。

具体地,第一文件和第二文件均校验成功,脱机交易设备对第一文件长度和第二文件长度进行比较。如果第一文件长度大于第二文件长度,说明第一文件中的脱机交易记录多于第二文件中的脱机交易记录,为了完整保存脱机交易记录,脱机交易设备利用脱机交易记录较多的文件替换脱机交易记录较少的文件,即第一文件中的脱机交易记录替换第二文件中的脱机交易记录,在第二存储装置中保存替换后的第二文件。反之,如果第一文件长度小于第二文件长度,说明第一文件中的脱机交易记录少于第二文件中的脱机交易记录,则利用第二文件中的脱机交易记录替换第一文件中的脱机交易记录,在第一存储装置中保存替换后的第一文件。由此,将脱机交易记录较少的脱机交易记录文件替换成了脱机交易记录较多的脱机交易记录文件,第一文件中的脱机交易记录和第二文件中的脱机交易记录达到了一致,提高第一文件中的脱机交易记录和第二文件中的脱机交易记录的准确性。

如果第一文件长度等于第二文件长度,脱机交易设备对第一文件的内容和第二文件的内容进行比较。如果第二存储装置为外存储装置,在对脱机交易记录进行校验之前,脱机交易设备的外存储装置被工作人员取出,由于工作人员疏忽,原来的脱机交易设备的外存储装置被替换成了其他脱机交易设备中的外存储装置。如果替换后的外存储装置中的脱机交易记录保存完整,则替换后的外存储装置中的第二文件也可以通过完整性校验、且第二文件长度和内存储装置中的第一文件长度一致,但是替换后的外存储装置中的脱机交易记录和原来的外存储装置中的脱机交易记录并不相同。在这种情况下,脱机交易设备需要对第一文件中的内容和第二文件中的内容进行比较。

具体地,如果第一文件长度等于第二文件长度,说明第一文件中的脱机交易记录和第二文件中的脱机交易记录一样多,脱机交易设备对第一文件的内容和第二文件的内容进行比较:如果第一文件中的内容和第二文件中的内容一致,说明第一文件中的脱机交易记录和第二文件中的脱机交易记录一致,则在第一存储装置中保存第一文件,在第二存储装置中保存第二文件。如果第一文件的内容和第二文件的内容不一致,即第一文件中的脱机交易记录或第二文件中的脱机交易记录出错。脱机交易设备利用第一文件中的脱机交易记录替换第二文件中的脱机交易记录,在第二存储装置中保存替换后的第二文件。优选地,第一存储装置可以是内存储装置,第二存储装置可以是外存储装置,由于内存储装置存储的脱机交易记录比外存储装置准确,将内存储装置的脱机交易记录替换外存储装置的脱机交易记录。也就是说,将第一文件中的脱机交易记录替换第二文件的脱机交易记录,在第二存储装置中保存替换后的第二文件。通过对第一文件的内容和第二文件的内容进行比较,将外存储装置中的脱机交易记录替换成了内存储装置中的脱机交易记录,进一步提高脱机交易记录的准确性,第一存储装置中保存的第一文件和第二存储装置中保存的第二文件达到了一致。

在其中一个实施例中,对第一文件的内容和第二文件的内容进行比较的步骤,可以通过比对第一文件中的脱机交易记录和第二文件中的脱机交易记录判断第一文件的内容和第二文件的内容是否一致。如果第一文件中的脱机交易记录和第二文件中的脱机交易记录一致,则第一文件的内容和第二文件的内容一致。也可以通过比对第一文件中的脱机交易记录和第二文件中的脱机交易记录、比对第一文件中的第一校验码和第二文件中的第二校验码,判断第一文件的内容和第二文件的内容是否一致,如果第一文件中的脱机交易记录和第二文件中的脱机交易记录一致且第一校验码和第二校验码一致,则第一文件的内容和第二文件的内容一致。比对脱机交易记录和校验码两项内容的结果更准确。

在一个实施例中,脱机交易设备替换脱机交易记录文件中的内容,可以替换脱机交易记录文件中的脱机交易记录,也可以替换脱机交易记录文件中的脱机交易记录和校验码,还可以直接将脱机交易记录文件替换。例如,如果第一文件校验成功且第二文件校验失败,脱机交易设备可以利用第一文件中的脱机交易记录替换第二文件中的脱机交易记录,也可以利用第一文件中的脱机交易记录和第一校验码分别替换第二文件中的脱机交易记录和第二校验码,还可以将第一文件直接替换第二文件。脱机交易设备直接替换脱机交易记录文件较为简单。

本实施例中,在第一文件和第二文件均校验成功的情况下,脱机交易设备对第一文件和第二文件进行进一步比较,包括对第一文件长度和第二文件长度进行比较、对第一文件的内容和第二文件的内容进行比较。通过对第一文件长度和第二文件长度进行比较,将脱机交易记录较多的文件替换脱机交易记录较少的文件,提高脱机交易记录的准确性。通过对第一文件的内容和第二文件的内容进行比较,进一步提高脱机交易记录文件的准确性。

在一个实施例中,当通过脱机交易设备首次发生脱机交易时,脱机交易设备检测第一存储装置是否包括第一文件,如果第一存储装置中没有第一文件,在第一存储装置中创建第一文件。如果第一文件创建失败,说明第一存储装置故障,脱机交易设备标记第一存储装置故障。同样地,脱机交易设备检测第二存储装置是否包括第二文件,如果第二存储装置中没有第二文件,在第二存储装置中创建第二文件。如果第二文件创建失败,说明第二存储装置故障,脱机交易设备标记第二存储装置故障。如果脱机交易设备发生创建文件失败,生成报警提示。

在一个实施例中,脱机交易记录文件创建成功之后,当发生脱机交易时,脱机交易设备生成新的脱机交易记录,脱机交易设备将脱机交易记录分别写入脱机交易记录文件。首先,脱机交易设备打开脱机交易记录文件,检测脱机交易记录文件中是否包括脱机交易记录。如果脱机交易记录文件中没有脱机交易记录,则将新的脱机交易记录写在脱机交易记录文件的开端。脱机交易设备利用密钥和脱机交易记录文件中的脱机交易记录计算校验码,将校验码写在脱机交易记录之后。如果脱机交易记录文件中已包括脱机交易记录,脱机交易设备检测脱机交易记录文件中的校验码,将新的脱机交易记录插入最后一条脱机交易记录和校验码之间,利用密钥和当前全部脱机交易记录计算新的校验码,替换原来的校验码。由此,脱机交易设备将脱机交易记录写入脱机交易记录文件。

如果第一存储装置发生写入失败且第二存储装置发生写入失败,说明第一存储装置中的脱机交易记录和第二存储装置中的脱机交易记录均不完整,发出报警提示。如果第一存储装置发生写入失败,第二存储装置未发生写入失败,但是第二文件完整性校验失败,说明第一存储装置中的脱机交易记录和第二存储装置中的脱机交易记录均不完整,发出报警提示。同样地,如果第二存储装置发生写入失败,第一存储装置未发生写入失败,但是第一文件完整性校验失败,说明第一存储装置中的脱机交易记录和第二存储装置中的脱机交易记录均不完整,发出报警提示。如果第一存储装置发生写入失败,第二存储装置未发生写入失败,且第二文件校验成功,说明第一存储装置中的脱机交易记录不完整,但第二存储装置中的脱机交易记录完整,脱机交易设备将第二文件中脱机交易记录替换第一文件中的脱机交易记录,上传后台,发出报警提示。同样地,如果第二存储装置发生写入失败,第一存储装置未发生写入失败,且第一文件校验成功,说明第二存储装置中的脱机交易记录不完整,但第一存储装置中的脱机交易记录完整,脱机交易设备将第一文件中脱机交易记录替换第二文件中的脱机交易记录,上传后台,发出报警提示。通过对存储装置写入故障和脱机交易记录文件完整性校验结果进行分析,及时地将有效脱机交易记录文件上传后台,避免发生交易记录丢失,确保了脱机交易记录完整性。

在其中一个实施例中,当发生脱机交易时,脱机交易设备可以直接将脱机交易记录写入第一文件和第二文件,在写入的过程中不对第一文件和第二文件进行校验,当脱机交易设备开机或上传脱机交易记录时,对第一文件和第二文件进行校验。脱机交易设备也可以在写脱机交易记录的动作之前,先对第一文件和第二文件进行校验,确定第一装置和第二装置正常、第一文件和第二文件一致之后,向第一文件和第二文件分别写入新的脱机交易记录。每次写入脱机交易记录前对第一文件和第二文件进行校验,可以多次对脱机交易记录进行校验,有效提高脱机交易记录的准确性,出现故障之后脱机交易设备及时发出报警提示,避免脱机交易记录丢失。

本实施例中,脱机交易设备通过分析存储装置故障和脱机交易记录文件校验结果,将有效的脱机交易记录文件上传后台,发出报警提示,避免发生交易记录丢失,确保了脱机交易记录完整性。

在一个实施例中,如图2所示,提供了一种脱机交易记录保存装置,包括:获取模块202、校验模块204、替换模块206、保存模块208,其中:

获取模块202,用于获取第一存储装置的第一文件,第一文件包括脱机交易记录;获取第二存储装置的第二文件,第二文件包括脱机交易记录。

校验模块204,用于对第一文件和第二文件分别进行完整性校验。

替换模块206,用于若第一文件校验成功且第二文件校验失败,则利用第一文件中的脱机交易记录替换第二文件中的脱机交易记录;若第一文件校验失败且第二文件校验成功,则利用第二文件中的脱机交易记录替换第一文件中的脱机交易记录。

保存模块208,用于在第二存储装置中保存替换后的第二文件;在第一存储装置中保存替换后的第一文件。

在一个实施例中,获取模块202还用于若第一文件和第二文件均校验成功,则获取第一文件长度和第二文件长度,校验模块204还用于对第一文件长度和第二文件长度进行一致性校验。

在一个实施例中,第一文件还包括第一校验码,校验模块204还用于对第一文件长度进行校验,包括:获取第一文件长度;获取单条脱机交易记录字节数,单条脱机交易记录字节数包括第一文件中的单条脱机交易记录占用的字节;获取校验码字节数,校验码字节数包括第一校验码占用的字节;通过单条脱机交易记录字节数、校验码字节数和第一文件长度,计算第一文件中的脱机交易记录条数;判断第一文件中的脱机交易记录条数是否为正整数;若不是,则第一文件校验失败。

在一个实施例中,第一文件还包括第一校验码,校验模块204还用于对校验码进行校验,对校验码进行校验包括对第一校验码进行校验,包括:获取预设的密钥;通过密钥和第一文件中的脱机交易记录计算第一文件对应的第一完整性校验码;判断第一文件的第一校验码是否与第一文件对应的第一完整性校验码相等;若不相等,则第一文件校验失败。

在一个实施例中,校验模块204还用于对第一文件长度和第二文件长度进行一致性校验,包括:若第一文件长度大于第二文件长度,则利用第一文件中的脱机交易记录替换第二文件中的脱机交易记录;若第一文件长度等于第二文件长度且内容不一致,则利用第一文件中的脱机交易记录替换第二文件中的脱机交易记录;若第一文件长度小于第二文件长度,则利用第二文件中的脱机交易记录替换第一文件中的脱机交易记录。

在一个实施例中,提供了一种计算机设备,如图3所示,该计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序以及数据库等,处理器用于提供计算和控制能力。存储器为计算机程序的运行提供环境。数据库用于存储脱机交易记录以及校验码等。处理器执行计算机程序时实现以下步骤:

获取第一存储装置的第一文件,第一文件包括脱机交易记录;

获取第二存储装置的第二文件,第二文件包括脱机交易记录;

对第一文件和第二文件分别进行完整性校验;

若第一文件校验成功且第二文件校验失败,则利用第一文件中的脱机交易记录替换第二文件中的脱机交易记录,在第二存储装置中保存替换后的第二文件;若第一文件校验失败且第二文件校验成功,则利用第二文件中的脱机交易记录替换第一文件中的脱机交易记录,在第一存储装置中保存替换后的第一文件。

该计算机设备可以用独立的计算机设备或者是多个计算机设备组成的计算机设备集群来实现。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

若第一文件和第二文件均校验成功,则获取第一文件长度和第二文件长度;

对第一文件长度和第二文件长度进行一致性校验。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

获取第一文件长度;

获取单条脱机交易记录字节数,单条脱机交易记录字节数包括第一文件中的单条脱机交易记录占用的字节;

获取校验码字节数,校验码字节数包括第一校验码占用的字节;

通过单条脱机交易记录字节数、校验码字节数和第一文件长度,计算第一文件中的脱机交易记录条数;

判断第一文件中的脱机交易记录条数是否为正整数;

若不是,则第一文件校验失败。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

获取预设的密钥;

通过密钥和第一文件中的脱机交易记录计算第一文件对应的第一完整性校验码;

判断第一文件的第一校验码是否与第一文件对应的第一完整性校验码相等;

若不相等,则第一文件校验失败。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:

若第一文件长度大于第二文件长度,则利用第一文件中的脱机交易记录替换第二文件中的脱机交易记录;

若第一文件长度等于第二文件长度且内容不一致,则利用第一文件中的脱机交易记录替换第二文件中的脱机交易记录;

若第一文件长度小于第二文件长度,则利用第二文件中的脱机交易记录替换第一文件中的脱机交易记录。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

获取第一存储装置的第一文件,第一文件包括脱机交易记录;

获取第二存储装置的第二文件,第二文件包括脱机交易记录;

对第一文件和第二文件分别进行完整性校验;

若第一文件校验成功且第二文件校验失败,则利用第一文件中的脱机交易记录替换第二文件中的脱机交易记录,在第二存储装置中保存替换后的第二文件;若第一文件校验失败且第二文件校验成功,则利用第二文件中的脱机交易记录替换第一文件中的脱机交易记录,在第一存储装置中保存替换后的第一文件。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

若第一文件和第二文件均校验成功,则获取第一文件长度和第二文件长度;

对第一文件长度和第二文件长度进行一致性校验。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

获取第一文件长度;

获取单条脱机交易记录字节数,单条脱机交易记录字节数包括第一文件中的单条脱机交易记录占用的字节;

获取校验码字节数,校验码字节数包括第一校验码占用的字节;

通过单条脱机交易记录字节数、校验码字节数和第一文件长度,计算第一文件中的脱机交易记录条数;

判断第一文件中的脱机交易记录条数是否为正整数;

若不是,则第一文件校验失败。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

获取预设的密钥;

通过密钥和第一文件中的脱机交易记录计算第一文件对应的第一完整性校验码;

判断第一文件的第一校验码是否与第一文件对应的第一完整性校验码相等;

若不相等,则第一文件校验失败。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:

若第一文件长度大于第二文件长度,则利用第一文件中的脱机交易记录替换第二文件中的脱机交易记录;

若第一文件长度等于第二文件长度且内容不一致,则利用第一文件中的脱机交易记录替换第二文件中的脱机交易记录;

若第一文件长度小于第二文件长度,则利用第二文件中的脱机交易记录替换第一文件中的脱机交易记录。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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