一种IC卡智能读取应用记录的方法与流程

    专利2022-07-08  106


    本发明涉及一种ic卡读取方法,特别是涉及一种ic卡智能读取应用记录的方法,属于ic卡读取技术领域。



    背景技术:

    ic卡在实际应用中,经常会遇到核心与ic卡机具并不在一处的情况,中间可能被互联网、蓝牙、串口线、红外传输等分隔开来,核心与ic卡的每次交互都存在一定的延迟,一次次的延迟累积起来,会极大增加交易处理时间,给客户和操作者带来不好的体验。

    因此,亟需对ic卡读取方法进行改进,以解决上述存在的问题。



    技术实现要素:

    本发明的目的是提供一种ic卡智能读取应用记录的方法,通过ic卡指令预执行方案,在完全不改变核心流程的情况下,减少到每步只需交互1次,极大的减少了交互延迟。

    为了达到上述目的,本发明采用的主要技术方案包括:

    一种ic卡智能读取应用记录的方法,包括如下步骤:

    步骤1:选择pse,读pse指定的记录以获取ic卡支持的aid,

    ic卡机具一次交互读取pse,然后根据tag88读出所有支持的应用列表;

    步骤2:列表法获取ic卡支持的aid,

    核心将支持的aid列表传给ic卡机具,ic卡机具一次交互全部尝试选择;

    步骤3:核心选中特定应用,获取处理选项;

    步骤4:读ic卡应用记录,

    核心将afl传给ic卡机具,ic卡机具一次交互全部读出;

    步骤5:验证pin,读ic卡内部数据,

    核心将要读取的ic卡内部数据tag列表传给ic卡机具,ic卡机具一次交互全部读出;

    步骤6:读取gac1和gac2;

    步骤7:ic卡执行脚本,

    核心将所有脚本一起发给ic卡机具,ic卡机具一次交互执行全部脚本;

    步骤8:读ic卡交易记录,

    核心将起止记录号传给ic卡机具,ic卡机具一次交互全部读出。

    优选的,步骤1中,读pse记录:

    指令:5fb20000lc=3sfi[1] 起始记录号[1] 终止记录号[1],

    响应:指令1sw[2] 指令1返回内容长度[1] 指令1返回内容[n] 指令2sw[2] ...。

    优选的,步骤3中,根据aid列表选择:

    指令:5fa40000lcasi[1] aidlen[1] aid[n] asi[1] ...,

    响应:指令1sw[2] 指令1返回内容长度[1] 指令1返回内容[n] 指令2sw[2] ...;

    终端需要根据emv协议及asi自动选择同一aid的下一应用。

    优选的,步骤4中,读应用记录:

    指令:5fb20100lclcdata[n]=afl,

    响应:指令1sw[2] 指令1返回内容长度[1] 指令1返回内容[n] 指令2sw[2] ...。

    优选的,步骤5中,读ic卡内部数据:

    指令:5fca0000lclcdata=tag1[2] tag2[2]...,

    响应:指令1sw[2] 指令1返回内容长度[1] 指令1返回内容[n] 指令2sw[2] ...。

    优选的,步骤7中,执行脚本,

    指令:5fba0000lclcdata=emv71或72脚本,

    响应:指令1sw[2] 指令1返回内容长度[1] 指令1返回内容[n] 指令2sw[2] ...。

    优选的,步骤8中,读交易记录,

    指令:5fb20000lc=3sfi[1] 起始记录号[1] 终止记录号[1],

    响应:指令1sw[2] 指令1返回内容长度[1] 指令1返回内容[n] 指令2sw[2] ...,

    但起始记录号必须为1。

    优选的,ic卡为以下两类ic卡片:

    a.符合emv2004及以后版本规范的借贷记卡,

    b.符合pboc2.0及以后版本规范的借贷记卡。

    优选的,ic卡机具为与ic卡直接交互的设备。

    优选的,核心为执行emv/pboc借贷记标准流程的软件。

    本发明至少具备以下有益效果:本发明核心预先通知ic卡机具核心要执行该步骤了,读卡机具收到核心的预处理指令,将此步骤所需的所有指令在一个交互中全部执行完成,然后将响应数据传输给核心,核心将数据缓冲起来,待核心真正执行到需要此步骤的卡片数据时,从缓冲区中取出所需数据,通过本ic卡指令预执行方案,在完全不改变核心流程的情况下,减少到每步只需交互1次,极大的减少了交互延迟。

    附图说明

    此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

    图1为本发明的原理流程图。

    具体实施方式

    以下将配合附图及实施例来详细说明本申请的实施方式,借此对本申请如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。

    如图1所示,本实施例提供的ic卡智能读取应用记录的方法,包括如下步骤:

    步骤1:选择pse,读pse指定的记录以获取ic卡支持的aid,

    ic卡机具一次交互读取pse,然后根据tag88读出所有支持的应用列表;

    读pse记录:

    指令:5fb20000lc=3sfi[1] 起始记录号[1] 终止记录号[1],

    响应:指令1sw[2] 指令1返回内容长度[1] 指令1返回内容[n] 指令2sw[2] ...;

    步骤2:列表法获取ic卡支持的aid,

    核心将支持的aid列表传给ic卡机具,ic卡机具一次交互全部尝试选择;

    步骤3:核心选中特定应用,获取处理选项;

    根据aid列表选择:

    指令:5fa40000lcasi[1] aidlen[1] aid[n] asi[1] ...,

    响应:指令1sw[2] 指令1返回内容长度[1] 指令1返回内容[n] 指令2sw[2] ...;

    终端需要根据emv协议及asi自动选择同一aid的下一应用;

    步骤4:读ic卡应用记录,

    核心将afl传给ic卡机具,ic卡机具一次交互全部读出;

    读应用记录:

    指令:5fb20100lclcdata[n]=afl,

    响应:指令1sw[2] 指令1返回内容长度[1] 指令1返回内容[n] 指令2sw[2] ...;

    步骤5:验证pin,读ic卡内部数据,

    核心将要读取的ic卡内部数据tag列表传给ic卡机具,ic卡机具一次交互全部读出;

    读ic卡内部数据:

    指令:5fca0000lclcdata=tag1[2] tag2[2]...,

    响应:指令1sw[2] 指令1返回内容长度[1] 指令1返回内容[n] 指令2sw[2] ...;

    步骤6:读取gac1和gac2;

    步骤7:ic卡执行脚本,

    核心将所有脚本一起发给ic卡机具,ic卡机具一次交互执行全部脚本;

    执行脚本,

    指令:5fba0000lclcdata=emv71或72脚本,

    响应:指令1sw[2] 指令1返回内容长度[1] 指令1返回内容[n] 指令2sw[2] ...。

    步骤8:读ic卡交易记录,

    核心将起止记录号传给ic卡机具,ic卡机具一次交互全部读出;

    读交易记录,

    指令:5fb20000lc=3sfi[1] 起始记录号[1] 终止记录号[1],

    响应:指令1sw[2] 指令1返回内容长度[1] 指令1返回内容[n] 指令2sw[2] ...,但起始记录号必须为1;

    在本实施例中,ic卡为以下两类ic卡片:

    a.符合emv2004及以后版本规范的借贷记卡,

    b.符合pboc2.0及以后版本规范的借贷记卡;

    ic卡机具为与ic卡直接交互的设备;

    核心为执行emv/pboc借贷记标准流程的软件。

    本发明核心预先通知ic卡机具核心要执行该步骤了,读卡机具收到核心的预处理指令,将此步骤所需的所有指令在一个交互中全部执行完成,然后将响应数据传输给核心,核心将数据缓冲起来,待核心真正执行到需要此步骤的卡片数据时,从缓冲区中取出所需数据,通过本ic卡指令预执行方案,在完全不改变核心流程的情况下,减少到每步只需交互1次,极大的减少了交互延迟。

    本实施例中,核心在执行到上述可批量执行的指令前,首先按上述指令格式发给ic卡机具批量指令,ic卡机具收到批量指令后,批量执行后将所有响应数据按上述响应格式一并返回给核心,核心缓冲响应数据,在具体执行真正指令时,不再访问ic卡机具,直接在缓冲区中读取响应。

    以下是正常核心流程与优化后的预执行方案核心流程的对比:

    正常流程:

    核心→ic卡机具→ic卡

    gpo得到afl,根据afl,需要读取4个记录:

    指令:读sfi=1recno=1-->

    -->

    <--响应:”\x70\x??......”

    <--

    指令:读sfi=1recno=2-->

    -->

    <--响应:”\x70\x??......”

    <--

    指令:读sfi=3recno=1-->

    -->

    <--响应:”\x70\x??......”

    <--

    指令:读sfi=1recno=2-->

    -->

    <--响应:”\x70\x??......”

    <--

    预执行方案流程:

    核心→ic卡机具→ic卡

    gpo得到afl

    批量读取应用记录-->

    指令:读sfi=1recno=1-->

    <--响应:”\x70\x??......”

    指令:读sfi=1recno=2-->

    <--响应:”\x70\x??......”

    指令:读sfi=3recno=1-->

    <--响应:”\x70\x??......”

    指令:读sfi=3recno=2-->

    <--响应:”\x70\x??......”

    缓冲区→<--响应:”\x90\x00\x??\\x70\x??......共4组”

    指令:读sfi=1recno=1

    缓冲区取出响应:”\x70\x??......”

    指令:读sfi=1recno=2

    缓冲区取出响应:”\x70\x??......”

    指令:读sfi=3recno=1

    缓冲区取出响应:”\x70\x??......”

    指令:读sfi=1recno=2

    缓冲区取出响应:”\x70\x??......”

    按照上述实施例,正常流程需要核心与ic卡机具交互4次,预执行方案只需交互1次,由于网络原因,每次交互时间不好预估,以一般值,假设每次交互占用时间为50毫秒,则此例节省150毫秒,累计所有预执行方案节省的时间,每笔交易可节约大约0.7秒-1.0秒,预执行与缓冲区读取响应只发生在核心最底层的apdu交互层,完全不影响核心整体构架。

    如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决技术问题,基本达到技术效果。

    需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的商品或者系统中还存在另外的相同要素。

    上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。


    技术特征:

    1.一种ic卡智能读取应用记录的方法,其特征在于,包括如下步骤:

    步骤1:选择pse,读pse指定的记录以获取ic卡支持的aid,

    ic卡机具一次交互读取pse,然后根据tag88读出所有支持的应用列表;

    步骤2:列表法获取ic卡支持的aid,

    核心将支持的aid列表传给ic卡机具,ic卡机具一次交互全部尝试选择;

    步骤3:核心选中特定应用,获取处理选项;

    步骤4:读ic卡应用记录,

    核心将afl传给ic卡机具,ic卡机具一次交互全部读出;

    步骤5:验证pin,读ic卡内部数据,

    核心将要读取的ic卡内部数据tag列表传给ic卡机具,ic卡机具一次交互全部读出;

    步骤6:读取gac1和gac2;

    步骤7:ic卡执行脚本,

    核心将所有脚本一起发给ic卡机具,ic卡机具一次交互执行全部脚本;

    步骤8:读ic卡交易记录,

    核心将起止记录号传给ic卡机具,ic卡机具一次交互全部读出。

    2.根据权利要求1所述的一种ic卡智能读取应用记录的方法,其特征在于:步骤1中,读pse记录:

    指令:5fb20000lc=3sfi[1] 起始记录号[1] 终止记录号[1],

    响应:指令1sw[2] 指令1返回内容长度[1] 指令1返回内容[n] 指令2sw[2] ...。

    3.根据权利要求1所述的一种ic卡智能读取应用记录的方法,其特征在于:步骤3中,根据aid列表选择:

    指令:5fa40000lcasi[1] aidlen[1] aid[n] asi[1] ...,

    响应:指令1sw[2] 指令1返回内容长度[1] 指令1返回内容[n] 指令2sw[2] ...;

    终端需要根据emv协议及asi自动选择同一aid的下一应用。

    4.根据权利要求1所述的一种ic卡智能读取应用记录的方法,其特征在于:步骤4中,读应用记录:

    指令:5fb20100lclcdata[n]=afl,

    响应:指令1sw[2] 指令1返回内容长度[1] 指令1返回内容[n] 指令2sw[2] ...。

    5.根据权利要求1所述的一种ic卡智能读取应用记录的方法,其特征在于:步骤5中,读ic卡内部数据:

    指令:5fca0000lclcdata=tag1[2] tag2[2]...,

    响应:指令1sw[2] 指令1返回内容长度[1] 指令1返回内容[n] 指令2sw[2] ...。

    6.根据权利要求1所述的一种ic卡智能读取应用记录的方法,其特征在于:步骤7中,执行脚本:

    指令:5fba0000lclcdata=emv71或72脚本,

    响应:指令1sw[2] 指令1返回内容长度[1] 指令1返回内容[n] 指令2sw[2] ...。

    7.根据权利要求1所述的一种ic卡智能读取应用记录的方法,其特征在于:步骤8中,读交易记录:

    指令:5fb20000lc=3sfi[1] 起始记录号[1] 终止记录号[1],

    响应:指令1sw[2] 指令1返回内容长度[1] 指令1返回内容[n] 指令2sw[2] ...,

    但起始记录号必须为1。

    8.根据权利要求1所述的一种ic卡智能读取应用记录的方法,其特征在于:ic卡为以下两类ic卡片:

    a.符合emv2004及以后版本规范的借贷记卡,

    b.符合pboc2.0及以后版本规范的借贷记卡。

    9.根据权利要求1所述的一种ic卡智能读取应用记录的方法,其特征在于:ic卡机具为与ic卡直接交互的设备。

    10.根据权利要求1所述的一种ic卡智能读取应用记录的方法,其特征在于:核心为执行emv/pboc借贷记标准流程的软件。

    技术总结
    本发明涉及IC卡读取技术领域,具体为一种IC卡智能读取应用记录的方法,包括如下步骤:选择pse,读pse指定的记录以获取IC卡支持的aid;列表法获取IC卡支持的aid,核心将支持的aid列表传给IC卡机具;核心选中特定应用,获取处理选项;读IC卡应用记录;验证PIN,读IC卡内部数据;读取GAC1和GAC2;IC卡执行脚本,核心将所有脚本一起发给IC卡机具,IC卡机具一次交互执行全部脚本;读IC卡交易记录,核心将起止记录号传给IC卡机具,IC卡机具一次交互全部读出。本发明通过IC卡指令预执行方案,在完全不改变核心流程的情况下,减少到每步只需交互1次,极大的减少了交互延迟。

    技术研发人员:于军
    受保护的技术使用者:深圳市华信智能科技股份有限公司
    技术研发日:2020.10.21
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-18802.html

    最新回复(0)