一种TLV数据管理方法及其系统和电子设备与流程

文档序号:37190418发布日期:2024-03-01 12:59阅读:18来源:国知局
一种TLV数据管理方法及其系统和电子设备与流程

本公开涉及pos支付,特别涉及一种tlv数据管理方法及其系统和电子设备。


背景技术:

1、在pos支付技术领域中,pos终端设备与ic卡之间采用tlv格式数据进行数据交互。在pos终端设备中,tlv数据的存储与管理均为数据结构体的形式,其中结构体往往是基于某些规范内容来进行定义。

2、图1为相关技术中基于《中国金融集成电路(ic)卡规范》所定义的结构体的一种代码示意图。如图1所示,以《中国金融集成电路(ic)卡规范》为例,该规范定义了大量tlv格式的ic卡与金融终端(例如pos机)数据源,为使得金融终端能够支持规范中所涉及的各种ic卡,基于该规范所定义的结构体中会声明很多数据属性(又称为结构体的“成员”),并基于规范中所涉及的最大数据量来定义结构体占用内存空间,以将各种ic卡所需tlv数据资源同时存储于该结构体。通过图1可见,基于现有规范内容所定义的结构体代码量庞大、重复代码过多、结构体所占用内存空间极大。另外,在实际应用中发现,一旦规范更新(规范内容增加、删减、修改),基于规范所定义的结构体代码需要同步修改,且往往代码改动较多,易出错,代码维护成本较高。


技术实现思路

1、为有效改善甚至解决相关技术中存在至少之一的技术问题,本公开提供了一种tlv数据管理方法及其系统和电子设备。

2、第一方面,本公开实施例提供了一种tlv数据管理方法,包括:

3、确定目标tlv数据列表,所述目标tlv数据列表包括至少一个目标tlv数据;

4、在内存中定义出与所述目标tlv数据列表相对应的独立数据空间的结构体,所述结构体的成员包括:所述独立数据空间所配置的最大长度、所述独立数据空间的已使用长度以及指向后续待创建的待操作tlv数据列表的指针,其中所述最大长度大于所述目标tlv数据列表的长度;

5、将所述目标tlv数据列表包括的目标tlv数据存储至所述独立数据空间,得到待操作tlv数据列表,所述待操作tlv数据列表包括存储于所述独立数据空间中的全部tlv数据。

6、可选地,在确定目标tlv数据列表的步骤之前,还包括:

7、确定所选择的目标程序;

8、确定目标tlv数据列表的步骤包括:

9、从预设存储器中获取与目标程序相对应的全部目标tlv数据,并构成目标tlv数据列表;

10、在确定所选择的目标程序之后,且在在内存中定义出与所述目标tlv数据列表相对应的独立数据空间的结构体的步骤之前,还包括:

11、根据预先设置的对应关系数据确定出所述目标程序所对应的数据空间最大长度,所述对应关系数据中记载有不同程序及其对应的数据空间最大长度;

12、在所定义的与所述目标tlv数据列表相对应的独立数据空间的结构体中,所述独立数据空间所配置的最大长度为所述目标程序所对应的数据空间最大长度。

13、可选地,将所述目标tlv数据列表包括的目标tlv数据存储至所述独立数据空间步骤包括:

14、获取与所述目标程序相对应的数据有效性验证规则信息;

15、从所述目标tlv数据列表中选取第一条目标tlv数据作为第一待验证tlv数据;

16、根据所述数据有效性验证规则信息对所述第一待验证tlv数据进行有效性验证;

17、当所述第一待验证tlv数据未通过有效性验证时,则生成用于表征数据存入异常的第一提示信息;

18、当所述第一待验证tlv数据通过有效性验证时,则将所述第一待验证tlv数据存储至所述独立数据空间,并检测所述第一待验证tlv数据是否为所述目标tlv数据列表中最后一条目标tlv数据;

19、若检测出所述第一待验证tlv数据为所述目标tlv数据列表中最后一条目标tlv数据,则生成用于表征待操作tlv数据列表完成创建的第二提示信息;

20、若检测出所述第一待验证tlv数据不为所述目标tlv数据列表中最后一条tlv数据,则将所述目标tlv数据列表中位于所述第一待验证tlv数据的下一条目标tlv数据作为新的第一待验证tlv数据,并再次执行根据所述数据有效性验证规则信息对所述第一待验证tlv数据进行有效性验证的步骤。

21、可选地,在将所述目标tlv数据列表包括的目标tlv数据存储至所述独立数据空间的步骤之后,还包括:

22、验证所述待操作tlv数据列表是否为无效数据,具体包括:

23、a1、创建一个数据偏移量,并赋予初始值为0;

24、a2、从所述待操作tlv数据列表中选取第一条目标tlv数据作为第二待验证tlv数据;

25、a3、对数据偏移量进行加1处理以对数据偏移量进行更新;

26、a4、根据预设数据有效性验证规则信息对所述第二待验证tlv数据进行有效性验证;

27、当所述第二待验证tlv数据未通过有效性验证时,则执行步骤a5;当所述第二待验证tlv数据通过有效性验证时,则执行步骤a6;

28、a5、将所述第二待验证tlv数据从所述待操作tlv数据列表中删除;在步骤a5结束后执行步骤a6;

29、a6、检测所述第二待验证tlv数据是否为所述待操作tlv数据列表中最后一条目标tlv数据;

30、若检测出所述第二待验证tlv数据不为所述待操作tlv数据列表中最后一条目标tlv数据,则执行步骤a7;若检测出所述第二待验证tlv数据为所述待操作tlv数据列表中最后一条目标tlv数据,则执行步骤a8;

31、a7、将所述目标tlv数据列表中位于所述第二待验证tlv数据的下一条目标tlv数据作为新的第二待验证tlv数据;在步骤a8结束后再次执行步骤a3;

32、a8、比较当前的待操作tlv数据列表的长度与当前的所述数据偏移量二者是否相等;

33、若相等,则验证出所述待操作tlv数据列表为有效数据;若不等,则验证出所述待操作tlv数据列表为无效数据。

34、可选地,在将所述目标tlv数据列表包括的目标tlv数据存储至所述独立数据空间的步骤之后,还包括:

35、接收单数据查找指令,所述单数据查找指令中记载有所述独立数据空间的名称、待查找tlv数据的数据标签和查找起始地址;

36、响应于所述单数据查找指令,从所述查找地址开始根据所述待查找tlv数据的数据标签对位于所述独立数据空间内的所述待操作tlv数据列表进行查找操作,并反馈查找结果。

37、可选地,在将所述目标tlv数据列表包括的目标tlv数据存储至所述独立数据空间的步骤之后,还包括:

38、接收多数据查找指令,所述多数据查找指令中记载有所述独立数据空间的名称、待查找tlv数据的个数、各待查找tlv数据的数据标签;

39、根据所述多数据查找指令生成与待查找tlv数据一一对应的多个单数据查找指令,所述单数据查找指令中记载有所述独立数据空间的名称和所对应的待查找tlv数据的数据标签;

40、针对每一个所述单数据查找指令,响应于所述单数据查找指令,根据所述单数据查找指令中记载的待查找tlv数据的数据标签对位于所述独立数据空间内的所述待操作tlv数据列表进行查找操作,并反馈查找结果。

41、可选地,在将所述目标tlv数据列表包括的目标tlv数据存储至所述独立数据空间的步骤之后,还包括:

42、接收增加指令,所述增加指令中记载有所述独立数据空间的名称、待增加tlv数据;

43、检测所述待操作tlv数据列表中是否存在所包含的数据标签与所述待增加tlv数据中的数据标签相同的目标tlv数据;

44、若检测出所述待操作tlv数据列表中存在所包含的数据标签与所述待增加tlv数据中的数据标签相同的目标tlv数据,则将所包含的数据标签与所述待增加tlv数据中的数据标签相同的目标tlv数据中的数据长度和数据值,分别修改为所述待增加tlv数据中的数据长度和数据值;

45、若检测出所述待操作tlv数据列表中不存在所包含的数据标签与所述待增加tlv数据中的数据标签相同的目标tlv数据,则在所述待操作tlv数据列表的末尾添加所述待增加tlv数据,并对所述独立数据空间的已使用长度进行更新。

46、可选地,在将所述目标tlv数据列表包括的目标tlv数据存储至所述独立数据空间的步骤之后,还包括:

47、接收删除指令,所述删除指令中记载有所述独立数据空间的名称、待删除tlv数据的数据标签;

48、检测所述待操作tlv数据列表中是否存在所包含的数据标签与所述待删除tlv数据中的数据标签相同的目标tlv数据;

49、若检测出所述待操作tlv数据列表中不存在所包含的数据标签与所述待删除tlv数据中的数据标签相同的目标tlv数据,则生成用于表征数据删除失败的第四提示信息;

50、若检测出所述待操作tlv数据列表中存在所包含的数据标签与所述待删除tlv数据中的数据标签相同的目标tlv数据,则将所述待操作tlv数据列表中所包含的数据标签与所述待删除tlv数据中的数据标签相同的目标tlv数据删除,并将所述待操作tlv数据列表中位于所包含的数据标签与所述待删除tlv数据中的数据标签相同的目标tlv数据之后的其他目标tlv标签前移动,且对所述独立数据空间的已使用长度进行更新。

51、第二方面,本公开实施例提供了一种tlv数据管理系统,所述系统配置为能够实现如第一方面中提供的所述方法,所述系统包括:

52、确定模块,配置为确定目标tlv数据列表,所述目标tlv数据列表包括至少一个目标tlv数据;

53、定义模块,配置为在内存中定义出与所述目标tlv数据列表相对应的独立数据空间的结构体,所述结构体的成员包括:所述独立数据空间所配置的最大长度、所述独立数据空间的已使用长度以及指向后续待创建的待操作tlv数据列表的指针,其中所述最大长度大于所述目标tlv数据列表的长度;

54、存储模块,配置为将所述目标tlv数据列表包括的目标tlv数据存储至所述独立数据空间,得到待操作tlv数据列表,所述待操作tlv数据列表包括存储于所述独立数据空间中的全部tlv数据。

55、第三方面,本公开实施例提供了一种电子设备,其中,包括:

56、一个或多个处理器;

57、存储器,用于存储一个或多个程序;

58、当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面中提供的所述方法。

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