背景技术
集成电路(IC,Integrate Circuit)卡、特别是非接触式IC卡经过十多年的发展,已经被广泛应用于公交、门禁、小额电子支付等领域。与此同时,移动终端经历二十多年的迅速发展,在居民中基本得到普及,为人们的工作及生活带来极大的便利。移动终端的功能越来越强大,并存在集成更多功能的趋势。将移动终端与非接触式IC卡技术相结合,使移动终端应用于电子支付领域,会进一步扩大移动终端的使用范围,为人们的生活带来更多便捷,存在着广阔的应用前景。
在移动终端上增加对非接触式IC卡的支持后,移动终端可以模拟为非接触触IC卡,能够与支付系统的非接触读卡器进行交互,实现非接触电子支付。使用移动终端实现非接触电子支付的方案存在多种,主要是采用NFC方案或增强型近场通信(eNFC,enhanced Near Field Communication)方案。对于非接触电子支付,目前业界主流的技术方案是eNFC,eNFC方案得到了运营商和有关终端厂商的支持。
eNFC方案是对近场通信(NFC,Near Field Communication)方案的增强和改进,是一种工作于13.56MHz的近距离无线通信技术,由射频识别(RFID,Radio Frequency Identification)技术及互连技术融合演变而来。
在移动终端上实现eNFC方案,需要在移动终端上增加NFC模拟前端(CLF,Contactless Front-end)芯片和NFC天线,并进一步使用支持单线协议(SWP,Single Wire Protocol)的移动用户卡,移动用户卡可以是客户识别模块(SIM,Subscriber Identity Module)卡、或用户识别模块(UIM,User IdentityModel)卡、或用户服务识别模块(USIM,User Service Identity Module)卡等。NFC模拟前端芯片支持的RFID协议包括ISO 14443 Type A/Type B、Felica、ISO15693等。移动终端中的NFC模拟前端芯片和NFC天线实现非接触通信功能,可以与外部的非接触读卡器按照RFID协议进行通信。
eNFC方案中,NFC模拟前端芯片可以通过通用异步接收/发送装置(UART,Universal Asynchronous Receiver/Transmitter)接口与移动终端的主处理器进行通信;NFC模拟前端芯片通过一根信号线与移动用户卡的C6引脚连接,使用SWP与移动用户卡中的应用部分进行通信;移动用户卡通过ISO7816接口与移动终端的主处理器连接,该连接使用到了移动用户卡的复位(Reset)、时钟(CLK)、输入输出(IO)管脚,可以分别对应着C2、C3、C7管脚。
eNFC的特点是将与电子支付应用存储在移动用户卡中,由移动用户卡进行电子支付应用的存储和执行。移动终端进入电子支付系统的非接触读卡器的工作区域后,移动终端中的NFC模拟前端芯片可以按照RFID协议与非接触读卡器建立通信,并将非接触读卡器发送的指令传递给移动用户卡,由移动用户卡对电子支付相关指令进行处理,移动用户卡处理指令后返回的响应信息可以通过NFC模拟前端芯片发送给非接触读卡器。
另外,通过将移动用户卡的电源(VCC)、即C1管脚与NFC模拟前端芯片相连,使eNFC方案能够支持终端掉电模式。在这种模式下,NFC模拟前端芯片和移动用户卡通过NFC天线获取能量,在移动终端没电的情况下也同样能够工作在卡模拟模式下,与外部的非接触读卡器交互完成电子支付。
NFC方案和eNFC方案类似,移动终端上也需要增加NFC模拟前端芯片和NFC天线,支持的RFID协议包括ISO 14443 Type A/Type B、Felica、ISO15693等。NFC模拟前端芯片可以通过UART接口与移动终端的主处理器连接,由移动终端主处理器控制NFC模拟前端芯片的功能。但NFC方案与eNFC方案不同的是,在NFC方案中没有使用移动用户卡存储电子支付应用,而是使用集成在移动终端上的安全芯片或可插拔的存储卡、如MicroSD存储卡。
在eNFC方案中,如果使用集成在移动终端上的安全芯片存储电子支付应用,则安全芯片提供电子支付的运行环境,安全芯片与NFC模拟前端芯片通过S2C接口(signal-in/signal-out communication interface)进行通信。移动终端进入电子支付系统的非接触读卡器的工作区域后,移动终端中的NFC模拟前端芯片可以按照RFID协议与非接触读卡器建立通信,并将非接触读卡器发送的指令传递给安全芯片,由安全芯片对电子支付相关指令进行处理,安全芯片处理指令后返回的响应信息可以通过NFC模拟前端芯片发送给非接触读卡器。
在eNFC方案中,如果使用可插拔的存储卡存储电子支付应用,则移动终端中需要集成可以支持存储卡的卡槽,该卡槽提供多个管脚,存储卡提供电子支付的运行环境。移动终端通过卡槽的管脚向存储卡供电;存储卡通过卡槽的部分管脚与NFC模拟前端芯片连接并建立通信;存储卡通过卡槽的部分管脚与移动终端的主处理器连接,移动终端主处理器通过该连接对存储卡进行管理。移动终端进入电子支付系统的非接触读卡器的工作区域后,移动终端中的NFC模拟前端芯片可以按照RFID协议与非接触读卡器建立通信,并将非接触读卡器发送的指令传递给存储卡,由存储卡对电子支付相关指令进行处理,存储卡处理指令后返回的响应信息可以通过NFC模拟前端芯片发送给非接触读卡器。
eNFC与NFC方案基本类似,可以使用移动用户卡、存储卡或者安全芯片存储电子支付应用。概括来讲,移动用户卡、存储卡和安全芯片均属于智能卡的范畴。
移动终端实现非接触电子支付时,可以同时支持多个电子支付应用。智能卡遵守Global Platform Card Specification V2.2规范中的技术要求,可以支持多应用,来自不同应用提供者的电子支付应用可以存储在智能卡的不同安全域中,安全域之间实现逻辑隔离,不同电子支付应用的存储和运行互不干扰,从而为各电子支付应用提供安全的运行环境。另外,由于Java卡已经成为智能卡的发展趋势,智能卡可以采用Java卡规范,运行在智能卡中的电子支付应用可以实现平台无关性。按照Java卡技术规范开发的电子支付应用能够运行在不同智能卡厂家的Java卡中,从而为电子支付应用的推广带来很大的技术优势。因此,移动终端在支持非接触电子支付时,智能卡通常遵守Java卡技术规范,电子支付应用可以采用Java语言编写并符合Java卡技术规范。
每个电子支付应用拥有一个唯一的应用标识符(AID,Application ID),AID由注册的应用提供者标识(RID,Registered Application Provider Identifier)和专用应用标识符扩展(PIX,Proprietary Application Identifier Extension)码组成,AID的编码规范符合ISO/IEC 7816-5 Identification cards-Integrated circuitcards-Part 5:Registration of application providers:2004的要求。
智能卡中的电子支付应用可以在智能卡发行时就预置在智能卡中,也可以在智能卡发行后通过移动通信网络从远程服务器上将电子支付应用下载并安装到智能卡中。电子支付应用在智能卡中进行安装时,会将电子支付应用的有关信息注册到智能卡的注册表(Registry)中,注册信息可以包括应用名称、AID和应用状态等。
移动终端进入到电子支付系统的非接触读卡器的工作区域后,移动终端与非接触读卡器建立通信,非接触读卡器会向移动终端发送应用选择(SELECT)指令以选择电子支付应用,该SELECT指令中指定的AID参数是完整的AID或者AID的一部分。智能卡对SELECT指令进行处理,判断存储的电子支付应用中是否存在对应于AID参数的电子支付应用;如果存在,智能卡会选择对应电子支付应用,然后由被选择的电子支付应用处理非接触读卡器发送的电子支付相关指令,从而完成具体的电子支付应用,如果不存在,则终止与非接触读卡器的通信。
电子支付应用的选择可以通过AID参数来实现。非接触读卡器通过SELECT指令中包含的AID参数来选择电子支付应用,由智能卡处理SELECT指令并返回响应信息,SELECT指令和响应信息的格式符合Global Platform CardSpecification V2.2″11.9 SELECT Command″中的要求。在某个电子支付应用被选择后,智能卡将外部的非接触读卡器发送的电子支付相关指令转发给被选择的电子支付应用,由被选择的电子支付应用处理非接触读卡器发送的电子支付相关指令。
电子支付应用的选择一般采用显式选择(explicit selection)的方法,在Global Platform Card Specification V2.2″6.4 Logical Channels and ApplicationSelection″中对显式选择进行了规定。实现显式选择时,智能卡根据SELECT指令中的AID参数在智能卡的注册表中查找是否存在满足SELECT指令的电子支付应用,其中处于锁定状态的电子支付应用将不能被选择。如果存在满足SELECT指令的电子支付应用,智能卡会选择对应电子支付应用,然后由被选择的电子支付应用处理非接触读卡器发送的电子支付相关指令,从而完成具体的电子支付应用,如果不存在,则终止与非接触读卡器的通信。
由于智能卡内可以存储多个电子支付应用,在移动终端与外部的非接触读卡器交互时,可能存在非接触读卡器同时支持智能卡存储的多个电子支付应用的情况。另外,非接触读卡器选择电子支付应用时发送的SELECT指令中包含的AID参数可以是AID的一部分,以选择非接触读卡器所支持的某一类电子支付应用。在这种情况下,有可能智能卡内的多个电子支付应用可以满足非接触读卡器发送的SELECT指令的要求,采用显式选择的方法选择出的电子支付应用可能不符合用户、即支付人的意愿。
例如,移动终端的智能卡中存储有电子支付应用A和电子支付应用B,而电子支付系统的非接触读卡器对电子支付应用A和电子支付应用B都支持;用户使用该移动终端进行电子支付时,如果采用显式选择的方法,智能卡可能选择电子支付应用A进行电子支付,而用户可能希望通过电子支付应用B进行电子支付,从而产生电子支付应用选择的结果与用户的期望不一致的问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种非接触电子支付中实现应用选择的方法及终端,使电子支付应用选择的结果与用户的期望达成一致。
为达到上述目的,本发明的技术方案是这样实现的:
一种非接触电子支付中实现应用选择的方法,该方法包括:终端接收应用选择SELECT指令,确定存在人工选择应用,并确定所述人工选择应用符合应用选择SELECT指令的要求,选择符合SELECT指令的要求的人工选择应用。
所述确定存在人工选择应用,包括步骤A:读取应用设置信息,如果存在设置信息,则确定存在人工选择应用;如果不存在,则确定不存在人工选择应用。
所述应用设置信息为设置的应用标识符AID变量,所述步骤A包括:读取设置的应用标识符AID变量,判断所述应用标识符AID变量是否记录有人工选择应用的AID,如果有记录,则确定存在人工选择应用;如果没有记录,则确定不存在人工选择应用。
所述应用设置信息存储于终端的智能卡中。
所述确定不存在人工选择应用之后,进一步包括:按照显式选择的方式进行电子支付应用的选择。
所述确定人工选择应用符合应用选择SELECT指令的要求,包括:将人工选择应用的AID与SELECT指令中携带的AID参数进行对比,判断所述AID是否能够与所述AID参数匹配上,如果能够匹配上,则人工选择应用符合SELECT指令的要求;如果不能匹配上,则人工选择应用不符合SELECT指令的要求。
所述AID参数是:完整的AID,或者AID的部分内容。
所述人工选择应用不符合SELECT指令的要求之后,进一步包括:按照显式选择的方式进行电子支付应用的选择;或者,终止与外部非接触读卡器的通信。
该方法进一步包括:设置人工选择应用的有效方式;所述人工选择应用进行电子支付之后,进一步包括:终端根据所述人工选择应用的有效方式,确定所述人工选择应用当前已经无效,取消所述人工选择应用的设置。
所述有效方式存储于终端的智能卡中。
所述有效方式为:一次有效,或一直有效。
一种非接触电子支付中实现应用选择的终端,该终端包括:接收单元、默认应用判断单元和匹配单元,其中,所述接收单元用于接收SELECT指令;所述默认应用判断单元用于确定存在人工选择应用时,触发匹配单元;所述匹配单元用于确定人工选择应用符合SELECT指令的要求时,确定符合SELECT指令的要求的人工选择应用。
所述终端进一步包括:显式选择单元,用于按照显式选择方式选择符合SELECT指令的要求的电子支付应用;和/或,电子支付单元,用于通过电子支付应用进行电子支付。
本发明提供的方案,终端接收SELECT指令,确定存在人工选择应用,并确定人工选择应用符合SELECT指令的要求,选择符合SELECT指令的要求的人工选择应用,这样,终端中存储有多个电子支付应用时,可以根据用户的意愿选择其中的一个或多个电子支付应用进行电子支付;进一步地,终端仍然可以支持现有的显式选择方式来选择电子支付应用,由此完善了终端选择的电子支付应用的方案。进一步地,进行电子支付时使用用户期望的人工选择应用,大大提高了用户对电子支付业务的满意度,增强用户的业务体验。
具体实施方式
图1为本发明中非接触电子支付中实现应用选择的流程图,如图1所示,非接触电子支付中实现应用选择的具体处理过程包括以下步骤:
步骤101~步骤102:终端接收SELECT指令,判断是否存在人工选择应用,如果存在,则执行步骤103;如果不存在,则通过显式选择选择符合SELECT指令的要求的电子支付应用进行电子支付,即判断存储的电子支付应用中是否存在对应于AID参数的电子支付应用,如果存在,选择对应电子支付应用,然后由被选择的电子支付应用处理非接触读卡器发送的电子支付相关指令,如果不存在,则终止与非接触读卡器的通信,结束当然流程。所述人工选择应用是指用户在终端存储的电子支付应用中人工选择的一个或多个默认电子支付应用。判断是否存在人工选择应用可以通过读取应用设置信息来实现,如果存在设置信息,即能够读取到应用设置信息,则确定存在人工选择应用;如果不存在,即不能读取到应用设置信息,则确定不存在人工选择应用。所述应用设置信息为人工选择应用的设置信息,用来表明当前是否设置了人工选择应用。
步骤103:终端判断人工选择应用是否符合SELECT指令的要求,如果符合要求,则执行步骤104;如果不符合要求,则执行步骤105。
步骤104:终端选择符合SELECT指令的要求的人工选择应用进行电子支付,然后结束当前流程。
步骤105:终端终止与非接触读卡器的通信。也就是说,只有被用户人工选择的电子支付应用才可以被选择作为当前电子支付的具体应用,其他电子支付应用不能被选择。另外,终端在确定人工选择应用不符合SELECT指令的要求后,也可以通过显式选择选择符合SELECT指令的要求的电子支付应用进行电子支付。
通过以上流程描述可见,本发明中涉及的终端可以在支持显式选择的情况下,还同时支持用户的人工选择;并且在人工选择应用存在的情况下,优先采用用户的人工选择。采用用户的人工选择时,终端接收到外部的非接触读卡器发送的SELECT指令后,根据SELECT指令中包含的AID参数判断当前人工选择应用是否符合SELECT指令的要求,如果符合要求,则选择对应电子支付应用进行电子支付;如果不符合要求,则可以向非接触读卡器返回选择失败,并终止与非接触读卡器的通信。
为了实现用户对人工选择应用的设置,即用户对终端存储的电子支付应用中进行人工选择,可以通过终端向用户提供输入界面,用户可以通过该输入界面进行人工选择应用的设置、即对存储在终端中的电子支付应用进行选择;也可以通过该输入界面对人工选择应用的设置进行取消;甚至还可以查看终端中存储的电子支付应用的人工选择的设置信息。
考虑到人工选择应用在实际使用中一般只需要进行一次或几次电子支付,因此,还可以进一步地通过输入界面设置人工选择应用的有效方式。例如,用户选择电子支付应用时,可以将人工选择应用设置为一直有效或者一次有效。将人工选择应用设置为一直有效是指将人工选择应用始终设置为默认电子支付应用,直至取消对应人工选择应用的设置。将人工选择应用设置为一次有效是指将人工选择应用作为默认电子支付应用的有效次数设置为只有一次。有效方式为一次有效时,在对应人工选择应用被非接触读卡器选择一次后,终端将根据一次有效的有效方式自动取消对应电子支付应用的人工选择应用的设置,后续电子支付的处理过程中,对应电子支付应用将不再被作为人工选择应用、即默认电子支付应用。
终端支持用户的人工选择时,可以支持一直有效或一次有效中的一种有效方式,也可以这两种有效方式都支持。终端对一直有效和一次有效都支持时,可以在输入界面中提供对这两种有效方式中进行选择的设置选项,用户通过在输入界面中选择相应设置选项确定人工选择应用的有效方式。
下面以移动终端以USIM卡作为智能卡为例,对本发明方案的具体实现进行更为详细的说明。
移动终端支持非接触电子支付时,eNFC方案是一种主要的解决方案,因此以下描述中采用eNFC方案来实现电子支付应用的选择方法。存储电子支付应用的智能卡可以是移动用户卡,也可以是可插拔的存储卡,还可以是集成在终端上的安全芯片。eNFC方案中,智能卡为电子支付应用提供安全、开放的运行环境。移动用户卡根据使用情况的不同,可以是SIM卡、UIM卡或USIM卡。在以下实施例描述中,仅以USIM卡为例进行说明;在移动用户卡是SIM卡或UIM卡时,或者智能卡是安全芯片或可插拔的存储卡,同样可以采用以下描述中所采用的方案。
USIM卡可以采用Java卡技术,并遵守Global Platform Card SpecificationV2.2规范中的技术要求。USIM卡中包括Java卡运行环境(JCRE,Java CardRuntime Environment)。JCRE包括Java卡虚拟机(JCVM,Java Card VirtualMachine)、Java卡框架及API接口(Java Card Framework and API)和卡提供商指定的扩展接口。
电子支付应用基于javacard.framework.Applet类库,需要实现″RuntimeEnvironment Specification for the Java Card Platform,Version 2.2.2″中定义的安装(install)、注册(register)、选择(select)、去选择(deselect)、进程(process)。每个电子支付应用拥有一个唯一的AID,AID由注册的RID和PIX组成,AID的编码规范符合ISO/IEC 7816-5 Identification cards-Integrated circuit cards-Part5:Registration of application providers:2004的要求。
USIM卡支持多电子支付应用,可以在USIM卡上安装多个电子支付应用。电子支付应用可以预先安装到USIM卡中,也可以在USIM卡发行后通过移动通信网络从远程服务器上将电子支付应用下载并安装到USIM卡。电子支付应用在USIM卡中进行安装时,会将电子支付应用的有关信息注册到USIM卡的注册表中,注册信息可以包括应用名称、AID和应用状态等。
非接触读卡器通过SELECT指令来指示移动终端对电子支付应用进行选择,由移动终端中的USIM卡处理SELECT指令并返回响应信息,SELECT指令和响应信息的格式符合Global Platform Card Specification V2.2″11.9 SELECTCommand″中的要求。SELECT指令中包含的AID参数可以是完整的AID,也可以是AID的一部分、即AID的部分内容。在某个电子支付应用被选择后,USIM卡中的JCRE将外部的非接触读卡器发送的电子支付相关指令转发给被选择的电子支付应用,由被选择的电子支付应用处理非接触读卡器发送的电子支付相关命令。
本发明实施例方案中,USIM卡默认的电子支付应用的选择方式为用户的人工选择。USIM卡中进行了人工选择应用的设置时,按照人工选择的方式进行电子支付应用的选择;在USIM卡中没有进行人工选择应用的设置时,USIM卡按照显式选择的方式进行电子支付应用的选择。
为实现人工选择的方式,可以在USIM卡的存储区域内设置一个AID变量,该变量用于记录人工选择应用的相关信息,即应用设置信息。例如,在USIM卡的存储区域内设置变量,名称为strDefaultAppletAID,长度为为18字节(bytes),该变量用于记录人工选择应用、即电子支付应用的AID。如果USIM卡中进行了人工选择应用的设置,则变量strDefaultAppletAID记录有人工选择应用的AID;如果取消了USIM卡中人工选择应用的设置,或者USIM卡中没有进行过人工选择应用的设置,则变量strDefaultAppletAID的值为全0或为空,以表明当前不存在人工选择应用。USIM卡可以通过对该变量值的读取来判断USIM卡中是否存在人工选择应用,即判断用户是否设置了人工选择应用。
为了实现用户对人工选择应用的设置,需要向用户提供设置人工选择应用的输入界面,该输入界面可以采用卡应用工具包(CAT,Card Application Toolkit)来实现。移动终端和USIM卡均需要支持CAT规范,实现ETSI TS 102223 CardApplication Toolkit(CAT)中的技术要求。在USIM卡中可以按照CAT规范内置设置菜单,该设置菜单用于用户进行人工选择应用的设置。移动终端向用户显示USIM卡内置的设置菜单,用户根据自身需要在设置菜单中进行人工选择应用的设置操作。
用户设置人工选择应用时可以实现的功能包括:从USIM卡中存储的、可以被选择的电子支付应用中选择一个或多个电子支付应用作为默认电子支付应用;显示当前的人工选择应用的设置;取消人工选择应用的设置。为了实现上述的功能,USIM卡内置的设置菜单中可以包括默认应用菜单,默认应用菜单的下一级菜单可以包括3个子菜单,分别是当前的默认应用、设置默认应用、取消默认应用。
用户选择子菜单“当前的默认应用”时,USIM卡会读取变量strDefaultAppletAID。如果变量strDefaultAppletAID的值为全0或为空,则USIM卡通过显示文本(DISPLAY TEXT)指令在移动终端屏幕上提示当前没有人工选择应用;如果变量strDefaultAppletAID记录有人工选择应用的AID,则USIM卡根据AID在USIM卡的注册表中检索到对应人工选择应用的名称,并通过DISPLAY TEXT指令显示在移动终端屏幕上。
用户选择子菜单“设置默认应用”时,USIM卡会将注册表中可以被选择的电子支付应用的名称按照列表的形式显示在移动终端屏幕上,移动终端屏幕的下方可以提供两个软键,分别是确认和返回。在此设置菜单的界面中,可以通过移动终端的方向键或者其它方式,选择某个电子支付应用,然后再按软键确认,则USIM卡会将用户选择的电子支付应用的AID记录入strDefaultAppletAID,并可以进一步在移动终端屏幕上提示设置成功,然后返回上一级菜单。
用户选择子菜单“取消默认应用”时,USIM卡会将变量strDefaultAppletAID设置为全0或为空,并在移动终端屏幕上提示已取消设置。
人工选择应用进行电子支付时,大部分为只需要进行一次电子支付的情况。人工选择应用的有效方式设置为一次时,如果该人工选择应用进行了一次电子支付后,USIM卡可以自动取消该人工选择应用的设置,在下一次电子支付时可以按照显式选择的方法选择电子支付应用,这样会给实际应用带来极大方便。因此,在进行人工选择应用的设置时,USIM卡可以支持一直有效或一次有效。人工选择应用的有效方式设置为一直有效时,USIM卡一直将人工选择应用作为可选择的电子支付应用;人工选择应用设置为一次有效时,USIM卡同样将人工选择应用作为可选择的电子支付应用,但移动终端与非接触读卡器交互,使用该人工选择应用进行电子支付后,USIM卡可以自动取消该人工选择应用的设置,后续可以采用显式选择的方式来选择电子支付应用进行电子支付。
根据实际使用的需要,人工选择应用的有效方式可以支持一直有效或一次有效,也可以两种有效方式同时支持。对一直有效和一次有效都支持时,可以在输入界面中提供对这两种有效方式中进行选择的设置选项,用户通过在输入界面中选择相应设置选项确定人工选择应用的有效方式。另外,在设置的人工选择应用的存储区域中增加一个变量,该变量的名称可以为bDefaultAppletValidSet,长度为1比特位(bit),通过该变量记录人工选择应用的有效方式。例如,变量bDefaultAppletValidSet的值为0时,表示对应人工选择应用的有效方式为一直有效;变量bDefaultAppletValidSet的值为1时,表示对应人工选择应用的有效方式为一次有效。有效方式的输入界面可以通过在USIM卡中内置设置菜单的方式来实现,该内置菜单可以采用CAT菜单,用于用户进行人工选择应用有效方式的设置。具体的实现可以为:在默认应用菜单的下一级子菜单中增加子菜单“默认应用有效设置”。用户完成人工选择应用的设置后,可以选择子菜单“默认应用有效设置”,进行人工选择应用的有效方式的设置,内置菜单在终端屏幕上显示两个选项“一直有效”和“一次有效”,用户可以通过移动终端的方向键或者其它方法进行选择来设置人工选择应用的有效方式。用户选择有效方式后,USIM卡通过修改变量bDefaultAppletValidSet的值以记录用户所做的设置,然后提示设置成功并返回到上一级菜单。
用户查询人工选择应用的有效方式时,USIM卡可以读取变量bDefaultAppletValidSet,获取当前人工选择应用所采用的有效方式,然后显示在移动终端屏幕上。
人工选择应用的有效方式也可以采用默认设置,即用户完成人工选择应用的设置后,对应人工选择应用的有效方式采用默认的有效方式。例如,人工选择应用的默认有效方式为一次有效,则用户完成人工选择应用的设置后,对应人工选择应用为一次有效。相应人工选择应用执行过一次电子支付后,USIM卡将取消对应人工选择应用的设置。
在本发明中,USIM卡增加对人工选择应用的支持后,在与外部的非接触读卡器进行电子支付应用选择的流程参见图1,具体处理为:
步骤A:移动终端进入非接触读卡器的工作区域,非接触读卡器与移动终端按照非接触通信协议建立通信,非接触读卡器通过移动终端向USIM卡发送SELECT指令,该SELECT指令中携带有AID参数。
步骤B:USIM卡收到SELECT指令后,对SELECT指令进行解析。
步骤C:USIM卡读取变量strDefaultAppletAID,如果strDefaultAppletAID中记录有人工选择应用的AID,则表明USIM卡中存在人工选择应用的设置,继续执行步骤D;如果strDefaultAppletAID的值为全0或为空,则表明USIM卡中不存在人工选择应用的设置,继续执行步骤E。
步骤D:USIM卡中存在人工选择应用的设置时,USIM卡中可以被选择的电子支付应用只有用户设置的人工选择应用。USIM卡根据SELECT指令的指示按照现有的应用选择规范进行对应的处理,USIM卡对SELECT指令的具体处理可以参见Global Platform Card Specification V2.2″11.9 SELECT Command″和″6.4 Logical Channels and Application Selection″中的规定。USIM卡将变量strDefaultAppletAID中记录的人工选择应用的AID与SELECT指令中携带的AID参数进行对比,判断人工选择应用的AID是否能够与SELECT指令中携带的AID参数匹配上,如果变量strDefaultAppletAID中记录的AID能够与SELECT指令中携带的AID参数匹配上,则表明人工选择应用符合SELECT指令的要求;如果变量strDefaultAppletAID中记录的AID不能与SELECT指令中携带的AID参数匹配上,则表明人工选择应用不符合SELECT指令的要求。
如果人工选择应用符合SELECT指令的要求,则USIM卡将SELECT响应中的SW1、SW2分别设置为90、00,通知非接触读卡器SELECT指令执行成功,并将对应人工选择应用的状态设置为已选择,人工选择应用与非接触读卡器继续进行与电子支付应用有关的操作。人工选择应用被选择后,如果当前人工选择应用的有效方式设置为一次有效,USIM卡可以在电子支付完成后,将变量strDefaultAppletAID的值设置为全0或为空,自动取消人工选择应用的设置,结束当前流程。
如果人工选择应用不符合SELECT指令的要求,则USIM卡将SELECT响应中的SW1、SW2分别设置为6A、82,通知非接触读卡器SELECT指令执行失败,SELECT指令中指定的电子支付应用不存在,然后终止与非接触读卡器的通信,结束当前流程。
步骤E:USIM卡通过显式选择选择适当的电子支付应用,USIM卡按照现有的显式选择方式进行电子支付应用的选择,可以参见Global Platform CardSpecification V2.2″11.9 SELECT Command″和″6.4 Logical Channels andApplication Selection″中的规定。USIM卡根据SELECT指令中携带的AID参数在注册表中进行检索,判断是否存在符合SELECT指令要求的电子支付应用,如果存在,则USIM卡将对应人工选择应用的状态设置为已选择,人工选择应用与非接触读卡器继续进行与电子支付应用有关的操作;如果不存在,USIM卡将SELECT响应中的SW1、SW2分别设置为6A、82,通知非接触读卡器SELECT指令执行失败,SELECT指令中指定的电子支付应用不存在,然后终止与非接触读卡器的通信,结束当前流程。
以上实施例中描述了在eNFC方案中实现电子支付应用选择的方法,在移动终端电子支付的其它解决方案的实际应用中,也可以采用本发明中提供的方法实现电子支付应用的选择。
图2为本发明中非接触电子支付中实现应用选择的终端的结构示意图,如图2所示,该终端包括:接收单元、默认应用判断单元、匹配单元、显式选择单元和电子支付单元,其中,接收单元用于接收SELECT指令;默认应用判断单元用于判断是否存在人工选择应用,如果存在,则触发匹配单元,如果不存在,则触发显式选择单元;匹配单元用于判断人工选择应用是否符合SELECT指令的要求,如果符合,则确定符合SELECT指令的要求的人工选择应用,并提供给电子支付单元,如果不符合,则不进行操作或者触发显式选择单元;显式选择单元用于按照显式选择方式选择符合SELECT指令的要求的电子支付应用,并提供给电子支付单元;电子支付单元用于通过电子支付应用进行电子支付。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。