一种恢复不完整交易的方法和装置的制造方法_2

文档序号:9350543阅读:来源:国知局
终端序列号、处理选项数据对象列表相关数据、参考控制参数、终端能力、终端国家代码、终端类型、终端校验结果、交易类别码、交易货币代码、交易日期、交易时间、交易类型和随机数;
[0051]例如,不完整交易临时记录为:
[0052]FF8101818B9F02060000000015009F03060000000000005A0854133390000066775F340102DF81071500000000000000000015003F000000600881062A959F34033F0000DF811304-81062A959F1E081122334455667788DF81110A000000001500000008009F33030000089F1A0209789F350122950500000000009A031505299F21031524399C01009F370481062A95 ;
[0053]步骤106:终端判断终端中的不完整交易日志记录个数是否与不完整交易日志记录最大个数相同,如果是,则执行步骤107,否则执行步骤108 ;
[0054]例如,终端中的不完整交易日志为9F 4D 02 01 01,终端在不完整交易日志查找记录标签,未找到记录标签,则终端中的不完整交易日志记录个数为O;终端中的不完整交易日志记录最大个数为1,则终端确定终端中的不完整交易日志记录个数与不完整交易日志记录最大个数不相同,执行步骤108 ;
[0055]步骤107:终端在不完整交易日志中根据交易日期和交易时间,查找最早交易记录,将最早交易记录返回给后台系统,根据不完整交易临时记录更新最早交易记录,结束流程;
[0056]具体地,终端在不完整交易日志中根据交易日期和交易时间,查找最早交易记录,包括:
[0057]步骤107-1:终端获取终端中的不完整交易日志中的第一条记录作为当前记录和最早交易记录,根据交易日期的标签和交易时间的标签,在最早交易记录中获取交易日期和交易时间;
[0058]步骤107-2:终端判断不完整交易日志中是否存在位于当前记录之后的记录,如果是,则将当前记录的下一个记录作为当前记录,执行步骤107-3,否则确定查找到最早交易记录;
[0059]步骤107-3:终端根据交易日期的标签和交易时间的标签,在当前记录中获取交易日期和交易时间;
[0060]步骤107-4:终端根据当前记录中的交易日期和交易时间与最早交易记录中的交易日期和交易时间,判断当前记录是否早于最早交易记录,如果是,则将当前记录作为最早交易记录,返回步骤107-2,否则返回步骤107-2 ;
[0061]本实施例中,该步骤还可以包括:终端显示交易失败信息,提示用户重新开始交易;
[0062]步骤108:终端将不完整交易临时记录顺序存储到不完整交易日志中,结束流程;
[0063]例如,终端将临时记录顺序存储到不完整交易日志中后,不完整交易日志为:
[0064]9F4D020101FF8101818B9F02060000000015009F03060000000000005A0854133390000066775F340102DF81071500000000000000000015003F000000600881062A959F34033F0000DF81130481062A959F1E081122334455667788DF81110A000000001500000008009F33030000089F1A0209789F350122950500000000009A031505299F21031524399C01009F37048106-2A95 ;
[0065]本实施例中,该步骤还可以包括:终端显示交易失败信息,提示用户重新开始交易;
[0066]步骤109:终端获取终端中的不完整交易日志中的第一条记录作为当前记录;
[0067]步骤110:终端判断当前交易主账号序列号是否为空,如果是,则执行步骤111,否则执行步骤112 ;
[0068]具体地,终端通过从智能卡中读记录,得到当前交易主账号序列号;
[0069]步骤111:终端判断是否当前记录中的主账号与当前交易主账号相同并且当前记录中不存在主账号序列号,如果是,则执行步骤114,否则返回步骤113 ;
[0070]具体地,终端通过从智能卡中读记录,得到当前交易主账号;
[0071]步骤112:终端判断是否当前记录中的主账号与当前交易主账号相同并且当前记录中的主账号序列号与当前交易主账号序列号相同,如果是,则执行步骤114,否则返回步骤 113 ;
[0072]具体地,终端通过从智能卡中读记录,得到当前交易主账号;
[0073]例如,终端在读记录响应数据中查找主帐号的标签5A,获取主帐号的标签的下一个字节的数据作为主帐号的长度,即主帐号的长度为08,根据主帐号的长度继续获取数据作为主帐号的内容,即主帐号的内容为54 13 33 90 00 00 66 77 ;终端在读记录响应数据中查找主帐号序列号的标签5F34,获取主帐号序列号的标签的下一个字节的数据作为主帐号序列号的长度,即主帐号序列号的长度为01,根据主帐号序列号的长度继续获取数据作为主帐号序列号的内容,即主帐号序列号的内容为02 ;
[0074]终端在当前记录中查找主帐号的标签5A,获取主帐号的标签的下一个字节的数据作为主帐号的长度,即主帐号的长度为08,根据主帐号的长度继续获取数据作为主帐号的内容,即主帐号的内容为54 13 33 90 00 00 66 77 ;终端在当前记录中查找主帐号序列号的标签5F34,获取主帐号序列号的标签的下一个字节的数据作为主帐号序列号的长度,即主帐号序列号的长度为01,根据主帐号序列号的长度继续获取数据作为主帐号序列号的内容,即主帐号序列号的内容为02;因此,终端判断出当前记录中的主账号与当前交易主账号相同并且当前记录中的主账号序列号与当前交易主账号序列号相同;
[0075]步骤113:终端判断终端中的不完整交易日志中当前记录之后是否有记录存在,如果是,则将当前记录的下一个记录作为当前记录,返回步骤110,否则返回步骤102 ;
[0076]步骤114:终端在当前记录中获取数据恢复数据对象列表相关数据;
[0077]具体地,该步骤包括:
[0078]步骤114-1:终端从当前记录中,获取第一个数据元作为当前数据元;
[0079]步骤114-2:终端判断当前数据元的标签值是否为第一预设值,如果是,则执行步骤114-4,否则执行步骤114-3 ;
[0080]例如,第一预设值为DF 81 13 ;
[0081]步骤114-3:终端判断当前记录中是否存在位于当前数据元之后的数据元,如果是,则获取当前数据元的下一个数据元作为更新后的当前数据元,返回步骤114-2,否则结束流程;
[0082]步骤114-4:终端继续获取当前数据元的长度,根据当前数据元的长度继续获取当前数据元的内容,终端将当前数据元、当前数据元的长度和当前数据元的内容作为数据恢复数据对象列表相关数据;
[0083]例如,终端在当前记录中获取到的数据恢复数据对象列表相关数据为DF 81 1304 81 06 2A 95 ;
[0084]步骤115:终端根据数据恢复数据对象列表相关数据,得到恢复应用命令,向智能卡发送恢复应用命令;
[0085]具体地,终端在数据恢复数据对象列表相关数据中获取数据恢复数据对象列表相关数据的内容,终端根据恢复应用命令的命令类型、命令码、第一参数、第二参数和数据恢复数据对象列表相关数据的内容得到的恢复应用命令;
[0086]例如,数据恢复数据对象列表相关数据为DF 81 13 04 81 06 2A 95,终端在数据恢复数据对象列表相关数据中获取其标签DF 81 13,获取数据恢复数据对象列表相关数据的标签的下一个字节的数据作为数据恢复数据对象列表相关数据的长度,即数据恢复数据对象列表相关数据的长度为04,根据数据恢复数据对象列表相关数据的长度继续获取数据作为数据恢复数据对象列表相关数据的内容,即数据恢复数据对象列表相关数据的内容为81 06 2A 95 ;终端根据恢复应用命令的命令类型、命令码、第一参数、第二参数和数据恢复数据对象列表相关数据的内容得到的恢复应用命令为80 DO 00 00 04 81 06 2A 95 ;
[0087]步骤116:终端判断是否接收到智能卡返回的第二响应数据,如果是,则执行步骤117,否则结束流程;
[0088]具体地,终端判断未接收到智能卡返回的第二响应数据,包括:因超时或通信错误未收到第二响应数据;
[0089]本实施例中,若终端判断出未接收到智能卡返回的第二响应数据时,还可以包括:终端显示交易失败信息,提示用户重新开始交易;
[0090]步骤117:终端判断第二响应数据中的响应码是否正确,如果是,则执行步骤118,否则执行步骤120 ;
[0091]具体地,终端获取第二响应数据的最后2个字节的数据作为响应码,判断响应码是否为第一预设数据,如果是,则确定响应码正确,否则确定响应码不正确;例如,第一预设数据为0x9000 ;
[0092]例如,第二响应数据为77 81 88 9F 27 01 40 9F 36 02 00 02 9F 4B 7C 66 1260 9D CE A3 27 80 OA 7A E7 4F 2A 18 E8 94 IE OC 63 DD 4A 41 26 ED 75 5B B9 DF96 8C 43 4C Cl 00 D7 DF 82 DO 61 B6 19 35 51 Dl 2F 5E C4 26 88 11 6E E2 5A 4695 77 ED 78 6C 30 62 8E 7C 70 2A 15 2F 6E OF 86 D8 69 57 4B 9D 58 64 35 F5 5854 61 F4 81 DC 2F FB 9B DF A6 68 EO 05 90 13 5E A3 29 IB B8 28 A2 03 B4 AC 30EE C3 3F AO 99 4A 04 02 7E 83 6D BE 03 3F 61 94 C7 AF 90 00 ;
[0093]步骤118:终端根据当前记录中的各个数据元更新终端数据库中的数据;
[0094]例如,当前记录为:
[0095]FF8101818B9F02060000000015009F03060000000000005A0854133390000066775F340102DF81071500000000000000000015003F000000600881062A959F34033F0000DF811304-81062A959F1E081122334455667788DF81110A00000000150000
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1