转载请注明出处
作者:小旭
Q在选择完应用之后,是有一步交易预处理,交易预处理是对交易限额的处理,在交易开始之前首先对交易金额做出计算和判断。有点类似于借贷记交易中终端风险管理中所完成的步骤。关于交易限额,后面再写一篇专门讨论。
之前在GPO和读记录一篇中已经讨论过QPBOC对于GPO的处理,但是QPBOC的GPO有很多信息量,所以再把GPO的内容拿出来讨论讨论。读记录之后QPBOC的处理也有很大变化,所以现在专门讨论一下QPBOC的处理,凡是我能想到的地方,都会和借贷记的对比,主要也是为了加深印象。
现在还是把之前那个GPO的例子拿出来。
send:41
80 A8 00 00 23 83 21 B6 00 00 00 00 00 00 00 10
00 00 00 00 00 00 00 01 56 00 00 00 00 00 01 56
11 03 30 00 E5 19 21 7B 00
rec:82
77 4E 82 02 7C 00 94 0C 10 05 08 01 18 01 02 00
48 01 01 00 9F 36 02 06 A1 9F 26 08 C9 67 B7 1D
1C EA 1F FD 9F 10 0F 07 02 01 03 90 00 00 01 06
01 00 00 02 00 00 57 13 62 17 99 55 10 00 00 11
29 5D 49 12 22 04 41 06 00 00 0F 9F 6C 02 20 00
90 00
返回数据位77开头的模板,是TLV格式数据,需要对数据域做解析,这个GPO数据比较多,我就附带把每个tag都解析一下了。
其中如果GPO未返回82,9F36,9F26,9F10、57,这几个数据中的任何一个不存在或者缺失,则认为QPBOC处理失败,提示持卡人采用其他方式处理。
如果AFL不存在的话,终端只能进行联机交易,不允许执行脱机交易。
其中9F10发卡行应用数据的4 5 6 7四个字节为CVR,是卡片验证结果,和终端的TVR如出一辙。这个CVR非常关键。
我顺便也把CVR也解析一下方便说明(03 90 00 00)
90 --- 1 0 0 1 0 0 0 0
//----bit 7 - 6 = 1 0 不请求第二个GENERATE AC
//----bit 5 - 4 = 0 1 第一个GENERATE AC返回TC
//----bit 3 = 0 1=发卡行认证执行但失败
//----bit 2 = 0 1=脱机PIN执行
//----bit 1 = 0 1=脱机PIN认证失败
//----bit 0 = 0 1=不能联机
所以这个90表明,当前不需要第二次GAC,并且这一次返回的应用密文就是TC,也就是说9F26应用密文是TC。
和借贷记一下,GPO之后就是读记录,读记录部分之前也介绍过了。
读记录之后是持卡人认证,QPBOC的持卡人认证和借贷记电子现金不同,QPBOC的持卡人认证结果只有三种情况:签名,联机。
持卡人验证主要基于两个数据:
通过对这两个数据域的位进行判断,进而决定最终采用持卡人验证的方式。比如,终端支持联机或者签名,再判断卡片是要求联机或者签名,最终选择联机或者签名。
QPBOC的持卡人验证,真的是非常easy了。
然后就是进行处理限制,QPBOC的处理限制只做一件事,就是判断卡有效期,相当于借贷记流程中的一个小步骤。
然后就是脱机数据认证,因为卡片不会再和终端有指令交互,所以数据认证使用的QPBOC自己定义的一种FDDA。FDDA的执行同样需要根据AIP的情况作出判断。FDDA签名的动态数据通过9F4B在读记录时返回,借贷记是通过内部认证获取到的。这个动态数据的获得,也是区分FDDA版本为01还是00.所以缺少了DDA的内部认证指令,所以叫做FDDA。而用来参于组织签名数据的是通过一个固定数据域组织的,借贷记是通过DDOL获取的。
特别说明:PB0C3.新增了一个9F69的标签,需要在版本01的FDDA中加入到签名数据域。
完成上面的步骤后,一个脱机的Q就完成了,联机Q和借贷记联机交易类似,除了上送55域有些TAG值不一样,其他的原理都是一样的。而且Q的联机交易,应该是没有后续脚本处理和第二次GAC的。联机交易发起后,卡片是可以拿开的。
通过上面也可以看得出,Q在读记录之后再也没有和卡片做任何指令交互,那这就存在一个问题。读记录以后,卡片操作已经结束,那读记录之后,卡片的余额已经修改了,但是如果终端的FDDA失败呢?这就会存在一个扣钱不打单的情况,这种情况也经常遇到,这就是PBOC2.0的一个bug。
银联也提出了针对Q的闪卡方案,该方案主要也是针对在交易过程中卡片拿走时交易并未完成,再将卡放回来交易流程可以继续进行。
后续再写一篇针对Q和电子现金等几个限额的描述,Q在终端的部分应该就算是讨论完了。
但是如果想对Q有深入研究的,还要理解一下卡片在Q过程中的的风险管理,这个步骤是卡片来完成的,终端不参与,但是对交易的影响还是比较大的。