转载请注明出处

作者:小旭

借贷记和Qpboc在应用初始化和读应用数据方面的流程还是比较相似。

先看借贷记和电子现金的处理流程

应用选择完成后,终端获取到了PDOL数据(特别说明:这个不是必须的,卡片也可以不给终端提供PDOL,如果终端没有获取到PDOL,则GPO数据域直接传递8300,这个在L2测试中会有案例;如果卡片不提供PDOL的话,后续这张卡是不能做电子现金和Q的交易,但是至于为什么会存在这种卡,是处于什么样的目的,我之前有咨询过卡商,也没有得到一个比较合理的解释,如果有比较清楚这一点的,还希望留言回复,多谢了),比如之前的log日志中,TAG 9F38的内容是

9F 38 09 9F 7A 01 9F 02 06 5F 2A 02 5F 2D 02

这里面可以看到PDOL的内容

9F 7A 01 9F 02 06 5F 2A 02 5F 2D 02

这里包含了4个tag,这四个tag的数据就是作为GPO指令数据域传送给卡片。
GPO指令具体格式不再讨论了,文档讲的比较清楚,我也是看文档过来的,这里分别举一个例子,作为讨论素材。

数据借贷记、电子现金交易GPO返回有两个数据,AIP和AFL。

借贷记、电子现金GPO范例:

send:17
80 A8 00 00 0B 83 09 01 00 00 00 00 00 05 01 56
00
rec:23
80 12 7C 00 08 01 02 00 10 01 03 01 18 01 02
00 20 01 01 00 90 00 

发送指令中标签83后面就是GPO的数据,这个数据来源就是根据PDOL获取。

接受返回数据中7C00为AIP,后续16个字节为AFL,AFL如何分析,文档上也描述的比较清楚。

终端根据AFL的情况,循环读记录文件,并且将记录文件中获取到的数据进行保存。

还有一个特殊的地方,GPO时候返回80+AIP+AFL并不是唯一的,还有可能返回77的tlv格式(根据文档加个人理解,应该是在支持CDA的时候,会存在这种情况),这个时候需要去用tlv的方式去解析tag,AIPtag为82,AFL的为94,最总解析出来的效果是一样的。

特别说明:pboc2.0和3.0规范在处理AFL的时候有所不同,下面把不同点列出来讨论一下(来自China's Financial IC群的讨论分析)。

第一个修改点:

2.0当中如果读记录读到了终端不存在的tag(也就是一般终端可能未定义这样的tag列表,读记录的时候读到某个tag,但是终端不知道是什么数据)将其忽略。

3.0修改这个点为,如果读到不存在的tag并且TLV格式正确,需要将其保存起来以备后用。

第二个修改点:

2.0有一个终止交易的条件:一个数据对象在读记录中出现超过一次,则交易终止。

3.0修改为:一个数据对象在读记录中出现两次或两次以上时,则终止交易。

第三个修改点:

3.0增加了一种终止交易的情况:如果一个读记录中获取到一个GPO已经返回的数据,则交易终止。

这个情况我个人理解为:应该只会在Qpboc流程中出现,因为借贷记和电子现金流程,GPO只有AFL和AIP,这两个数据对象也不可能在读记录中返回。

这几个点的改动,将会导致emv内核有一些修改。
Q 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 

发送的数据域也是根据PDOL来填充的。
为了提高交互速度,减少终端与卡片交互次数,为此提高了单次交互的数据量,所以Q的GPO返回的数据量比较大,除了AIP和AFL之外,还有应用密文,交易计数器,发卡行应用数据,二磁道数据等多个数据。

QPBOC联机和QPBOC脱机的GPO响应数据有比较大的区别(3.0规范12中的表11和表12有非常清晰的描述)。对于GPO返回数据的处理,后续在脱机数据认证的时候再做讨论了。

因为借贷记电子现金和Q在GPO之处有很大的差异,就导致了他们两类交易从GPO之后开始(读应用数据除外)的流程有了很大的变化。

PBOC3.0在持卡人姓名一个5F20和9F0B的处理做了一些改动。原来的9F0B是对5F20在长度不足的情况下做一个补充。现在直接根绝持卡人姓名的长度,选择使用9F0B或者5F20.

EMV技术学习和研究(三)应用初始化读应用数据相关推荐

  1. EMV规范学习与研究(四)——读应用数据

    读应用数据的目的是为了从卡片中获取后续交易需要的数据,用以完成交易中的各种功能. 终端使用读记录命令(READ RECORD)读出在应用文件定位器(AFL)中标记的文件与记录,并在读记录命令中使用SF ...

  2. EMV技术学习和研究

    今天在工作中碰到一些问题,就找到了这篇文章,个人感觉很好,保存下来,以供随时学习. 转载地址:EMV技术学习和研究 作者:小旭 目的: 应用选择主要目的就是在卡片插入终端的时候,由终端来选择哪些应用是 ...

  3. EMV技术学习和研究(一)开篇

    在这个行业也3年多了,一直想写写关于EMV和PBOC的内容,但是总觉得自己懂得还不够,对EMV和PBOC的理解还不够深入. 但是后来想想,如果还不开始自己写一点东西的话,可能这个事情也就永远的搁浅了, ...

  4. EMV技术学习和研究(七)持卡人验证

    转载请注明出处 作者:小旭 持卡人认证部分,EMV和PBOC是有区别的,EMV有脱机加密PIN认证,PBOC没有:PBOC有持卡人身份证件验证,但是EMV没有. 持卡人验证主要基于两个数据要素,AIP ...

  5. EMV技术学习和研究(九)终端行为分析

    转载请注明出处 作者:小旭 这一块的内容,我觉得文档上讲的比较清晰,而且举例也很好,所以大部分都是拷贝文档的内容过来,一边看一边分析文档的含义. 这一部分用到2类比较重要的数据,分别是 发卡行行为代码 ...

  6. EMV技术学习和研究(五)脱机数据认证之DDA

    转载请注明出处 作者:小旭 有了前面对SDA的熟悉,接下来再研究DDA就会感觉比较轻松一点了. 用于动态数据认证的数据和SDA部分所描述的一样,也是基于SFI的来组织的. 特别说明一下:之前有一个地方 ...

  7. EMV技术学习和研究(十二)交易限额

    转载请注明出处 作者:小旭 EMV参数里面有几个限额,但是感觉这几个限额都比较容易混淆和模糊,下面一个一个的来讨论一下. 终端最低限额(9F1B).终端电子现金交易限额(9F7B).非解最低限额(DF ...

  8. EMV技术学习和研究(二)应用选择

    转载请注明出处 作者:小旭 目的: 应用选择主要目的就是在卡片插入终端的时候,由终端来选择哪些应用是由终端和卡片共同支持的.终端的AID列表是通过AID下载交易从服务端获取,卡片的AID是在做卡片个人 ...

  9. EMV技术学习和研究(十一)QPBOC

    转载请注明出处 作者:小旭 Q在选择完应用之后,是有一步交易预处理,交易预处理是对交易限额的处理,在交易开始之前首先对交易金额做出计算和判断.有点类似于借贷记交易中终端风险管理中所完成的步骤.关于交易 ...

最新文章

  1. Python文本预处理:步骤、使用工具及示例
  2. Python使用matplotlib可视化小提琴图、seaborn中的violinplot函数可视化多分类变量的小提琴图(Violin Plot)
  3. OK,让我们开始吧!
  4. yii2 java_YII2 自定义日志路径
  5. mysql数据库入门教程(8):数据的基本类型
  6. 懂AI值百万年薪?你不知道的开发者薪资榜单大盘点
  7. mysql导入创建表空间_oracle创建表空间 导入数据库
  8. beautifulsoup获取属性_Python爬虫常用模块:BeautifulSoup
  9. dhtmlxTree 10分钟做一个树
  10. BZOJ 1303: [CQOI2009]中位数图【前缀和】
  11. persistence java_Java数据持久层 - Persistence Manager Factory
  12. eclipse中如何修改编码格式
  13. python字典数据类型笔记_python笔记--数据类型--字典
  14. #include《》和#include“”的区别
  15. Unity UGUI-Canvas
  16. 网易互娱9.05笔试
  17. PS 2019 Mac版 自学入门系列(十一)—— 创建光照效果
  18. 苹果手机上钉钉云盘在哪里?
  19. 目前工资最高的几家外包公司汇总!(2023最新版)
  20. csv(逗号分隔值)文件用Excel编辑

热门文章

  1. 《实用C++》第10课:if 语句实现关系运算
  2. 城市C友会【官方牵头更多的线下交流的机会,你有怎样的期待?】
  3. 华为防火墙ftp_华为防火墙如何配置ftp服务器映射到外网
  4. mac 版 Goland 使用教程一
  5. stm32时钟问题简单介绍
  6. SMO组织的现状与发展
  7. Ant Mobile使用整理
  8. sql盲注二分法注入脚本
  9. stm32毕业设计 单片机遥控小车
  10. 初识 CGI,CGI 简识