The data field of the response message contains the FCI specific to the selected PSE, DDF, or ADF.

一)Select PSE命令,卡片响应的数据结构如下:

一般可以这么理解,Select PSE相当于选择目录,响应数据则表示选择的这个目录的概要信息;

响应数据必须包含SFI,然后通过ReadRecord命令(传入SPI)来读取这个目录的详细信息;

例如:

选择PSE的命令:

00 A4 04 00 0E 31 50 41 59 2E 53 59 53 2E 44 44 
46 30 31 00

卡片响应:

6F 24 84 0E 31 50 41 59 2E 53 59 53 2E 44 44 46 
30 31 A5 12 88 01 01 5F 2D 08 7A 68 65 6E 66 72 
64 65 9F 11 01 01 90 00

解释以上卡片响应数据,得到6F模板:

[6F] 
84 0E 31 50 41 59 2E 53 59 53 2E 44 44 46 30 31 
A5 12 88 01 01 5F 2D 08 7A 68 65 6E 66 72 64 65 
9F 11 01 01

解释[6F]模板,得到[84]和[A5]模板:

[84] 
31 50 41 59 2E 53 59 53 2E 44 44 46 30 31 
[A5] 
88 01 01 5F 2D 08 7A 68 65 6E 66 72 64 65 9F 11 
01 01

解释[A5]模板,得到各个数据域:

[88] 
01 
[5F2D] 
7A 68 65 6E 66 72 64 65 
[9F11] 
01

由此,我们可以的到[88]数据域(SFI),然后再通过Read Record命令,读取Payment System Directory目录的详细信息;

Read Record命令返回的数据结构如下:

例如:

Read Record命令:

00 B2 01 0C 00

卡片的响应:

70 5D 61 18 4F 07 A0 00 00 00 03 10 10 50 0A 56
49 53 41 43 52 45 44 49 54 87 01 81 61 26 4F 07

A0 00 00 03 33 01 01 50 0B 50 42 4F 43 20 43 72

65 64 69 74 87 01 82 9F 12 0A 50 42 4F 43 20 44

45 42 49 54 61 19 4F 08 A0 00 00 03 33 01 01 03

50 0A 50 42 4F 43 43 52 45 44 49 54 87 01 03 90

00

解释以上响应数据,我们可以得到三个[61]模板:

[61]
4F 07 A0 00 00 00 03 10 10 50 0A 56 49 53 41 43

52 45 44 49 54 87 01 81

[61]
4F 07 A0 00 00 03 33 01 01 50 0B 50 42 4F 43 20

43 72 65 64 69 74 87 01 82 9F 12 0A 50 42 4F 43

20 44 45 42 49 54

[61]
4F 08 A0 00 00 03 33 01 01 03 50 0A 50 42 4F 43

43 52 45 44 49 54 87 01 03

其中,每一个[61]模板为一个Directory Entry(ADF);

ADF的数据结构如下:

例如,我们解释上面的第2个[61]模板:

[61] 
4F 07 A0 00 00 03 33 01 01 50 0B 50 42 4F 43 20 
43 72 65 64 69 74 87 01 82 9F 12 0A 50 42 4F 43 
20 44 45 42 49 54

最后可以得到ADF Name、Application Label、Application Preferred Name、API数据域如下:

[4F] 
A0 00 00 03 33 01 01

[50]

50 42 4F 43 20 43 72 65 64 69 74

[87]

82

[9F12]

50 42 4F 43 20 44 45 42 49 54

 二)Select DDF,卡片响应的数据结构如下:

三)Select ADF,卡片响应的数据结构如下:

【EMV L2】Select PSE应用选择相关的卡片数据格式的更多相关文章

  1. CSS自定义select下拉选择框(不用其他标签模拟)

    今天群里有人问到怎么自定义select下拉选择框的样式,于是群里就展开了激烈的讨论,刚开始一直就是考虑怎样使用纯CSS实现,把浏览器默认的样式覆盖掉,但最后均因兼容问题处理不好而失败告终,最后的解决方 ...

  2. jSP的3种方式实现radio ,checkBox,select的默认选择值。

    jSP的3种方式实现radio ,checkBox,select的默认选择值.以radiao 为例:第一种方式:在jsp中使用java 脚本,这个方法最直接,不过脚本太多,不容易维护<%Stri ...

  3. 如何实现select组件的选择输入过滤作用

    实现select组件的选择输入过滤作用的js代码如下: /** *其中//******之间的部分显示的是在没有选择输入过滤功能的代码上加入的功能代码 ** / (function ( $ ) { $. ...

  4. [jQueryUI] – Chosen:select下拉选择框美化插件及问题

    Chosen 是一个支持jquery的select下拉框美化插件,它能让丑陋的.很长的select选择框变的更好看.更方便.不仅如此,它更扩展了select,增加了自动筛选的功能.它可对列表进行分组, ...

  5. select根据text选择项与select其它操作

    // 6.设置select中text="paraText"的第一个Item为选中 function jsSelectItemByValue(objSelect, objItemTe ...

  6. List.Select按字符串选择属性

    不知道大家有没有遇到这样的情况:List使用Lambda表达式的时候,想要选择项的某个属性列. 例如,选择编号ID: var idList=list.Select(o=>o.ID).ToList ...

  7. Randomize select algorithm 随机选择算法

    从一个序列里面选择第k大的数在没有学习算法导论之前我想最通用的想法是给这个数组排序,然后按照排序结果返回第k大的数值.如果使用排序方法来做的话时间复杂度肯定至少为O(nlgn). 问题是从序列中选择第 ...

  8. JSP控制select不可再选择

    首先分析下disable ,display和readonly: 1,Readonly只针对input(text / password)和textarea有效,而disabled对于所有的表单元素都有效 ...

  9. JQuery select控件的相关操作

    JQuery获取和设置Select选项方法汇总如下: 获取select 先看看下面代码: $("#select_id").change(function(){//code...}) ...

随机推荐

  1. Python3+Appium安装使用教程

    一.安装 我们知道selenium是桌面浏览器自动化操作工具(Web Browser Automation) appium是继承selenium自动化思想旨在使手机app操作也能自动化的工具(Mobi ...

  2. Yarn架构详解

    Yarn架构介绍Yarn/MRv2最基本的想法是将原JobTracker主要的资源管理和job调度/监视功能分开作为两个单独的守护进程.有一个全局的ResourceManager(RM)和每个Appl ...

  3. shell+Zabbix export应用之AD环境删除离职人员登录主机之资料

    以实际环境:维护环境172.30网段主机 Zabbix hosts export出主机信息至 /tmp/ip.txt shell筛选出ip [root@server ~]# cat /tmp/ip.t ...

  4. Android 音视频深入 十七 FFmpeg 获取RTMP流保存为flv (附源码下载)

    项目地址https://github.com/979451341/RtmpSave 这个项目主要代码我是从雷神那弄过来的,不愧是雷神,我就配个环境搞个界面就可以用代码了. 这一次说的是将RTMP流媒体 ...

  5. Hibernate的增删改查(事务)

    Hibernate的事务: 1. 设置事务隔离级别都是用  自己进行存储的 二进制      十进制 read uncommitted   读未提交        0001         1 rea ...

  6. Vue 插槽

    插槽的概念: 插槽的关键字slot,默认情况下,组件中的模板会覆盖组件中的原始内容(即自定义标签对内部的内容会不显示),解决办法就是使用插槽. 组件的原始内容: 即在vue实例范围之内,因此可以调用实 ...

  7. Python 实现清屏

    使用Python的IDLE到某个程序节点时,需要清屏以提高清晰度. 但IDLE本身并没有这个功能,我们可以通过扩展来实现类似于Ctrl + L的清屏 资料来自于百度经验的 BinnLZeng 先制作一 ...

  8. java web后台工作原理

    多时候我们都想知道,web容器或web服务器(比如Tomcat或者jboss)是怎样工作的?它们是怎样处理来自全世界的http请求的?它们在幕后做了什么动作?Java Servlet API(例如Se ...

  9. ConcurrentHashMap实现原理

    ConcurrentHashMap是Java并发包中提供的一个线程安全且高效的HashMap实现(若对HashMap的实现原理还不甚了解,可参考我的另一篇文章HashMap实现原理及源码分析),Con ...

  10. 构建Spring Cloud微服务分布式云架构

    大型企业分布式微服务云架构服务组件 实现模块化.微服务化.原子化.灰度发布.持续集成 commonservice zipkinSpring 日志收集工具包,封装了Dapper和log-based追踪以 ...