扩展应用主要应用于小额支付的一些特定支付场景,目前包括分段扣费和脱机预授权消费(仅支持小额检查)两种应用模式,未来会根据实际业务发展的需要对新的应用模式或类型进行补充。适用于开展快速借记/贷记非接触式支付应用(qPBOC)的地区、成员机构以及商户。
随着金融IC卡应用的不断推广,越来越多的行业开始逐步受理金融IC卡。安全、快速、脱机支付的特点也越来越受到市场的青睐。由于相关行业的特殊性,对脱机小额快速支付应用提出了新的需求:在分时、分段计费的方式下,持卡人预先并不知道本次消费的金额,随着消费动作结束时,根据环境参数计算出消费金额,再进行扣款。典型的应用场景是地铁、高速公路(分段计费)和停车咪表(分时计费)。
标准的非接触式快速支付应用已经不能满足这些行业提出的新需求,需要对原有流程进行调整和扩展,以适应这些应用场景的特点。在原来的标准qPBOC交易流程的基础上,在GPO命令处理和READ RECORD命令处理之间,增加了更新复合消费交易应用数据的UPDATE CAPP DATA CACHE命令。
GPO命令的扣款和UPDATE CAPP DATA CACHE命令的更新必须确保统一执行,在READ RECORD命令成功读取AFL中的最后一条记录时统一进行更新。终端需检查所有相关数据的有效性和合法性,并进行脱机数据认证,即fDDA验证。
1. 文件结构
支持基于非接触小额支付的复合交易的PBOC借贷记应用,采用EMV卡片个人化规范(CPS)和PBOC 2.0借记/贷记应用个人化指南的个人化方法。
对于仅支持复合消费应用的卡片,发卡行在个人化数据时应在SELECT AID返回的文件控制信息(FCI)中的发卡行自定义数据(BF0C)中写入复合应用标识(DF61)=0x01。对于仅支持复合消费应用的卡片,在开通过程中,终端向扩展应用专用文件添加记录时应将扩展应用标识置为1。
个人化用于非接触界面的PDOL时,需要包含CAPP交易指示位。在非接触界面下,若卡片返回的PDOL中出现CAPP交易指示位,则表明卡片支持基于非接触小额支付的扩展消费交易。若终端也支持扩展消费交易,则在GPO命令中提供CAPP交易指示位,并置相应数值;若终端不支持扩展消费交易,则将置0后的CAPP交易指示位通过GPO命令提供给卡片。
发卡行在个人化时预先创建扩展应用文件,写入初始密钥。在使用前,由持卡人在行业的设备上进行开通,即行业创建对应文件的记录,并将行业读写密钥写入记录中。
对于循环记录文件,文件由发卡行个人化时预先创建,如果行业有使用循环记录文件的需求,则可以在持卡人开通业务时,通过APPEND RECORD命令新增一条记录,以后通过UPDATE CAPP DATA CACHE来更新文件中的记录。该文件对应一条行业密钥。
根据目前几种常见的复合应用交易的实际应用需求,结合PBOC规范中的应用实现模式,对复合应用短文件标识符(SFI)以及复合应用开通密钥,做出如下推荐定义:
复合应用类型 |
复合应用文件SFI |
开通密钥 |
普通地铁应用 |
0x15 |
预设 |
普通公交应用 |
0x16 |
预设 |
高速公路不停车收费 |
0x17 |
预设 |
停车收费咪表应用(内部余额) |
0x18 |
预设 |
铁路(高铁)应用(内部余额) |
0x19 |
预设 |
普通公交日票/月票应用 |
0x1A |
预设 |
普通地铁日票/月票应用 |
0x1B |
预设 |
其他扩展应用(内部余额) |
0x1C |
预设 |
建立扩展应用指令如下: //append capp record 00A4040008A000000333010101 80CA9F3605(ATC+9000) ATC=COPY(ATC,7,4) ATC=000000000000+ATC KEYDATA=[8020] CAPPK1=COPY(KEYDATA,1,32) CAPPK2=LAST(KEYDATA,32) //写入0x16记录 ECB_3DES_EN(00000000000000000000000000000000,CAPPK1,KEY2) HMD=04E200B047+KEY2 EMD=000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 3DES_MAC(ATC+HMD+000130+EMD+8000000000000000,CAPPK1,MAC) HMD+000130+EMD+MAC 3DES_MAC(ATC+HMD+000230+EMD+8000000000000000,CAPPK1,MAC) HMD+000230+EMD+MAC //append 0x1A ECB_3DES_EN(00000000000000000000000000000000,CAPPK2,KEY2) HMD=04E200D053+KEY2 EMD=000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 3DES_MAC(ATC+HMD+00013C+EMD+80000000,CAPPK2,MAC) HMD+00013C+EMD+MAC 3DES_MAC(ATC+HMD+00023C+EMD+80000000,CAPPK2,MAC) HMD+00023C+EMD+MAC
2. 专用指令
Ø READ CAPP DATA(读取复合应用数据)
Ø UPDATE CAPP DATA CACHE(更新数据缓存)
Ø APPEND RECORD(新增记录)
Ø GET TRANS PROVE(取脱机交易应用密文)
文/闫鑫原创 转载请注明出处http://blog.csdn.net/yxstars/article/details/38229055