能卡贴近手机终端时,展示的页面上的选项“查看余额”对应的智能卡读写指令即可为getData:0,1024(具体的指令定义规范可由平台应用开发人员进行语法定义)。
[0099]步骤S208:获取在页面的功能菜单中触发的选项,获取触发的选项对应的控制指令集中的智能卡控制指令,根据所述智能卡控制指令调用相应的接口函数对所述智能卡进行读写。
[0100]如前所述,若用户触发的选项为“查看余额”,则若贴近手机终端的智能卡为第一个食堂应用的智能卡,则获取到的智能卡读写指令即可为getData:1024,2048,终端可调用标准函数库中的getData函数,并将1024和2048作为参数传入,即可执行该函数,调用平台应用的客户端程序中包含的智能卡读写驱动程序,通过NFC信号向智能卡发送读取数据的APDU,然后接收智能卡同样通过NFC信号返回的包含有余额的APDU,从而得到饭卡的余额并展示在页面上。
[0101]若用户触发的选项为“查看余额”,则若贴近手机终端的智能卡为第二个食堂应用的智能卡,则获取到的智能卡读写指令即可为getData:0,1024,终端可调用标准函数库中的getData函数,并将0和1024作为参数传入,即可执行该函数,调用平台应用的客户端程序中包含的智能卡读写驱动程序,通过NFC信号向智能卡发送读取数据的APDU,然后接收智能卡同样通过NFC信号返回的包含有余额的APDU,从而得到饭卡的余额并展示在页面上。
[0102]具体的,智能卡、终端、平台应用服务器和第三方应用服务器的交互过程可如图5所示。
[0103]上述第一种和第二种读写智能卡的方法中,终端上的平台应用的客户端程序均需包含对智能卡读写的标准函数库或者标准指令库,不管智能卡的应用类型为何,均通过调用平台应用的客户端程序中包含的标准函数库或者标准指令库中的函数进行读写。
[0104]第一种与第二种读写智能卡的方法不同点在于,为了适配不同的第三方应用的智能卡的设计规范,第一种读写智能卡的方法公开的内容为标准化的指令脚本库,第三方应用开发人员可根据第三方应用的业务自行设计页面,也需要根据业务在平台应用公开的标准脚本集中选择相应的指令脚本并添加与业务适配的参数。
[0105]而第二种读写智能卡的方法公开的内容为标准化的函数库或指令库,页面由平台应用的开发人员定义,但第三方应用需要根据页面中的功能菜单的选项对应的具体业务在标准函数库或标准指令库中选择适当的函数并添加与该业务适配的参数。
[0106]但从整体来看,上述第一种与第二种读写智能卡的方法均需要终端上的平台应用的客户端程序包含对智能卡读写的标准函数库或者标准指令库,均需要向第三方应用开发者公开标准函数库或者标准指令库的操作方式(第一种通过指令脚本,第二种直接公开),并由第三方应用开发者根据业务逻辑为页面中的选项定义适配的智能卡读写指令,因此,第一种与第二种读写智能卡的方法基于同一发明创造。
[0107]同时,上述第一种与第二种读写智能卡的方法对于平台应用上新扩展的第三方应用而言,该新扩展的第三方应用的开发者并不需要根据第三方应用的业务规范自行开发一套相应的智能卡驱动的程序包,而是利用平台应用已经提供的标准脚本库或者标准函数库,在此基础上通过自定义页面以及配置指令脚本或者根据标准页面设定标准函数库中的函数的参数来将不同的业务与最终平台应用的客户端程序可识别的智能卡读写指令联系起来,因此,终端上并不需要安装新扩展的第三方应用的相关的智能卡驱动的程序包,既节约了终端的存储空间,消除了冗余驱动包的存储,又方便新应用进行扩展(在平台应用服务器注册即可),从而提高了平台应用的扩展性。
[0108]为解决上述提到的传统技术中的集成多种智能卡读写功能的平台应用的读写智能卡的方式存在的扩展性较低的技术问题,在一个实施例中,如图6所示,特提供了一种与前述第一种读写智能卡的方法对应的读写智能卡的装置,包括第一智能卡检测模块102、第三方应用页面展示模块104、触发选项获取模块106和第一智能卡读写模块108,其中:
[0109]第一智能卡检测模块102,用于感应智能卡的接触事件,获取接触事件对应的应用标识Ο
[0110]第三方应用页面展示模块104,用于查找所述应用标识对应的第三方应用链接,抓取所述第三方应用链接对应的网页并展示,所述第三方应用链接对应网页中包含有功能菜单,所述第三方应用链接对应网页中包含有与功能菜单中的选项对应的指令脚本,所述指令脚本为第三方应用预先在预设的标准脚本库中选取的与所述功能菜单的选项对应的指令脚本。
[0111]触发选项获取模块106,用于获取在所述第三方应用链接对应的网页的所述功能菜单中触发的选项,通过执行所述触发的选项对应的指令脚本向平台应用服务器发送智能卡控制请求。
[0112]第一智能卡读写模块108,用于接收平台应用服务器返回的与所述智能卡控制请求对应的智能卡控制指令,根据所述智能卡控制指令调用相应的接口函数对所述智能卡进行读写。
[0113]在本实施例中,第一智能卡检测模块102还用于感应近场通信信号,根据所述近场通信信号获取智能卡的接触事件。
[0114]在本实施例中,第三方应用页面展示模块104还用于获取应用映射表,所述应用映射表中存储有应用标识以及与应用标识对应的第三方应用链接;根据所述应用映射表查找所述应用标识对应的第三方应用链接;
[0115]在本实施例中,如图6所示,该读写智能卡的装置还包括应用映射表更新模块110,用于定期更新所述应用映射表。
[0116]在本实施例中,第三方应用页面展示模块104还用于检测所述第三方应用链接对应的网页的加载完成事件获取所述加载完成事件的事件处理函数调用的指令脚本,通过执行所述事件处理函数调用的指令脚本向平台应用服务器发送智能卡控制请求,调用所述第一智能卡读写模块。
[0117]为解决上述提到的传统技术中的集成多种智能卡读写功能的平台应用的读写智能卡的方式存在的扩展性较低的技术问题,在一个实施例中,如图7所示,特提供了一种与前述第二种读写智能卡的方法对应的读写智能卡的装置,包括第二智能卡检测模块202、平台应用页面展示模块204、控制指令集获取模块206和第二智能卡读写模块208,其中:
[0118]第二智能卡检测模块202,用于感应智能卡的接触事件,获取接触事件对应的应用标识Ο
[0119]平台应用页面展示模块204,用于展示与所述应用标识对应的页面,所述页面中包含有预定义的功能菜单。
[0120]控制指令集获取模块206,用于获取所述应用标识对应的控制指令集,所述控制指令集为第三方应用预先在预设的标准指令集中选取的与所述应用标识对应的页面中的功能菜单的选项对应的智能卡控制指令的集合。
[0121]第二智能卡读写模块208,用于获取在所述页面的功能菜单中触发的选项,获取所述触发的选项对应的所述控制指令集中的智能卡控制指令,根据所述智能卡控制指令调用相应的接口函数对所述智能卡进行读写。
[0122]在一个实施例中,控制指令集获取模块206用于将所述应用标识上传至所述平台应用服务器,所述平台应用服务器获取所述应用标识对应的第三方应用链接,根据所述第三方应用链接抓取与所述功能菜单中的选项对应的智能卡控制指令的控制指令集。
[0123]控制指令集获取模块206还用于接收所述平台应用服务器返回的与所述功能菜单中的选项对应的智能卡控制指令的控制指令集。
[0124]实施本发明实施例,将具有如下有益效果:
[0125]上述第一种与第二种读写智能卡的方法对于平台应用上新扩展的第三方应用而言,该新扩展的第三方应用的开发者并不需要根据第三方应用的业务规范自行开发一套相应的智能卡驱动的程序包,而是利用平台应用已经提供的标准脚本库或者标准函数库,在此基础上通过自定义页面以及配置指令脚本或者根据标准页面设定标准函数库中的函数的参数来将不同的业务与最终平台应用的客户端程序可识别的智能卡读写指令联系起来,因此,终端上并不需要安装新扩展的第三方应用的相关的智能卡驱动的程序包,既节约了终端的存储空间,消除了冗余驱动包的存储,又方便新应用进行扩展(在平台应用服务器注册即可),从而提高了平台应用的扩展性。
[0126]在一个实施例中,如图8所示,图8展示了一种运行上述第一种或第二种读写智能卡的方法的基于冯诺依曼...