具体实施方式
本文呈现的示例实施方案涉及用于提供非接触式协议的系统、方法和计算机程序产品,现在本文根据示例商户交易对其进行描述。该描述不意图限制本文呈现的示例实施方案的应用。实际上,在阅读以下描述后,将对相关领域的技术人员明显的是,如何在替代实施方案中实施以下示例实施方案(例如,涉及在大型中转终端与移动设备之间需要无线通信连接的大型中转交易)。
术语“应用”、“小应用”、“小程序”和/或这些术语的复数形式在本文中互换使用以指代应用(独立地作用或结合其它应用起作用)或指令或代码的集或子集,其在被一个或多个处理器(例如,在移动设备、卡读取器、终端、销售点(POS)系统或服务器)执行时促使处理器执行特殊任务。例如,钱包应用可用来执行交易相关或界面相关的功能,诸如存储、处理、访问或传输财务、忠诚度、优惠、会员或账户数据。钱包应用也可合并一个或多个支付应用或与其交互,诸如来自American的ExpressPay、网络ZipSM、PayPassTM、或Visa payWaveTM支付小应用。
通常,商务相关的服务可通过可在若干不同平台上可用的应用套件来获得。第一应用(或应用套件)载于移动商务(MoCom)平台内的服务器上。MoCom平台负责管理消费者数据,包括忠诚度账户和优惠。此外,MoCom平台作为优惠的活动管理器,其经由钱包应用内的可用商户门户提供消费者可获得优惠的远程数据存储。
第二应用呈钱包应用的形式载于移动设备上。钱包应用提供消费者的主要用户界面(UI)和额外的商务应用服务,钱包应用通过其可访问载于移动设备的安全元件(SE)上的额外资源。
第三应用呈JavaCard小应用的形式载于移动设备的安全元件上。该小应用存储诸如忠诚度和优惠数据的商务相关的数据,并提供可管理数据的界面。所述小应用可通过使用如在国际标准化组织(ISO)7816-4中定义的应用协议数据单元(APDU)命令来访问。
第四应用载于具有NFC功能的读取器(本文中简称为“读取器”)上。所述读取器可以是独立设备或附接到销售点(POS)终端(并由销售点(POS)终端管理)。该应用促进或提供到与移动设备上的安全元件连接的界面的访问,执行优化APDU命令/数据交换任务的特殊任务。例如,它包括将移动设备放置成接近读取器后,读取忠诚度或优惠信息(即,“轻点”)。
第五应用(或应用套件)载于商户POS系统上,其包括POS终端和任何额外的特定于商户的硬件/软件。这些应用管理经由读取器从移动设备上的安全元件接收的与支付/忠诚度/优惠/奖励相关的数据。在大部分情况下,该数据将随后被转发到对应的MoCom或商户特定的平台。
图1是根据示例性实施方案的平台架构的图形表示。如在图1中示出,系统100包括移动设备110,其通信地耦合到非接触式(例如,近距离或NFC)读取器120和移动钱包平台130。读取器120也通信地耦合到POS终端140。POS终端140可以在与读取器120相同的外壳内。替代地,POS终端140和读取器120通信地彼此耦合,但这些组件中的每一个被单独安装。
移动设备110可以是(例如)蜂窝电话等,并包括处理器111a、存储器111b、非接触式前端(CLF)111c、基带调制解调器111d和诸如显示器(未示出)的用户界面。基带调制解调器111d是用于移动网络通信的数字调制解调器。CLF111c是处理非接触式或NFC通信的模拟方面和非接触式传输链路的通信协议层的电路。CLF111c也用于在读取器120与移动设备110中包含的安全元件(或SE)112之间交换数据以例如执行非接触式交易。
安全元件112可被实施为通用集成电路卡(UICC)、嵌入式SE卡、安全的微型安全数字(microSD)卡等。安全元件112通常被认为是安全的,因为它是包括专用存储器的自含式系统,并被由独立测试验证的硬件和软件硬化技术保护。
安全元件112包括(例如,其上存储有)一个或多个商务小应用113。每个商务小应用113与由商务服务提供商(SP)发行的商务服务和账户相关联。服务提供商是向顾客或消费者提供服务的公司、组织、实体等。服务提供商的实例包括账户发行实体,诸如银行、商户、卡协会、营销企业和中转管理局。服务可以是服务提供商允许或提供的活动、能力、功能、工作或用途,诸如支付服务、信用、借记、核算、礼品、优惠或忠诚度服务、中转服务等。
商务服务提供商可在安全元件112上提供(或已提供)一个或多个单独的商务小应用113。此外,其它独立的服务提供商可在安全元件112上提供(或已提供)他们自己的商务小应用113。通常,商务小应用113存储忠诚度和优惠相关数据两者,从而提供可管理该数据的APDU界面。商务小应用113操作为通用存储容器,从而允许多个忠诚度/优惠服务共享忠诚度/优惠数据管理的机制(例如,安全元件、移动设备)。如果存储器限制和性能要求限制可存储在安全元件112上的忠诚度/优惠数据的量,那么额外的数据可存储在移动设备存储器111b中,并由消费者经由商务小程序115进行管理。例如,与优惠相关的任何图形图像可存储在存储器111b中,以便优化安全元件存储器分配。忠诚度/优惠数据管理可由对应的优惠平台131、忠诚度平台132或奖励平台133处理。
商务小应用113包括缓存的商户数据表,其实现与给定商户相关的所有数据的存储/管理。这允许给定商户的商务数据被钱包应用预加载到安全元件112或移动设备110。以下定义包括在缓存的商户数据表中的示例性商务元素(及其在标签长度值(TLV)编码期间使用的对应标签值)。该数据存储在面向记录的数据缓存器中。在示例性实施方案中,商户标识符(商户标识符)被用作用于搜索/检索任务的关键字段。可选地,可创建索引(或哈希表)以改进性能。
例如,在安全元件112的制造和/或配置期间,一个或多个商务小应用113可被加载到安全元件112上,并可被个性化来实现其用途以执行商务交易。商务小应用113经由商务应用编程界面(API)123与读取器120介接。在示例性实施方案中,商务小应用113是JavaCard小应用的形式,并且可通过使用如在ISO7816-4中定义的APDU命令来访问。具体地,商务小应用113通过NFC ISO14443协议使用ISO7816命令经由安全元件112将商务元素传送到读取器120。
安全元件112也可包括一个或多个支付小应用117,其中每个支付小应用117与由支付服务提供商发行的支付服务和账户相关联。例如,在安全元件112的制造和/或配置期间,一个或多个支付小应用117也可被加载到安全元件112上,并可被个性化来实现其用途以执行支付交易。支付小应用117经由API124与读取器120介接。在示例性实施方案中,支付小应用117是JavaCard小应用的形式,并可通过使用如在ISO7816-4中定义的APDU命令来访问。支付小应用113也通过NFC ISO14443协议使用ISO7816命令经由安全元件112将支付元素传送到读取器120。
应理解,上述设备之间的其它通信可包括与或通过其它干预系统、硬件和/或软件的通信,以及此类通信可包括接收、转移和/或管理数据。
存储在移动设备110上的钱包应用114包括指令,所述指令在被移动设备110的处理器执行时,促使移动设备110充当例如用于处理交易(诸如非接触式商务和/或支付交易)的仪器。钱包应用114通过使用如在ISO7816-4中定义的APDU命令来经由商务API116与商务小应用113通信并经由支付API118与支付小应用117通信。
商务小程序115是钱包应用114的组件,其提供用于消费者例如通过与移动设备的显示器或用户界面交互而管理商务元素(例如,忠诚度卡凭证、优惠和奖励)的界面。商务小程序115将(例如)手机上呈现的商务元素的主列表维持在移动设备的存储器(例如,111b)中。已被识别为准备使用的优惠的子集进而被移动到安全元件112,以被传送到非接触式读取器120和POS终端140。敏感信息(诸如忠诚度账户标识符)可被存储在安全元件112上。
支付小程序119是钱包应用114的组件,其提供用于消费者例如通过与移动设备的显示器或用户界面交互而管理支付元素(例如,信用或借机卡凭证)的界面。
读取器120包括读取器商务应用121(在本文中被简称为“读取器应用”)和POS界面122。读取器120管理两个界面:一个是与移动设备110中的安全元件112连接的界面,且另一个是与包括读取器界面141和商务应用数据处理机142的POS终端140连接的界面。读取器120的功能是相同的,无论读取器120是独立的并连接到支付终端或商户POS,或集成于其中。非接触式支付功能也包含在读取器120中,但不被示出。
移动设备110还通信地耦合到移动钱包平台130,其进而通信地耦合到优惠平台131、忠诚度平台132和奖励平台133。优惠平台131、忠诚度平台132和奖励平台133可被统称为移动商务(MoCom)平台134,并在一个或多个服务器(其在本文中单独且统称为MoCom服务器(现在示出))上实施。
在一个实施方案中,顾客可使用移动设备110来在配备有读取器120的POS处执行非接触式交易。顾客将移动设备110放置在非接触式读取器120的预定需要的接近范围内(即轻点),促使移动设备110的CLF111c使用例如NFC ISO14443协议与读取器120通信。读取器120也与移动设备110上的钱包应用114、商务小应用113和/或支付应用通信以执行非接触式交易。
安全元件采用用作当前存储于安全元件112中的可用凭证的目录的近距离支付系统环境(PPSE)。每个凭证被分配与支付应用相关联的对应的应用标识符(AID),并存储在PPSE中。当包含安全元件112的具有NFC功能的移动设备被放置成接近具有NFC功能的非接触式读取器时,非接触式读取器读取凭证,并完成交易。然而,在这样做之前,读取器被初始化。
在移动设备110上的PPSE是用于维持存储于安全元件112上的支付应用的列表的应用,并且通过使它们对系统或设备可见或不可见(即可访问)来提供到存储于移动设备112上的每个支付应用的可访问性。
读取器初始化
现将更详细地描述读取器120的初始化。在一个实施方案中,读取器120实施被称为入口点管理器(EPM)的功能,以控制移动设备中的哪个应用被选择。在该实施方案中,EPM控制读取器120是否将命令发送到移动设备110,以选择执行商务交易的应用或执行支付交易的命令。选择商务应用的命令在本文中被称为“选择商务”。选择支付应用的命令在本文中被称为“PPSE选择”。
在结算过程中,EPM也控制读取器120的启动模式和后续应用切换。EPM因此促进商务交易的选择商务命令与支付交易的PPSE选择命令之间的切换(在读取器120处)。
在读取器上开始商务交易
读取器可被配置来根据若干模式来在读取器上初始化商务交易,这在下文中进一步详细描述。在一种被称为“自动启动”的模式下,读取器应用121是读取器120上的默认应用。作为默认应用允许读取器应用121为消费者提供第一轻点选项(即,在移动设备110与非接触式读取器120之间的初始耦合通信之后)。
另一种被称为“手动启动”的模式允许手动干预被用来初始化读取器商务应用121。手动干预可以是来自POS终端130(例如,通过使用POS终端界面来初始化)或来自消费者(其通过使用商务小程序115来选择移动设备上的商务应用)的命令的形式。
另一种被称为“具有交易后数据的支付”的模式涉及控制如何在活动流中处理支付。例如,如果商户支持提供交易后数据,那么商户数据的支付和接受可通过相同的轻点事件来完成,诸如在交易的最终总额已经被计算出之后。
另一种模式被称为“先支付”。所述先支付选项结合自动启动模式和/或手动启动模式工作,以初始化用于支付的PPSE选择命令,且随后初始化选择商务命令以获得商务数据(例如,忠诚度数据、优惠数据、奖励数据等)。商务数据在本文中互称为“商务元素”。
自动启动模式
参考图1,在POS结算过程的开始,自动启动模式在读取器120上提供商务功能。当移动设备110轻点读取器120时,读取器应用121促使读取器120将“选择商务”消息发送到移动设备110,所述消息包括与将被用来执行非接触式交易的商务应用对应的AID。如果移动设备110接受消息,则其发送肯定响应消息作为回复。接下来,读取器120向移动设备110发送“获取商务数据”命令。获取商务数据命令包含商户特定的数据:安全元件112用来执行商务交易。此外,在成功完成获取商务数据交易之后,控制传递到移动设备110。如果读取器120接收对“选择商务”消息的否定响应,那么其将控制传递回EPM。
手动启动模式
仍参考图1,在手动启动模式下,读取器120响应于来自消费者或POS终端140的请求而启动读取器应用121。在该手动启动模式下,在结算过程的开始,读取器120处于PPSE选择状态。对于消费者初始化的商务交易,消费者在面向顾客的设备处选择商务应用(例如,商务小程序115)。面向顾客的设备随后向读取器120发送命令以经由EPM启动读取器应用121。对于POS终端初始化的商务交易,POS终端140命令读取器120初始化读取器应用121。在一个实施方案中,这由收银员经由POS终端140上的界面进行初始化。
一旦已在读取器120上启动读取器商务应用121,则商务应用将如上文自动启动模式中所述的那样运行。
具有交易后数据的支付
在具有交易后数据的支付模式下,可以进行支付交易,使得交易后数据在POS终端140、读取器120与安全元件112之间传送。该选项允许商务协议在消费者结算的开始启动,但是读取器120不请求支付,直到最终的交易总额已被计算出为止。
POS终端140将具有交易标识符(ID)和兑换的优惠券ID的“交易后”命令发送到读取器120。读取器120随后传输轻点进行支付的请求。所述轻点允许读取器120首先从安全元件112请求支付凭证,并随后促使读取器应用121将商务数据(例如,优惠券数据)发送到安全元件112。两个功能均由移动设备110在读取器120单次轻点来执行。
先支付
在先支付模式中,在商务交易之前,可首先进行支付。该选项适用于支付/PPSE过程必须在任何商务处理之前的情况。先支付模式结合上述自动和手动启动模式进行工作。单次轻点完成支付和商务处理
示例性商务过程流
正常的商务过程流(单次轻点)
图2图示根据示例性实施方案的单次轻点时序图200。当被购买的物品在POS处被扫描时,以下过程流可开始。为了方便起见,读取器120(图1)和POS终端140(图1)被图示为单一组件并被统称为支付终端201。每个组件(即,读取器120或POS终端140)在适当时可单独指代。
商户POS系统202可以是由控制支付终端201的操作的商户操作的商户服务器。在示例性实施方案中,在物品被扫描之前,当物品被扫描时或在物品被扫描之后,商户POS系统202命令支付终端201激活读取器(“激活读取器”)。在每种情况下,读取器120请求用户(或消费者)将移动设备110放置成接近读取器120,如在步骤250中示出(“请求‘轻点’”)。响应于对用户将移动设备110放置成接近读取器120的请求(步骤250),消费者将移动设备110轻点读取器120,如在步骤251中示出。
一旦NFC连接已在移动设备110与读取器120之间建立,则为支付交易和商务交易二者的服务初始化以及处理来初始化以下命令交换。安全元件112与读取器120之间的支付交易初始化和处理交换包括步骤260,以及安全元件112与读取器120之间的商务交易初始化和处理交换包括步骤262。步骤260可在步骤262之前、之后或基本上同时执行。
首先参考步骤262,在移动设备已经轻点读取器120之后,读取器120向安全元件112发送选择商务命令和特定商务AID(“选择商务AID”),所述特定商务AID指示其寻求与安全元件112内的哪个商务小应用(例如,商务小应用113)合作。作为响应,安全元件112发送肯定或否定响应。否定响应(未示出)导致读取器120终止读取器应用121(图1),并将控制传递到EPM(未示出)。如果响应是肯定的(“肯定响应”),则读取器120向安全元件112发送命令(“获取商务数据”),其指定识别信息,诸如由该地点、日期和时间信息支持的商户/商店标识符和任何额外的忠诚度、优惠或奖励方案,由读取器120支持的读取器商务应用121的版本,和任何商户能力数据。
安全元件112基于从读取器120接收的获取商务数据命令中的字段而将对应的商务元素(例如,忠诚度数据、优惠数据、奖励数据)返回到读取器120(“忠诚度与优惠数据”)。在一个实施方案中,商务小应用113创建含有商务数据的包(例如,包括忠诚度数据、优惠数据或奖励数据的缓冲区或缓冲区组)。在另一实施方案中,缓冲区使用安全元件112中的存储器空间来预建。
参考步骤260,在一个实施方案中,读取器120通过向安全元件112发送PPSE请求(“PPSE选择”)开始支付处理。
如果选择商务AID和PPSE选择请求是成功的(如在步骤264中示出(“读取成功指示”)),那么支付终端201将其已接收的商务应用数据和支付凭证转发到商户POS系统202用于处理(“支付与商务数据”)。当产品扫描继续进行时,商户POS系统202进而记录忠诚度标识符和优惠(未示出)并应用任何合适的折扣,如在步骤266中示出。这总结出商务应用过程并且支付处理继续进行。
一旦扫描已经完成并且交易量已被批准用于支付,则向支付平台203发起支付授权请求(“支付授权请求”)。反过来,支付平台203返回指示所述支付是否已被授权的授权结果(“授权结果”)。
再次参考步骤260,在一个实施方案中,由读取器120向安全元件112发起PPSE选择请求促使安全元件112返回指示应使用哪个支付小应用(且因此哪个对应的支付网络)来执行支付交易的PPSE支付AID(“PPSE支付AID”)。作为响应,读取器120发送指示其支持特定小应用的选择AID(“选择AID”)。与支付小应用(例如,图1,117)相关联的文件控制信息(FCI)由安全元件112发送到读取器120。类似地,其它支付和卡信息由安全元件112发送到读取器120(“支付/卡数据”)。
图3示出时序图300,其图示根据示例性实施方案的包括双轻点和交易后数据传输的商务过程流。可在商户具有传送回移动设备的数据时使用该实施方案。为了方便起见,读取器120(图1)和POS终端140(图1)被图示为单一组件且被统称为支付终端301。每个组件(即,读取器120或POS终端140)在适当时可单独指代。通常,POS终端140(图1)通过向读取器120发送命令(“交易后命令”)来初始化对第二次轻点的请求。读取器120进而从消费者请求第二次轻点。
商户POS系统302可以是由控制支付终端301的操作的商户操作的商户服务器。在示例性实施方案中,在物品被扫描之前,当物品被扫描时或在物品被扫描之后,商户POS系统302命令支付终端301激活读取器120(“激活读取器”)。在每种情况下,读取器120请求用户将移动设备110放置成接近读取器120,如在步骤350中示出(“请求‘轻点’”)。响应于对用户将移动设备110放置成接近读取器120的请求(步骤350),消费者将移动设备110轻点读取器120,如在步骤351中示出。
一旦NFC连接已在移动设备110与读取器120之间建立,则为支付交易和商务交易二者的服务初始化以及处理来初始化以下命令交换。安全元件112与读取器120之间的支付交易初始化和处理交换包括步骤360,以及安全元件112与读取器120之间的商务交易初始化和处理交换包括步骤362。步骤360可在步骤362之前、之后或基本上同时执行。
首先参考步骤362,在移动设备110已经轻点读取器120之后,读取器120向安全元件112发送选择商务命令和特定商务AID(“选择商务AID”),所述特定商务AID指示其寻求与安全元件112内的哪个商务小应用(例如,商务小应用113)合作。作为响应,安全元件112发送肯定或否定响应。否定响应(未示出)导致读取器120终止读取器应用121(图1),并将控制传递到EPM(未示出)。如果响应是肯定的(“肯定响应”),则读取器120向安全元件112发送命令,其指定识别信息,诸如由该地点、日期和时间信息支持的商户/商店标识符以及任何额外的忠诚度和优惠方案,由读取器120支持的读取器商务应用121的版本,和任何商户能力数据(“获取商务数据”)。安全元件112基于从读取器120接收的获取商务数据命令中的字段而将对应的商务元素(例如,忠诚度和优惠数据)返回到读取器120(“忠诚度与优惠数据”)。在一个实施方案中,这由创建数据的包(本质上,为包括优惠和忠诚度数据的缓冲区或缓冲区组)的商务小应用113来完成。在另一实施方案中,缓冲区可使用安全元件112中的存储器空间来预建。
接下来参考步骤360,在一个实施方案中,读取器120向安全元件112发起PPSE选择请求促使安全元件112返回指示应使用哪个支付小应用(且因此支付网络)来执行支付交易(“PPSE支付AID”)的PPSE支付AID。作为响应,读取器120发送指示其支持特定小应用的选择AID(“选择AID”)。与支付小应用(例如,117)相关联的FCI由安全元件112发送到读取器120。类似地,其它支付和卡信息由安全元件112发送到读取器120(“支付/卡数据”)。如果选择商务AID和PPSE选择请求是成功的(如在步骤364中示出),那么支付终端301将其已接收的商务应用数据和支付凭证转发到商户POS系统302用于处理(“支付与商务数据”)。当产品扫描继续进行时,商户POS系统302进而记录忠诚度标识符和优惠(未示出)并应用任何合适的折扣,如在步骤366中示出的。
一旦扫描已经完成并且交易量已被批准用于支付,则向支付平台303发起支付授权请求(“支付授权请求”)。反过来,支付平台303返回指示所述支付是否已被授权的授权结果(“授权结果”)。
如果存在待发回支付终端301的数据,则商户POS系统创建具有被正确格式化TLV的命令“交易后数据”,并将数据转发到读取器120。在接收交易后命令之后,支付终端301将从消费者请求第二次轻点,如在步骤368中示出(“请求第二次‘轻点’”)。
参考步骤369和步骤370,当移动设备110第二次被放置成接近读取器120时(如在步骤369中示出),读取器120向安全元件112发送选择商务命令和特定商务AID(“选择商务AID”),所述特定商务AID指示其寻求与安全元件112内的哪个商务小应用(例如,商务小应用113)合作。
如果接收否定响应,则读取器120终止读取器商务应用121。如果接收肯定响应,则读取器120向安全元件112转发在来自POS终端140的“交易后数据”命令中接收的数据(“交易后数据”)。这总结出关于该交易的商务处理。
图4示出时序图400,其图示根据示例性实施方案的包括双轻点和交易后数据和支付传输的商务过程流。在该场景下,在已全部算出购物篮的总额且已应用所有折扣之后,处理支付和交易后数据。该流的使用由设置有特定位(例如,“具有交易后的支付”)的读取器启动模式数据元素控制。
为了方便起见,读取器120(图1)和POS终端140(图1)被示出为单一组件并被统称为支付终端401。每个组件(即,读取器120或POS终端140)在适当时被单独指代。通常,商户POS系统402通过向读取器120发送交易后数据命令来初始化对第二次轻点的请求。读取器120进而从消费者请求第二次轻点。
商户POS系统402可以是由控制支付终端401的操作的商户操作的商户服务器。在示例性实施方案中,在物品被扫描之前,当物品被扫描时或在物品被扫描之后,商户POS系统402命令支付终端401激活读取器(“激活读取器”)。在每种情况下,读取器120请求用户将移动设备110放置成接近读取器120,如在步骤450中示出(“请求‘轻点’”)。响应于对用户将移动设备110放置成接近读取器120的请求(步骤450),消费者将移动设备110轻点读取器120,如在步骤451中示出。
一旦NFC连接已在移动设备110与读取器120之间建立,则为支付交易和商务交易二者的服务初始化以及处理来初始化以下命令交换。安全元件112与读取器120之间的支付交易初始化和处理交换包括步骤472,以及安全元件112与读取器120之间的商务交易初始化和处理交换包括步骤462和474。
首先参考步骤462,在移动设备已经轻点读取器120之后,读取器120向安全元件112发送选择商务命令和特定商务AID(“选择商务AID”),所述特定商务AID指示与安全元件112内的哪个商务小应用(例如,商务小应用113)合作。作为响应,安全元件112发送肯定或否定响应。否定响应(未示出)导致读取器120终止读取器应用121(图1),并将控制传递到EPM(未示出)。如果响应是肯定的(“肯定响应”),则读取器120向安全元件112发送命令,其指定识别信息,诸如由该地点、日期和时间信息支持的商户/商店标识符以及任何额外的忠诚度和优惠方案,由读取器120支持的读取器商务应用121的版本,和任何商户能力数据(“获取商务数据”)。安全元件112基于从读取器120接收的获取商务数据命令中的字段而将对应的商务元素(例如,忠诚度和优惠数据)返回到读取器120(“忠诚度与优惠数据”)。在一个实施方案中,这由创建数据的包(例如,包括优惠和忠诚度数据的缓冲区或缓冲区组)的商务小应用113来完成。在另一实施方案中,缓冲区可使用安全元件112中的存储器空间来预建。
在步骤464处,读取器120指示消费者交易已经完成以及可从支付终端401移除手机,这导致读取器120将商务应用数据转发到POS终端140,且进而转发到商户POS系统用于处理(“忠诚度与优惠数据”)。职员可继续处理购物篮。
当产品扫描继续进行时,商户POS系统402记录忠诚度标识符和优惠(未示出),并应用任何合适的折扣,如在步骤466中示出。在已计算出购物篮的总额之后,商户POS系统402向支付终端401发起支付的请求,并且将交易后数据发送到支付终端401(如果数据可以发送)(“发送交易后数据和支付请求”)。
在步骤468处,支付终端140请求轻点以进行支付。读取器120进而激活读取器字段。当在读取器120的字段中检测到移动设备110时,执行支付处理,如在步骤472中示出。特别地,由读取器120向安全元件112发起PPSE选择请求促使安全元件112返回指示应使用哪个支付小应用(且因此支付网络)来执行支付交易(“PPSE支付AID”)的PPSE支付AID。作为响应,读取器120发送指示其支持特定小应用的选择AID命令(“选择AID”)。与支付小应用(例如,图1,117)相关联的FCI由安全元件112发送到读取器120。类似地,其它支付和卡信息由安全元件112发送到读取器120(“支付/卡数据”)。
参考步骤474,如果支付终端401已经从商户POS系统402接收交易后数据,则读取器120启动商务应用121(图1),并在移动设备已第二次轻点读取器120之后向安全元件112发送选择商务命令和特定商务AID(“选择商务AID”)。所述选择商务AID识别应使用安全元件112内的哪个商务小应用来与读取器120合作。作为响应,安全元件112发送肯定或否定响应。否定响应(未示出)导致读取器120终止读取器应用121(图1),并将控制传递到EPM(未示出)。如果响应是肯定的(“肯定响应”),则读取器120向安全元件112发送具有正确格式化TLV的交易后数据(“交易后数据”)。这总结出关于该交易的商务处理。
如果选择商务AID和PPSE选择请求是成功的,那么支付终端401将其已接收的支付应用数据和支付凭证转发到商户POS系统402用于处理(“支付/卡数据”)。反过来,商户POS系统将支付授权请求发送到支付平台403(“支付授权请求”)。反过来,支付平台403返回指示所述支付是否已被授权的授权结果(“授权结果”)。
如果商务和支付凭证和信息已被成功读取,则读取器120可通过支付终端140上的界面、商务小程序115(图1)或支付小程序119(图1)提供通知,如在步骤478中示出(“读取成功指示”)。
商务消息规范
数据编码
在一个实施方案中,所有命令/响应数据均使用BER-TLV(ISO7816-4附件D)格式进行编码。在一些情况下,TLV(标签、长度、值)可以是嵌套的(嵌入式TLV)。由于TLV编码格式的灵活性,标记的数据可以任何顺序放置。当为传入和传出的有效负荷对数据进行格式化时,尤其如此。此外,该数据被存储在面向记录的表中。存储于其中的TLV编码数据元素的顺序并不重要;然而,一些数据可被放置在记录的开始以增强索引/搜索性能。因此,在本文档中提供的记录数据表被提供为样例以供参考之用。
使用“私密”标签类和表示在一个或多个后续字节上编码的原始数据对象的标签类型来编码标签。因此,第一个字节(标签类)被设为0xDF。就一切情况而言,在单个字节上定义数据元素标签。因此,第二个标签字节具有被设为0的最高有效位(b8)。这允许高达128个有效标签值(0x00-0x7F)。
长度编码支持短格式或长格式。当长度小于(<)128个字节时,将最高有效位(b8)设为0,并且在剩余位(b7-b1)中指定实际长度。当长度大于(>)128个字节时,将最高有效位(b8)设为1(长度掩码=0x80),并且剩余位(b7-b1)定义长度字段中的后续字节数。这些后续字节编码与值字段中的字节数相等的整数。
BER-TLV实施例
假定传入数据使用具有8个字节的长度和(0x1122334455667788)的值的0x21的标签值(消费者ID),数据被编码,如在表1中示出:
表1
标签 |
长度 |
值 |
DF 21 |
08 |
11 22 33 44 55 66 77 88 |
DF 21 |
81 08 |
11 22 33 44 55 66 77 88 |
DF 21 |
82 00 08 |
11 22 33 44 55 66 77 88 |
TLV编码允许长度指示符以多个字节表达。优选地,支持多字节长度。在短格式中,长度字段由单个字节构成,其中位8被设为0,并且位7到位1编码值字段中的字节数。一个字节可因此编码从0到127的任何数。在BER-TLV长度字段中以与在Lc和Le字段中相同的方式对从1到127的任何数进行编码。对零、128或更多的编码是不同的。例如,参见下文描述的获取商务数据命令中的数据对象的编码。
在长格式中,长度字段由两个或更多个字节构成。第一字节的位8被设为1,并且位7到位1并非全部相等,因此编码长度字段中的后续字节数。那些后续字节编码值字段中的字节数。ISO/IEC7816不使用由ASNI ISO/IEC7816的基本编码规则指定的“不定长度”,其支持一个、两个、…、高达五个字节的长度字段(表2)。在ISO/IEC7816中,值‘80’和‘85’到‘FF’对于长度字段的第一个字节而言是无效的。
表2-ISO/IEC7816中的BER-TLV长度字段
选择商务小应用
在一个实施方案中,当读取器120在读取器120的字段中检测到移动设备110且NFC通信已开始时,处理启动。在那时,读取器120向安全元件112发送命令以选择商务小应用,具体是“选择商务”命令。选择商务命令(也称为“选择商务小应用”命令)被标准化,如在ISO78016-3规范中定义。在表3中示出选择商务命令结构的实例:
表3-选择商务小应用
CLA |
INS |
P1 |
P2 |
Lc |
数据 |
Le |
00 |
A4 |
04 |
00 |
09 |
A000000485 100 10 10 1 |
00 |
移动设备110中的安全元件112验证“选择商务”命令,并且发回适当的响应。在表4中示出示例响应(也被称为“状态码”):
表4-状态码
SW1 |
SW2 |
描述 |
90 |
00 |
命令的成功执行 |
67 |
00 |
错误的数据长度 |
69 |
01 |
不支持应用ID |
69 |
99 |
应用不可用 |
6A |
82 |
不安装应用 |
除了’90 00’(“命令的成功执行”)的所有响应使商务应用121(图1)在读取器120中终止,并且将控制传递到EPM。
获取商务数据
在读取器应用121开始并且读取器120与安全元件112之间的通信初始化之后,读取器120向移动设备110发送命令以获取商务数据“获取商务数据”。在下面的表5和表6中定义示例性获取商务数据命令。在该实例中,正请求特定的忠诚度和优惠数据。读取器120利用“商户能力”字段来确定哪些字段需要在请求和响应数据中呈现。
日期和时间戳信息是可选的。在一个实施方案中,日期时间与POS同步。若无法从POS获得该信息,可以使用来自POS终端140的日期/时间。如果日期和时间不可用,那么读取器120将不会发送日期时间戳数据元素。
在示例性实施方案中,在设置时,获取商务数据请求中含有的数据元素在读取器120或POS终端140中被预先配置。可在已安装并配置读取器120之后,修改所述数据。
表5—获取商务数据
表6—命令数据
表7定义可由获取商务数据命令返回的可能的状态字值。
表7—状态码
SW1 |
SW2 |
描述 |
90 |
00 |
命令的成功执行 |
61 |
xx |
跟随有更多数据 |
67 |
00 |
错误的数据长度 |
69 |
09 |
内部错误 |
在记录错误并存储用于转发到商务小程序115的数据之后,除了’61xx’或’9000’的任何响应将导致读取器120终止商务应用121,并且将控制传递到EPM。
如果获取商务数据请求被正确格式化,则安全元件112上的商务小应用113基于商户标识符(“Merchant_ID”)、忠诚度标识符(“Loyalty_ID”)和优惠类型码(“Offer_Type_Code”)过滤数据,以基于请求中的版本号为读取器120格式化响应数据。商务小应用113可基于钱包中的配置来返回一个以上的忠诚度ID和多个优惠消息。表8列出示例性响应数据:
表8—示例响应数据
以下是示例性响应数据解析样例。NFC读取器(或POS终端)以可含有消费者、忠诚度和/或优惠数据的数据字符串的形式将该商务数据递送到POS系统。商户POS系统可随后解析数据,以获得忠诚度和优惠数据,并按照商户的规范来处理数据。
交易后数据
如上文解释,交易后数据命令提供机制以从商户POS系统(MPOS)接收数据。商户POS终端140对该命令进行初始化,且优选地在商户能力字段中支持该命令。在示例性实施方案中,该命令由最大数据大小为255字节的单帧数据构成。数据的内容使用标准TLV格式化,并且也可以变化。该命令实现动态调和或交易后数据整合。额外的数据标签可被定义用于将额外数据从POS终端/MPOS传输到移动设备110中的安全元件112。在表9和表10中示出示例性交易后数据命令(“交易后数据”):
表9–交易后数据命令
CLA |
INS |
P1 |
P2 |
Lc |
数据 |
Le |
90 |
52 |
00 |
00 |
xx |
<TLV编码交易后数据> |
00 |
表10–命令数据
多块数据处理
图5图示根据示例实施方案的示例性多块数据流。当安全元件112有超过255字节的数据要发送时,获取响应命令(C0)用于检索剩余的响应数据。具体而言,当商务小应用113必须发送超过例如255字节的响应数据时,该命令用于获得剩余数据。
参考图5,在用户将支持商务的移动设备110轻点读取器120后,读取器120向移动设备110的安全元件112发送选择商务命令。肯定响应(‘9000’)使读取器120发送获取商务数据命令。作为响应,安全元件112返回忠诚度和优惠数据。如在图5中示出,获取商务数据响应状态SW1标记被设为‘61’,并且SW2标记被设为‘00’。
当获取商务数据响应中的SW1标记被设为‘61’时,触发获取响应命令。在该实例中,SW2标记被设为‘00’,因为移动设备110上的商务小应用113可能不知道还有多少数据要发送。对获取响应命令的后续响应也包含被设为‘61’的SW1标记,促使第二获取响应命令由读取器120发送到移动设备110。
当获取商务数据响应中的SW1标记被设为除了‘61’的任何值时,该序列将终止。例如,响应于获取响应命令(如在图5中示出)的SW1值‘90’将指示正常完成。任何其它SW1值可记录为错误。
表11定义获取响应数据APDU命令的示例性设置:
表11–获取响应数据
CLA |
INS |
P1 |
P2 |
Lc |
数据 |
Le |
90 |
C0 |
00 |
00 |
00 |
<无> |
00 |
剩余数据的实际长度是可变化的。因此,Le数据长度可以是0x00;允许商务小应用113管理可变长度响应。
表12定义可由获取响应数据APDU命令返回的可能状态字值(“状态码”)。
表12—状态码
SW1 |
SW2 |
描述 |
90 |
00 |
命令的成功执行 |
61 |
xx |
跟随有更多数据 |
67 |
00 |
错误的数据长度 |
69 |
09 |
内部错误 |
读取器配置数据
在一个实施方案中,在读取器120的安装和配置期间,某些商户和商务特定的数据被加载并保存在读取器120中。该数据被读取器120用来填写来自读取器120的获取商务数据命令。当新的特征和功能变得可用时,这些数据元素可被更新。
商务AID
如上文解释,在选择商务命令中发送商务AID。如果命令被移动设备110接受,则商务小应用113被启动,并且APDU命令/响应流将在读取器120与安全元件112之间启动。在示例性实施方案中,商务AID值是A00000048510010101。可在读取器120上对该值进行硬编码。在一个实施方案中,不要求读取器120支持部分选择。
Merchant_ID
商户标识符(Merchant_ID(DF31))可被加载到读取器120上。商户ID是由服务提供商分配的值。在一个实施方案中,该值由MoCom平台操作员分配。这是允许商务小应用113过滤忠诚度和优惠券数据并向读取器120发送合适项目所需要的。
Merchant_Store_ID
商户商店标识符值(Merchant_store_ID(DF32))被加载到读取器120,并且是由服务提供商分配的值。该值可用于例如报告目的。
Loyalty_ID
当在轻点期间请求多个忠诚度ID时,使用忠诚度标识符值(Loyalty_ID(DF41))。这通过在商户能力(DF33)中设置二次忠诚度来完成。这允许商务小应用113响应于获取商务数据命令而返回额外忠诚度数。多个(例如,5)额外的Loyalty_ID可在获取商务数据请求中编码。
Offer_Type_Codes
优惠类型代码(优惠类型代码(DF54))被加载到读取器120上。分配到优惠类型代码的值是由服务提供商分配。该值由商务小应用113用来过滤优惠,并且仅向读取器120发送合适项目。可定义多个Offer_Type_Codes并在获取商务数据命令中将其发送到安全元件112。
Commerce_Application_Version
商务应用版本号(Commerce_Application_Version)可被加载到读取器120上以表示对读取器120上的应用编码且认证的商务读取器规范的版本。
Merchant_Capabilities
商户能力值表示由特定商户支持的商务特征。该数据元素也可被读取器120用来格式化获取商务数据命令。
Terminal_Startup_Mode
终端启动模式命令(终端启动模式(DF34))命令读取器120提供用来启动商务应用121的机制。该数据元素不被发送到安全元件112。该数据元素也将用于定义读取器120与手机上的安全元件112之间的处理流。
获取商务数据字段
表13提供由读取器120需要用来格式化选择商务和获取商务服务命令的数据的示例性定义:
表13
|
|
字节 |
|
商务AID |
|
09 |
十六进制 |
商务ID |
DF 31 |
8 |
十六进制 |
商户商店ID |
DF 32 |
32 |
ASCCI |
忠诚度标识符#1至X |
DF 41 |
8 |
BCD |
日期和时间戳 |
DF 11 |
7 |
BCD |
规范版本(主要/次要) |
DF 12 |
2 |
十六进制 |
商户能力 |
DF 33 |
2 |
二进制 |
商务启动模式 |
DF 34 |
2 |
二进制 |
商务小应用版本格式
商务小应用版本值是两字节十六进制字段,其中第一字节含有主要版本(xx),以及第二字节包含次要版本(xx)。根据在读取器120上实现的读取器商务技术规范的特定版本来更新这些字段。在示例性实施方案中,商务应用121的官方首发是0x0100。
商户能力
商户能力字段(商户能力字段(DF33))确定哪些商务功能被商户实施。读取器120可将该字段传递到移动设备110,并且移动设备110使用该信息来创建响应帧(被称为商务数据响应帧)。表14图示示例性商户能力:
表14—商户能力数据商务启动模式格式
商务启动模式格式
商务启动模式格式值(商务启动模式(DF34))向读取器120指示将使用什么机制来启动读取器120上的商务应用121。在一个实施方案中,不在获取商务数据命令中将该数据元素发送到移动设备110。在另一实施方案中,该数据元素是可选的。表15图示可用来开始商务应用121的示例性启动模式。在示例性实施方案中,位7和位8是互斥的,并且一次仅打开一个位:
表15—商务启动模式
读取器消息转发
当从移动设备110读取商务应用数据时,读取器120将数据转发到驻留在POS终端140上的商户POS系统或POS应用。读取器120剥离APDU报头并且不封锁来自移动设备110的数据。标记的TLV帧随后包裹在适当的协议中,并被转发到运行于POS终端上的商户POS系统或POS应用以供处理。
商务响应数据描述
在与读取器120的成功交互期间,数据将被返回到POS商户系统(或POS终端)。该信息将通常由商户定义并加载到消费者钱包的消费者忠诚度号和/或一些优惠号组成。
消费者ID
消费者标识符(消费者ID)是在钱包激活过程中被分配到消费者的唯一标识符。通常,消费者ID将与消费者绑定,即使消费者将她的钱包移动到新的移动设备或不同的移动网络。在优选的实施方案中,在每次商务相关的交互,将消费者ID从移动设备发送到读取器,即使手机没有忠诚度或优惠数据要发送,也这样做。消费者ID的呈现可由商户POS系统用于触发与仅支付轻点相关的具体动作。
忠诚度ID
忠诚度标识符(忠诚度ID)连同在轻点事件期间请求的每个消费者忠诚度号一起被发送。忠诚度ID是分配到由MoCom平台分配的每个商户忠诚度程序的唯一值。在大部分情况下,由读取器接收的忠诚度ID将与由获取商务数据命令配置的商户ID匹配。商户系统对该信息的使用是可选的。
消费者忠诚度代码
消费者忠诚度代码(消费者忠诚度代码)与被分配给特定商户忠诚度程序的消费者的忠诚度号匹配。钱包应用114允许在轻点时呈现多个忠诚度号。如果针对多个消费者忠诚度代码设置系统,则每个消费者忠诚度代码前将有其唯一的忠诚度ID。
优惠ID
移动商务优惠标识符(优惠ID)连同在商务相关的会话期间发送的每个消费者优惠号一起被发送。优惠ID是被分配到递送到消费者钱包的每个优惠的唯一值。在一个实施方案中,由MoCom平台生成的两个优惠ID将不会具有相同值。
商户优惠代码
商户优惠代码(“商户优惠代码”或“优惠代码”)是由商户产生并通过各种方式被加载到消费者的钱包应用。该号与商户POS系统上定义的相同优惠匹配以用于处理。在单个商务交易期间,可出现多个商户优惠(例如,10)。商户系统解析传入数据,以提取个人商户优惠。
商务响应数据字段
表16定义在成功的商务交易之后可被返回至商户POS系统的示例性数据元素:
表16
在一个实施方案中,数据元素“终端启动模式”被传递到读取器120,但将不会被传递到安全元件112。读取器120使用该信息来控制何时将选择商务命令和选择PPSE命令发送到安全元件112。
读取器商务应用功能
以下部分提供读取器120内的商务应用执行的功能的列表。这些功能中的一些是自动的,而另一些是经由来自POS终端或商户POS的API调用来触发的。
选择商务AID命令
在读取器120上启动商务应用且在读取器120的字段中检测到设备后,发送的第一命令是选择商务AID。该命令将含有由ISO分配的RID值和由商务服务提供商生成的PIX值。商务AID值是A00000048510010101。应在读取器120上对该值进行硬编码。
获取商务数据命令
获取商务服务数据命令是发送到安全元件112的一般数据请求。获取商务数据具有将信息传送到商务小应用113的大量所需和可选字段。商务小应用113使用该信息来创建需要被发送到读取器120的数据元素。读取器120使用商务能力记录中的字段来确定哪些可选字段需要被包括在发送到手机的请求中。
交易后数据
创建交易后数据命令以提供从MPOS接收回数据的机制。该命令由最大数据大小为255字节的单个数据帧构成。数据的内容使用标准TLV格式化,但所述内容可以变化。额外的数据标签可被定义用于将额外数据从POS终端/MPOS传输到移动设备110中的安全元件112。
NFC错误恢复
在优选的实施方案中,读取器120能够从手机过早地从NFC字段移除时生成的读取器错误恢复。读取器120经由故障界面(诸如输出“嘟嘟声(beep)”的扬声器或诸如经由灯提供光学指示的显示器)向消费者发信号通知读取错误。消费者被要求再次轻点,并且错误期间正在进行的交易被重新开始。在正处理多个交易(诸如商务交易和PPSE交易)的情况下,读取器120将试图恢复被执行的最后一个过程。
较大数据块支持
在示例性实施方案中,读取器120在单个轻点过程中从移动设备112读取多个255字节的数据块并将其写入移动设备112。
日期和时间戳支持
当读取器120具有到商户POS系统的连接时,可在交易的开始从POS终端检索日期和时间。
TLV主标签列表
表17定义由基于商务的应用使用的数据元素和对应标签值以及目标/最大字节大小。额外值已被提供用于在有限/固定值范围内的那些元素。
表17—APDU命令
表18提供由商务小应用113支持的示例性APDU命令的主列表。
表18
部分格式化的数据元素
在商务数据有效负载中包括的数据元素可包括识别用于所述元素的数据编码的格式字节。数据编码由商户指定以确保在销售点的兼容性。格式化的数据值由商务平台提供到钱包应用114。因此,在平台130、钱包114、安全元件112与读取器120/POS终端140(统称为“支付终端”)之间不需要任何额外的解译/格式化。支付终端(或商户POS系统)的作用是正确地解译数据,并将其提供到商户系统以进行处理。
在示例性实施方案中,以下数据元素包括以下格式值:
·忠诚度账户代码(DF43)
·优惠代码(DF53)
表19定义可能的格式字节值以及它们对应的编码规则:
表19
在第一个半字节中包括十六进制值‘F’的BCD编码数据值应识别含有奇数个数字的数据流。因此,BCD数据流12345在三字节的缓冲区中被编码如下:0xF12345。
示例性实施方式
图6图示根据本发明的示例实施方案的由钱包应用的图形用户界面生成的窗口或屏幕截屏。出于该示例性实施方式的目的,移动设备110具有存储在存储器111b中的可兑换优惠和忠诚度卡。
钱包主屏幕601以带状商户块604为特征。一个块是针对使可兑换对象(例如,可兑换的优惠或忠诚度卡)在移动钱包中出现的每个商户而呈现。例如,用户可左右扫过各块以找到特定商户。一旦找到特定商户,则选择所述块以打开商户优惠视图602。这可在进行交易之前完成或紧接在进行所述交易前(诸如当排队等候时)完成或更早完成(例如,当浏览商店时)。
商户优惠视图602呈现在钱包中可用的可兑换优惠603的列表。也可呈现非可兑换促销。如果存在,忠诚度卡605也被呈现并且可从商户优惠视图602获得。
如果选定商户不是支持商务的商户,那么不会有任何选项来呈现加载优惠用于商务交易。然而,如果所述商户是支持商务的商户,则呈现一个或多个按钮或图标606a、606b,以允许优惠被加载用于商务交易。
用户可选择优惠(例如,606a),且随后选择屏幕底部处的“完成”条。
在示例性实施方案中,可由安全元件112执行对优惠量的限制(例如,10个优惠),并且当用户激活优惠时,商务小程序115的用户界面执行该限制。触发“完成”条以将选定优惠加载到安全元件112。如果安全元件112中有来自另一商户的优惠,则它们可在加载新优惠的同时被移除—这确保在任何给定时间仅有来自一个商户的优惠存在于112中。
当安全元件加载完成时,用户将移动设备110轻点读取器120。接下来发生什么取决于一些因素。如果被轻点的读取器无法处理商务元素,则发送选定支付卡,但不发送任何商务元素(例如,优惠或忠诚度凭证)。轻点后的消息通过读取器界面呈现,其指示发送支付凭证而无其它任何信息。
如果被轻点的读取器能够处理商务元素,但商户ID不与选定商户匹配,则优惠将不会被发送。安全元件112中的商务小应用113可搜索关于该商户ID的忠诚度卡,并传输忠诚度凭证(若存在)。轻点后的消息通过界面呈现指示事件发生、识别商户并报告所述忠诚度凭证(如果它们可用)和支付凭证已被发送。
如果被轻点的读取器是支持商务的读取器并且商户ID与选定商户匹配,则关于所述商户的选定优惠和(若存在)忠诚度卡凭证被发送。移动设备110可通过商务小程序115用户界面呈现轻点后的消息,以确认优惠和忠诚度(若存在)连同支付一起被发送。
在轻点后,被加载到安全元件112的优惠留在安全元件112中,直到用户移除它们或从另一商户选择优惠为止。替代地,如果优惠过期,则在执行钱包维护时将其从安全元件112移除。在示例性实施方案中,选定商户将在钱包主页上保持“活动”商户,直到用户选择不同商户为止。
即时优惠实施方式
图7图示图示根据本发明的实施方案的示例性即时优惠实施方式的流程图。在该实施方案中,移动商务(MoCom)平台可与商户POS系统集成,以为用户实施通过使用提供给消费者的钱包应用和/或即时优惠商户来选择优惠的机制。
运行于移动设备上的钱包应用可用于允许消费者支付购买并且经由支付终端呈现忠诚度和优惠。消费者可兑换优惠的一种方法是通过经由在结算时呈现的钱包应用选择优惠。
消费者也可被提供有可通过钱包应用即时兑换的优惠。这种优惠在本文中被称为“即时优惠”。该特征允许商户奖励使用移动设备运行钱包应用来进行购买的消费者。消费者受益于即时优惠,原因之一是他们无需经由钱包应用特别选择优惠。取决于所述实施方式,即时优惠可与由消费者明确从钱包应用选择的优惠一起使用。无论优惠是被消费者选择还是被“即时”提供,从移动设备(例如,从安全元件112)检索到的消费者标识符(“消费者ID”)值被用作用于检索并兑换即时优惠的密钥。
参考图7,在一个实施方案中,消费者从在结算时呈现的钱包应用选择优惠。在方框702处,在POS处请求支付。如果在方框704处确定支付不是非接触式支付,则在方框706处,经由替代方式(例如,通过使用现金)来完成支付过程,并且完成结算过程。如果在方框704处确定支付将是非接触式支付,则移动设备用户被要求将他或她的移动设备轻点读取器(例如,上文描述的读取器120)。
作为响应,移动设备被轻点读取器。在轻点事件期间,可在读取器与上述移动设备上的安全元件之间传递大量数据元素。在一个实施方案中,在轻点读取器期间,传递支付卡数据、消费者ID、忠诚度号码和优惠代码到读取器。在该实施方案中,即使该轻点是用于仅支付没有选择任何优惠的交易,消费者ID也被发送到读取器。
如果在方框708处确定MoCom消费者ID不存在,则在方框706处,完成支付过程并通过处理所述支付来完成结算过程。
如果在方框708处确定MoCom消费者ID存在,则在方框710处作出对MoCom优惠(例如,用户经由钱包应用选择的优惠)是否存在的确定。如果在方框710处作出对MoCom优惠存在的确定,则在方框712处作出对MoCom即时优惠是否也已被定义的确定。如果在方框712处确定MoCom即时优惠已被定义,则处理MoCom优惠(即,用户经由钱包应用界面选择的优惠)和MoCom即时优惠两者,如在方框714处示出。一旦MoCom优惠和/或MoCom即时优惠被处理,则如在步骤706处示出,处理与那些优惠相关联的支付。
如果在方框710处作出对MoCom优惠不存在的确定,则在方框716处作出对MoCom即时优惠是否已被定义的确定。如果否,则完成支付,如在步骤706处示出。如果在方框716处作出对MoCom即时优惠存在的确定,则处理MoCom即时优惠,如在方框718处示出,并且处理与MoCom即时优惠相关联的支付,如在方框706处示出。
如果在方框712处作出对MoCom即时优惠尚未被定义的确定,则处理标准的MoCom优惠,如在方框720处示出,并且在方框706处,完成被处理的支付。
商户POS系统可使用消费者ID的存在来触发对即时优惠的使用。所述优惠可以是例如使用MoCom系统的商户定义的全额折扣(cents off)或比例折扣(percentage off)类型的优惠。例如,这可以应用于购买特定物品。在示例性实施方式中,当在轻点期间出现钱包优惠时,可为商户提供关闭或打开即时优惠功能的选项。
即时优惠可由商户定义,并且随后被分配到其零售地点。所述优惠也可具有相关联的特定开始和结束日期。也可考虑将即时优惠分配到不同的地理区域的能力。
商务小应用包/小应用/实例管理
以下部分定义在商务小应用113(图1)的下载/安装期间使用的AID值和应用特定的参数。表20定义AID。
表20—AID
描述 |
AID |
包AID |
A0 00 00 04 85 10 01 01 |
小应用AID |
A0 00 00 04 85 10 01 01 00 |
实例AID |
A0 00 00 04 85 10 01 01 01 |
特定于小应用的安装参数
商务小应用的初始商务服务数据特性可经由特定于小应用的安装参数配置。该数据跟随标准的JavaCard AID和安装参数。
这些参数必须被编码,如在表21中示出:
表21—小应用安装参数
配置数据 |
字节大小 |
默认值 |
忠诚度记录的最大数量 |
2 |
20 |
预加载商户记录的最大数量 |
2 |
1 |
交易记录的最大数量 |
2 |
3 |
总计: |
6 |
|
存储器需求
在以下表22中列出示例性存储器规范。第一存储器规范“包下载”指示下载商务小应用包所需的适量非易失性(EEPROM)存储器空间。第二存储器规范“实例”指示实例化商务小应用的新实例所需的存储器量。最后一个存储器规范“暂态数据空间”指示由商务小应用的每个实例使用的易失性(RAM)存储器的量。
表22—小应用存储器需求
存储器 |
字节大小 |
包下载 |
9396 |
实例 |
6260 |
数据管理
可用的商务(例如,忠诚度、优惠、奖励等)数据被存储在载于安全元件112上的商务小应用113内。所有相关的商务数据被存储在三个单独的数据表中。这些数据表格由商务小应用113管理。可在载于手机上的对应商务小程序115内存储/管理额外的商务数据。
在一个实施方案中,本文定义的数据元素具有可变长度。因此,所有元素(包括具有固定长度的那些)将被分配最大长度。因此,所有的长度和字节大小引用应被解译成最大值。
商务数据
商务小应用113管理由所有商务服务应用共享的一些数据字段。这些数据字段被存储在持久的数据变量中。在表23中定义示例性数据元素:消费者ID。也可存储额外的元素,诸如消费者/平台密钥和证书。
表23
忠诚度数据表
商务小应用113也包括实现对所有消费者忠诚度数据的存储/管理的忠诚度数据表。
表24定义被包括在忠诚度数据表中的数据元素(及其在TLV编码期间使用的对应标签值)。
表24—忠诚度数据
数据被存储在面向记录的数据缓冲区中,其中利用忠诚度标识符(“忠诚度ID”)作为用于搜索/检索任务的关键字段。
在示例性实施方案中,根据BER-TLV编码格式需要,TLV数据开销的每个元素数据开销包括(最多)五个字节(2个字节的标签和3个字节的长度)。
在替代实施方案中,可以内部创建索引(或哈希表)以加速忠诚度ID搜索任务。
缓存的商户数据表
商务小应用113也包括实现对与给定商户相关的所有数据的存储/管理的商户缓存的数据表。该特征允许关于给定商户的商务数据被钱包应用114预加载,以便提高性能。
表25定义被包括在缓存的商户数据表中的数据元素(及其在TLV编码期间使用的对应标签值)。
表25—缓存的商户数据
所述数据被存储在面向记录的数据缓冲区中,其中利用商户标识符(“商户ID”)作为用于搜索/检索任务的关键字段。可以内部创建索引(或哈希表)以加速商户ID搜索任务。
在示例性实施方案中,根据BER-TLV编码格式需要,TLV数据开销的每元素数据开销包括(最多)五个字节(2个字节的标签和3个字节的长度)
交易日志
商务小应用113包括用于在商户销售点处的MoCom平台内跟踪使用情况的交易日志。在商务小程序115和安全元件112同步任务期间,该交易日志被传输到商务小程序115以稍后用于与MoCom平台空中下载(“OTA”)同步。
交易日志的实际内容取决于由读取器120在商户销售点处的交易过程中提供的获取商务数据命令数据/参数。由读取器120经由获取商务数据APDU命令发送到商务小应用113的数据有效负载的精确副本被存储在商务交易的记录内。
基于商务数据处理的逻辑结果来确定交易状态。如果在商务小应用113内检测到数据/处理错误,则可将对应的内部错误代码附加到交易日志。
下表定义被包括在交易日志中的数据元素(及其在TLV编码期间使用的对应标签值)。
表26—交易日志数据
所述数据被存储在面向记录的数据缓冲区中。支持可变的获取商务数据命令数据大小。
根据BER-TLV编码格式需要,TLV数据开销的每个元素数据开销包括(最多)五个字节(2个字节的标签和3个字节的长度)。
错误管理
在示例性实施方案中,在两个层次上处理错误检测和管理。第一,对APDU命令的响应包括两个字节的状态字结果值。这些响应由ISO7816-4进行标准化并决定。然而,第二层次的错误处理由商务服务小应用内部管理。第二层次的管理包括响应于APDU命令而对标准0x6909状态字的发布。在该响应之后,客户端可发布第二命令(“获取内部错误代码”)以获得两个字节的内部错误代码。该代码可以被交叉引用到表27。表27提供有关错误发生在小应用内的位置和原因的细节。
具体而言,表27提供由商务小应用支持的获取内部错误代码APDU命令返回的所有可能的内部错误代码的主列表。
表27—内部错误代码
商务服务
以下部分提供经由商务小应用113可获得的APDU命令的详细描述。
APDU命令
与商务小应用113进行的所有通信/数据交换将经由如在ISO7816标准中定义的APDU命令来执行。下文描述额外的限制和数据处理。
命令使用限制
出于安全原因,可用的商务服务命令的子集可被限制于特定的连接模式。在被称为“接触(钱包)”模式的一个实施方案中,在上文表18中定义的所有APDU命令均是可用的。然而,在非接触模式下,允许以下命令:
·获取版本
·获取内部错误代码
·获取响应(剩余数据)
·获取商务数据
如果在非接触模式下发送任何其它APDU命令,则引发异常且将内部错误代码设置为对应的无效命令模式值(0x0102)。
在一个实施方案中,获取商务数据命令仅在钱包应用114打开时才可被成功执行。当钱包应用114被消费者启动或终止时,钱包应用114负责通知钱包配套小应用(WCAp),使得其可执行监控、管理和/或安全功能。WCAp小应用进而经由共享界面通知商务小应用钱包应用状态。在题为“用于在安全元件上保护并管理应用的系统、方法和计算机程序产品(Systems,Methods,and Computer Program ProductsFor Securing And Managing Applications On Secure Elements)”的美国专利申请序列号13/857,400中讨论了WCAp小应用,所述专利申请通过引用全部由此并入本文。
数据有效负载管理
商务小应用113验证所有所需的参数已被包括在数据有效负载中。然而,在大部分情况下,可忽略所有非相关的数据元素,并且命令仍将正常进行。在一个实施方案中,期望长度(Le)值不由商务小应用113验证。它可被假定为零值,从而允许商务小应用113经由响应发送所有可用的数据。
获取版本
获取版本命令用于获取当前加载的商务小应用113的版本信息。将用三个字节(xx.yy.zz)存储所述版本,其中xx=发布版本,yy=主要版本(Wave)号,以及zz=次要版本号。例如,该信息由MoCom平台系统分配,在小应用开发或封装期间被指定,或存储为代码内的静态值并且无法改变。
表28定义对获取版本APDU命令的设置:
表28—内部获取版本
CLA |
INS |
P1 |
P2 |
Lc |
数据 |
Le |
90 |
10 |
00 |
00 |
00 |
<无> |
3 |
在一个实施方案中,没有数据被发送到商务小应用。Lc数据长度是0x00。
版本信息被包含在三个字节的响应内。Le数据长度是0x03。0x00长度也被允许。在表29中定义示例响应数据元素:
表29—响应数据
数据元素 |
字节大小 |
值 |
商务规范版本标签 |
1 |
0xDF12 |
商务规范版本长度 |
1 |
3 |
商务规范版本值 |
3 |
[版本(xx.yy.zz)] |
总计: |
5 |
|
表30定义可被该命令返回的可能的状态字值。
表30—状态码
SW1 |
SW2 |
描述 |
90 |
00 |
命令的成功执行 |
67 |
00 |
错误的数据长度 |
69 |
09 |
内部错误 |
配置小应用
小应用配置命令“配置小应用”允许配置(或更新)消费者相关数据,包括消费者ID和可选地相关安全数据(密钥值和证书)。新的/更新数据值经由命令数据指定。在示例性实施方案中,配置小应用命令可仅用于更新消费者ID。
表31和表32定义对配置小应用APDU命令的设置:
表31—配置小应用
CLA |
INS |
P1 |
P2 |
Lc |
数据 |
Le |
90 |
12 |
00 |
00 |
XX |
TLV编码配置数据 |
00 |
在表31中图示的传入数据由TLV编码配置数据构成。因此,Lc数据长度是可变的。
在一个实施方案,商务小应用113不返回任何数据。Le数据长度是0x00。
表32—命令数据
表33定义可由配置小应用命令返回的可能的状态字值
表33—状态码
SW1 |
SW2 |
描述 |
90 |
00 |
命令的成功执行 |
67 |
00 |
错误的数据长度 |
69 |
09 |
内部错误 |
获取消费者信息
获取消费者信息命令用于获取与令牌拥有者(即,消费者)相关的静态数据的子集。该数据包括以下内容:
消费者标识符
表34定义对获取消费者信息APDU命令的设置:
表34—获取消费者信息
CLA |
INS |
P1 |
P2 |
Lc |
数据 |
Le |
90 |
14 |
00 |
00 |
00 |
<无> |
00 |
没有数据被发送到商务小应用113。例如,Lc数据长度是0x00。特定于可用的消费者数据,由小应用返回的所请求消费者信息的实际长度是可变的。因此,Le数据长度是0x00,从而允许小应用管理可变的长度响应。
响应数据作为TLV格式化数据流被返回。也可返回消费者ID。
表35—响应数据
数据元素 |
字节大小 |
值 |
消费者ID标签 |
1 |
0XDF21 |
消费者ID长度 |
1 |
16 |
消费者ID |
16 |
[消费者ID] |
总计: |
<var> |
|
表36定义可由该命令返回的可能的状态字值。
表36—状态码
SW1 |
SW2 |
描述 |
90 |
00 |
命令的成功执行 |
67 |
00 |
错误的数据长度 |
69 |
09 |
内部错误 |
获取商务数据
获取商务数据命令基于指定商户/忠诚度标识符和支持的优惠类型而提供关于指定商户(或商户集合)的商务信息(例如,忠诚度、优惠和奖励)。该命令提供单个接触点用于将读取器120附接到商户POS系统(例如,POS终端)。
日期/时间戳、商户ID、商店ID、商务协议版本和商务能力字节可作为传入数据的一部分被发送。也可发送额外的忠诚度标识符,以便指定(过滤)请求的忠诚度信息。小应用应在忠诚度数据表(表5)中搜索指定商户/忠诚度程序ID,并检索对应的忠诚度数据。额外的优惠类型代码也可作为传入数据的一部分被发送,以便指定请求的优惠信息的类型。商务小应用113在缓存商户数据表(表25)中搜索指定商户标识符/优惠代码,并检索对应的优惠数据。
需要的参数包括:
·日期/时间戳
·商户ID
·商店ID
·应用版本
一旦传输已被成功完成,则小应用应在记录商务数据请求的交易日志中创建条目。
表37和表38定义对获取商务数据APDU命令的设置:
表37—获取商务数据
CLA |
INS |
P1 |
P2 |
Lc |
数据 |
Le |
90 |
50 |
00 |
00 |
xx |
|
00 |
传入数据由日期/时间戳(用于交易记入)、商户标识符、商店标识符、商户能力字节和额外数据元素的可选集(包括一个或多个额外忠诚度标识符(指示由商户位置支持的忠诚度程序)和额外的优惠代码(指示由商户位置支持的优惠的类型))构成。在一个实施方案中,如果商户不指定商户能力参数,则使用仅支持基于商户的忠诚度和优惠的默认模式。
特定于可变的忠诚度/优惠相关数据,由小应用返回的请求商务数据的实际长度是可变的。因此,Le数据长度是0x00,从而允许小应用管理可变的长度响应。
表38—命令数据
响应数据作为TLV格式化数据流被返回。在单个数据有效负载中返回特定于MoCom平台的消费者标识符和所有相关忠诚度/优惠数据。
消费者ID
以TLV格式发送消费者ID,其中使用标签CONSUMER_ID(0XDF21)发送数据。在一个实施方案中,除非检测到错误,否则应一直返回消费者ID。
忠诚度
在一个实施方案中,忠诚度数据的每个实例应由以下TLV编码数据元素构成:
·忠诚度标识符
·忠诚度账户代码
在该数据流内,第一标签应包含忠诚度标识符标签(T)字节(0xDF41)。长度(L)字节应指定忠诚度标识符的长度。值(V)应包含关于将立即跟随的对应忠诚度数据的L长度的实际忠诚度标识符。
第二标签应包含忠诚度账户代码标签(T)字节(0xdf43)。长度(L)字节应指定链接到先前忠诚度标识符的账户代码数据的总长度。值(V)应包含L长度的实际忠诚度数据。
使用该相同格式将在忠诚度数据表内找到的任何额外忠诚度标识符附加到TLV编码数据有效负载。
优惠
优惠数据的每个实例应由以下TLV编码数据元素构成:
·优惠ID
·优惠代码
在该数据流内,第一标签包含优惠ID标签(T)字节(0xDF51)。长度(L)字节指定优惠ID的长度。值(V)包含关于将立即跟随的对应优惠数据的优惠ID。
第二标签优选地包含优惠代码标签(T)字节值(0xDF53)。长度(L)字节指定优惠类型代码的长度。值(V)包含关于对应优惠ID的优惠代码数据。
使用此相同格式将在优惠数据表内找到的任何额外的优惠标识符附加到TLV编码数据有效负载。在表39中定义示例性响应数据。
表39—响应数据
当总数据长度超过256字节时,商务小应用113管理多个响应包(使用获取响应命令)的传输。表40定义可被获取响应命令返回的可能的状态字值。
表40—状态码
SW1 |
SW2 |
描述 |
90 |
00 |
命令的成功执行 |
61 |
00 |
命令w的成功执行/可经由获取响应获得额外数据 |
67 |
00 |
错误的数据长度 |
69 |
09 |
内部错误 |
交易后数据
交易后数据命令提供一种方法,商户PoS系统或支付终端通过所述方法可返回交易后的数据,包括兑换优惠券、新优惠、电子收据或其它增强的商务数据。
表41和表42定义对交易后数据APDU命令的设置:
表41—交易后数据
CLA |
INS |
P1 |
P2 |
Lc |
数据 |
Le |
90 |
52 |
00 |
00 |
xx |
<TLV编码的交易数据> |
00 |
传入数据由TLV编码配置数据和用于验证目的的平台签名构成。因此,Lc数据长度是可变的。
商务小应用113无需返回数据。Le数据长度是0x00。
表42—命令数据
表43定义可被交易后数据命令返回的可能的状态字值。
表43—状态码
SW1 |
SW2 |
描述 |
90 |
00 |
命令的成功执行 |
67 |
00 |
错误的数据长度 |
69 |
09 |
内部错误 |
获取交易日志
获取交易日志用于获取存储于交易日志中的所有数据。该命令通常由商务小程序用于小程序和安全元件数据同步任务的目的。
表44定义对获取交易日志APDU命令的设置:
表44—获取交易日志
CLA |
INS |
P1 |
P2 |
Lc |
数据 |
Le |
90 |
54 |
00 |
0x |
00 |
<无> |
|
P2值 |
小应用行为 |
0x00 |
正常处理 |
0x01 |
清除交易日志。没有传输数据。 |
0x02 |
获取交易日志状态 |
在一个实施方案中,没有数据被发送到商务小应用。Lc数据长度是0x00。由小应用返回的交易数据的实际长度是可变的,这取决于交易记录的数量和对应的交易日志数据的可变长度。因此,Le数据长度可以是0x00,从而允许商务小应用113管理可变的长度响应。
优选地,响应数据作为TLV格式化数据流被返回。
交易日志响应数据
每个交易日志记录应由嵌入式TLV交易日志标签后面有所有相关数据元素构成。被包括在交易记录中的数据元素是在商户销售点处支持商务的支付终端(NFC读取器)请求的对应获取商务数据命令期间提供的那些数据元素的镜像。使用相同格式将额外的交易日志记录附加到所述数据。表45图示示例性响应数据。
表45—响应数据
在一个实施方案中,当总的数据长度超过256字节时,商务小应用113使用获取响应命令管理多个响应包的传输。
交易日志状态响应数据
当交易日志状态被请求时,商务小应用使用嵌入式TLV数据有效负载内的状态信息进行响应。该数据包括在最后的交易期间发送的可用交易日志记录、忠诚度和优惠记录的数量。这是经由共享界面被提供到WCAp的相同数据有效负载。表46图示示例性响应数据。
表46—响应数据
数据元素 |
字节大小 |
值 |
嵌入式TLV交易状态标签 |
1 |
0xE4 |
嵌入式TLV交易记录长度 |
1 |
0x0C |
交易记录计数标签 |
1 |
0xDB |
交易记录计数长度 |
1 |
0x02 |
交易记录计数值 |
2 |
xx |
最后的交易忠诚度计数标签 |
1 |
0xDC |
最后的交易忠诚度计数长度 |
1 |
0x02 |
最后的交易忠诚度计数值 |
2 |
xx |
最后的交易优惠计数标签 |
1 |
0xDD |
最后的交易优惠计数长度 |
1 |
0x02 |
最后的交易优惠计数值 |
2 |
xx |
总计: |
14 |
|
表47定义可被获取交易日志命令返回的可能的状态字值。
表47—状态码
SW1 |
SW2 |
描述 |
90 |
00 |
命令的成功执行 |
61 |
00 |
命令w的成功执行/可经由获取响应获得额外数据 |
67 |
00 |
错误的数据长度 |
6B |
00 |
错误的P1/P2参数 |
69 |
09 |
内部错误 |
获取内部错误代码
获取内部错误代码命令用于检索由商务服务小应用产生的最后的内部错误代码。该代码提供可与内部错误代码表(表26)交叉引用的值,从而提供对错误的更特定描述。该命令用于更详细的诊断和错误解析。
表48定义对获取内部错误代码APDU命令的设置:
表48—获取内部错误代码
CLA |
INS |
P1 |
P2 |
Lc |
数据 |
Le |
90 |
70 |
00 |
00 |
00 |
<无> |
02 |
在一个实施方案中,没有数据被发送到小应用。Lc数据长度是0x00。错误代码包含在两个字节的响应内。因此,Le数据长度是0x02。
以下表定义可被该命令返回的可能的状态字值。
表49—状态码
忠诚度服务
获取忠诚度数据
在表50和表51中定义的获取忠诚度数据命令用于基于指定的忠诚度标识符来获取存储的忠诚度信息。两个字节的忠诚度标识符可作为传入数据的一部分被发送,以便指定请求的忠诚度信息。商务小应用113在忠诚度数据表中搜索指定商户/忠诚度ID,并且检索所有对应的忠诚度数据。
表50—获取忠诚度数据
CLA |
INS |
P1 |
P2 |
Lc |
数据 |
Le |
90 |
30 |
00 |
00 |
xx |
[TLV编码的忠诚度ID] |
00 |
(可选的)传入数据应由指示请求的忠诚度信息的TLV编码忠诚度标识符构成。如果Lc被设为0x00(不指定任何数据为传入数据),则返回所有可用的忠诚度标识符。
特定于请求的/可用忠诚度数据,由小应用返回的请求忠诚度数据的实际长度是可变的。因此,Le数据长度是0x00,从而允许小应用管理可变的长度响应。
表51—命令数据
数据元素 |
字节大小 |
值 |
忠诚度标识符标签 |
1 |
0xDF41 |
忠诚度标识符长度 |
1 |
8 |
忠诚度标识符 |
8 |
[忠诚度ID] |
总计: |
<var> |
|
响应数据(表51)作为TLV格式化的数据流被返回。在单个数据有效负载中返回所有相关的忠诚度数据。
在一个实施方案中,如果忠诚度数据转储被请求(Lc=0x00),则以LV(没有标签)格式返回所有忠诚度标识符的列表。因此,仅每一条目的忠诚度标识符被包括在数据有效负载中。
忠诚度数据的每个实例包括以下数据元素:
·忠诚度标识符
·忠诚度账户代码
表52—响应数据
数据元素 |
字节大小 |
值 |
忠诚度标识符标签 |
1 |
0xDF41 |
标识符长度 |
1 |
8 |
忠诚度标识符 |
8 |
[忠诚度ID] |
忠诚度账户代码标签 |
1 |
0xDF43 |
账户代码长度 |
1 |
xx |
忠诚度账户代码 |
xx |
[账户代码] |
总计(最大): |
<var> |
|
表53定义可被该命令返回的可能的状态字值。
表53—状态码
SW1 |
SW2 |
描述 |
90 |
00 |
命令的成功执行 |
61 |
00 |
命令w的成功执行/可经由获取响应获得的额外数据 |
67 |
00 |
错误的数据长度 |
69 |
09 |
内部错误 |
更新忠诚度数据
更新忠诚度数据命令用于添加或更新指定的商户忠诚度数据。所述数据作为TLV格式化的数据流被发送。如果指定的忠诚度标识符存在,则对应的忠诚度数据元素被更新。如果忠诚度标识符不存在,则在忠诚度数据表中创建新的数据记录。表54和表55定义对更新忠诚度数据APDU命令的设置:
表54—更新忠诚度数据
CLA |
INS |
P1 |
P2 |
Lc |
数据 |
Le |
90 |
32 |
00 |
00 |
xx |
TLV编码的忠诚度数据 |
00 |
传入数据应由TLV编码忠诚度数据构成。因此,Lc数据长度是可变的。在一个实施方案中,小应用不返回任何数据。Le数据长度是0x00。
表55—命令数据
数据元素 |
字节大小 |
值 |
忠诚度标识符标签 |
1 |
0xDF41 |
标识符长度 |
1 |
8 |
忠诚度标识符 |
8 |
[忠诚度ID] |
忠诚度账户代码标签 |
1 |
0xDF43 |
账户代码长度 |
1 |
xx |
忠诚度账户代码 |
Xx |
[账户代码] |
总计: |
<var> |
|
表56定义可被该命令返回的可能的状态字值。
表56—状态码
SW1 |
SW2 |
描述 |
90 |
00 |
命令的成功执行 |
67 |
00 |
错误的数据长度 |
69 |
09 |
内部错误 |
删除忠诚度数据
删除忠诚度数据命令用于删除指定的商户忠诚度数据。经由所述命令数据指定一个字节的商户代码。替代地,P2字节可用于清除所有现有优惠。如果P2被设为0xFF,则删除全部优惠数据存储。
表57和表58定义对删除忠诚度数据APDU命令的设置:
表57—删除忠诚度数据
CLA |
INS |
P1 |
P2 |
Lc |
数据 |
Le |
90 |
34 |
00 |
xx |
xx |
TLV编码的忠诚度ID |
00 |
传入数据由TLV编码的忠诚度标识符。因此,Lc数据长度是可变的。
在一个实施方案中,商务小应用113不返回任何数据。Le数据长度是0x00。
表58—命令数据
数据元素 |
字节大小 |
值 |
忠诚度标识符标签 |
1 |
0xDF41 |
忠诚度标识符长度 |
1 |
xx |
忠诚度标识符 |
Xx |
[忠诚度ID] |
总计: |
<var> |
|
表59定义可被删除忠诚度数据命令返回的可能的状态字值。
表59—状态码
SW1 |
SW2 |
描述 |
90 |
00 |
命令的成功执行 |
67 |
00 |
错误的数据长度 |
69 |
09 |
内部错误 |
商户缓存的数据服务
获取缓存的商户数据
获取缓存的商户数据命令用于获取关于特定商户的所有先前加载的数据。商户标识符可作为传入数据的一部分被发送,以便指定请求的预加载数据。如果被提供,商务小应用在缓存商户数据表中搜索指定的商户ID,并且检索所有对应的数据。该命令也可用于获取关于在商务服务小应用内存储的所有缓存商户的信息。
表60定义对获取缓存的商户数据APDU命令的设置:
表60—获取缓存的商户数据
CLA |
INS |
P1 |
P2 |
Lc |
数据 |
Le |
90 |
56 |
00 |
00 |
xx |
<无> |
00 |
在一个实施方案中,没有数据被发送到小应用。Lc数据长度是0x00。特定于请求/可用的缓存商户数据,由小应用返回的请求的缓存商户数据的实际长度是可变的。因此,Le数据长度是0x00,从而允许小应用管理可变的长度响应。
响应数据(表61)可作为TLV格式化的数据流被返回。在单个数据有效负载中返回所有缓存的数据。缓存的商户数据中的每个实例包括以下对应的缓存商户数据元素(如果可用):
·商户标识符
·忠诚度标识符
·忠诚度账户代码
·优惠标识符
·优惠代码
表61—响应数据
在示例性实施方案中,缓存的商户数据将被钱包应用加载/管理,并且可包括与该特定商户相关的多个优惠ID/代码。然而,小应用应将消费者标识符前置于响应数据,并且附加由获取商务数据命令请求的任何额外忠诚度/优惠数据。
表62定义可被该命令返回的可能的状态字值。
表62—状态码
SW1 |
SW2 |
描述 |
90 |
00 |
命令的成功执行 |
67 |
00 |
错误的数据长度 |
69 |
09 |
内部错误 |
更新缓存的商户数据
更新缓存的商户数据命令用于更新关于指定商户的缓存(快速响应)数据。所述数据作为TLV格式化数据流被发送,与由获取商务数据命令返回的数据相类似。该命令用于预加载给定商户的获取商务数据响应。
表63和表64定义对更新缓存的商户数据APDU命令的设置:
表63—更新缓存的商户数据
CLA |
INS |
P1 |
P2 |
Lc |
数据 |
Le |
90 |
58 |
00 |
0x |
xx |
TLV编码的缓存商户数据] |
02 |
P2值 小应用行为
0x00 正常处理
0x01 APDU链(数据将被附加到CMD缓冲区)
0Xff 删除缓存的商户数据[Lc=0]
传入数据由嵌入式TLV编码的缓存商户数据构成。因此,Lc数据长度是可变的。
商务小应用返回含有在缓存商户数据缓存区中剩余的可用字节的数目的两字节响应。因此,Le数据长度是0x02(或0x00)。
表64—命令数据
由命令返回的响应数据(表65)由表示在缓存的商户数据缓冲区中可用的剩余字节的数量的2字节(短)值构成。这允许钱包应用114管理有多少缓存优惠可“配合”到商务服务小应用。
表65—响应数据
数据元素 |
字节大小 |
值 |
可用的缓存商户数据缓冲区(字节)大小 |
2 |
xx |
总计: |
2 |
|
表66定义可被该命令返回的可能的状态字值。
表66—状态码
SW1 |
SW2 |
描述 |
90 |
00 |
命令的成功执行 |
67 |
00 |
错误的数据长度 |
69 |
09 |
内部错误 |
表67根据本文描述的示例方面来定义由基于商务的应用使用的数据元素和对应标签值以及目标/最大字节大小。额外值已被提供用于具有限制的/固定的值范围的那些元素。
表67
特殊格式化的数据元素
被包括在商务数据有效负载中的一些数据元素包括识别用于所述元素的数据编码的格式字节。数据编码由商户指定,以确保在销售点的兼容性。格式化的数据值由MoCom平台供应到钱包应用。因此,在平台、钱包、安全元件和支付终端之间不需要任何额外的解译/格式化。支付终端(或商户POS系统)的作用是正确地解译数据,并将其提供到商户系统以进行处理。
以下数据元素应包括格式字节:
·忠诚度账户代码
·优惠代码
表68定义可能的格式字节值及其对应的编码规则:
表68
在第一个半字节中包括十六进制值‘F’的BCD编码数据值应识别含有奇数数位的数据流。因此,BCD数据流12345在三个字节的缓冲区中被编码如下:0xF12345。
计算机可读介质实施方式
上文描述的示例实施方案(诸如,例如结合图1-7中描绘或讨论的系统和程序或其任何部分或功能)可使用硬件、软件或两者的组合来实施。可在一个或多个计算机或其它处理系统中实施。虽然可能已经在通常与人类操作员执行的脑力操作相关的方面参考由这些示例实施方案执行的操作,但是人类操作员无需执行本文所述的任何操作。换句话说,可在机器操作下完全实施操作。用于执行本文所呈现的示例实施方案的操作的有用机器包括通用数字计算机或类似设备。
图8是根据本发明的一些示例实施方案的通用和/或专用计算机800的框图。计算机800可以例如尤其是用户设备、用户计算机、客户端计算机和/或服务器计算机。
计算机800可以包括但不限于处理器设备810、主存储器825、和互连总线805。处理器设备810可以包括但不限于单个微处理器,或可以包括多个微处理器以将计算机800配置为多处理器系统。主存储器825尤其存储由处理器设备810执行的指令和/或数据。主存储器625可以包括动态随机存取存储器(DRAM)库以及高速缓冲存储器。
计算机800还可包括大容量存储设备830、外围设备840、便携式存储介质设备850、输入控制设备880、图形子系统860和/或输出显示器870。为了说明的目的,图8中示出经由总线805耦合的计算机800中的所有组件。然而,计算机800不因此受限。计算机800的设备可以经由一个或多个数据传输装置耦合。例如,处理器设备810和/或主存储器825可以经由本地微处理器总线耦合。大容量存储设备830、外围设备840、便携式存储介质设备850和/或图形子系统860可以经由一个或多个输入/输出(I/O)总线耦合。大容量存储设备830可以是用于存储由处理器设备810使用的数据和/或指令的非易失性存储设备。大容量存储设备830可以例如利用磁盘驱动或光盘驱动予以实施。在软件实施方案中,大容量存储设备830配置用于将大容量存储设备830的内容加载到主存储器825。
便携式存储介质设备850结合非易失性便携式存储介质操作,诸如例如光盘只读存储器(CD-ROM),以往返于计算机800输入和输出数据和代码。在一些实施方案中,用于在元数据中存储内部标识符的软件可以存储在便携式存储介质上,并且可以经由便携式存储介质设备850被输入到计算机800中。外围设备840可包括任何类型的计算机支持设备,诸如例如被配置来将附加功能添加到计算机800的输入/输出(I/O)接口。例如,外围设备840可包括用于介接计算机800与网络820的网络接口卡。
输入控制设备880提供用于计算机800的用户的用户界面的一部分。输入控制设备880可以包括键盘和/或光标控制设备。键盘可以被配置来输入字母数字字符和/或其它密钥信息。光标控制设备可以包括例如鼠标、跟踪球、触笔和/或光标方向键。为了显示文本和图形信息,计算机800可以包括图形子系统860和输出显示器870。输出显示器870可包括阴极射线管(CRT)显示器和/或液晶显示器(LCD)。图形子系统860接收文本和图形信息,并处理该信息以输出到输出显示器870。
计算机800的每个组件可以表示通用和/或专用计算机的宽泛分类的计算机组件。计算机800的组件不限于此处提供的具体实施方式。
如计算机领域的技术人员将明白,可通过使用根据本公开的教导编程的常规通用计算机、专用数字计算机和/或微处理器方便地实施本发明的示例实施方案的部分。熟练编程员可容易基于本公开的教导准备适当的软件编码。
一些实施方案也可以通过准备专用集成电路、现场可编程门阵列或通过互连常规组件电路的适当网络而实施。
一些实施方案包括计算机程序产品。计算机程序产品可以是具有存储在其上或其中的指令的一个或多个存储介质,所述指令可用于控制或促使计算机执行本发明的示例实施方案的任何程序。存储介质可包括但不限于软盘、小型软盘、光盘、蓝光光盘、DVD、CD-ROM、微驱动器、磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存、闪存卡、磁卡、光学卡、纳米系统、分子存储器集成电路、RAID、远程数据存储/存档/入库和/或适于存储指令和/或数据的任何其它类型的设备。
一些实施方式包括存储在一个或多个计算机可读介质中用于控制通用和/或专用计算机或微处理器的硬件两者的软件,以及用于使得计算机或微处理器与人类用户或利用本发明的示例实施方案的结果的其它机构交互的软件。这些软件可包括但不限于设备驱动器、操作系统和用户应用。最后,这些计算机可读介质还包括用于执行如上所述本发明的实例方面的软件。
软件模块包括在通用和/或专用计算机或微处理器的编程和/或软件中以实施上述程序。
虽然上文已经描述本发明的各个示例实施方案,但是应了解,已经举例呈现这些示例实施方案,且无所限制。所属领域技术人员应明白可在其中进行形式和细节的各种变化。因此,本发明不应受限于任何上述示例实施方案,而是应仅根据以下权利要求及其等效物予以定义。
此外,应了解,图示仅出于举例目的而呈现。本文所呈现的示例实施方案的架构足够灵活和可配置,使得可以与附图所示不同的方式利用和操纵所述架构。
此外,摘要的目的是使得美国专利商标局和大众且尤其是所属领域中对专利或法律术语或措辞不熟悉的科学家、工程师和从业者经由粗略检视而快速确定本申请的技术公开的特性和本质。摘要无意以任何方式限制为本文呈现的示例实施方案的范围。也应了解,权利要求中所述的程序无需以所呈现的顺序执行。