【EMV L2】Select PSE应用选择相关的卡片数据格式
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应用选择相关的卡片数据格式的更多相关文章
- CSS自定义select下拉选择框(不用其他标签模拟)
今天群里有人问到怎么自定义select下拉选择框的样式,于是群里就展开了激烈的讨论,刚开始一直就是考虑怎样使用纯CSS实现,把浏览器默认的样式覆盖掉,但最后均因兼容问题处理不好而失败告终,最后的解决方 ...
- jSP的3种方式实现radio ,checkBox,select的默认选择值。
jSP的3种方式实现radio ,checkBox,select的默认选择值.以radiao 为例:第一种方式:在jsp中使用java 脚本,这个方法最直接,不过脚本太多,不容易维护<%Stri ...
- 如何实现select组件的选择输入过滤作用
实现select组件的选择输入过滤作用的js代码如下: /** *其中//******之间的部分显示的是在没有选择输入过滤功能的代码上加入的功能代码 ** / (function ( $ ) { $. ...
- [jQueryUI] – Chosen:select下拉选择框美化插件及问题
Chosen 是一个支持jquery的select下拉框美化插件,它能让丑陋的.很长的select选择框变的更好看.更方便.不仅如此,它更扩展了select,增加了自动筛选的功能.它可对列表进行分组, ...
- select根据text选择项与select其它操作
// 6.设置select中text="paraText"的第一个Item为选中 function jsSelectItemByValue(objSelect, objItemTe ...
- List.Select按字符串选择属性
不知道大家有没有遇到这样的情况:List使用Lambda表达式的时候,想要选择项的某个属性列. 例如,选择编号ID: var idList=list.Select(o=>o.ID).ToList ...
- Randomize select algorithm 随机选择算法
从一个序列里面选择第k大的数在没有学习算法导论之前我想最通用的想法是给这个数组排序,然后按照排序结果返回第k大的数值.如果使用排序方法来做的话时间复杂度肯定至少为O(nlgn). 问题是从序列中选择第 ...
- JSP控制select不可再选择
首先分析下disable ,display和readonly: 1,Readonly只针对input(text / password)和textarea有效,而disabled对于所有的表单元素都有效 ...
- JQuery select控件的相关操作
JQuery获取和设置Select选项方法汇总如下: 获取select 先看看下面代码: $("#select_id").change(function(){//code...}) ...
随机推荐
- 【lintcode】 二分法总结 I
二分法:通过O(1)的时间,把规模为n的问题变为n/2.T(n) = T(n/2) + O(1) = O(logn). 基本操作:把长度为n的数组,分成前区间和后区间.设置start和end下标.i ...
- 基于Protostuff实现的Netty编解码器
在设计netty的编解码器过程中,有许多组件可以选择,这里由于咱对Protostuff比较熟悉,所以就用这个组件了.由于数据要在网络上传输,所以在发送方需要将类对象转换成二进制,接收方接收到数据后,需 ...
- java中线程的三种实现方式
一下记录下线程的3中实现方式:Thread,Runnable,Callable 不需要返回值时,建议使用Runnable:有返回值时建议使用Callable 代码如下所示: package com.f ...
- 棋牌平台开发教程之扎金花大小比较算法在php中的实现
PHP中扎金花比大小如何实现 在棋牌游戏中,不管是现实的还是线上的,扎金花无疑是最热门棋牌游戏之一,鄙人从小就酷爱扎金花,机缘巧合后面从事了IT行业,话不多说,直接进去正题吧. 扎金花两副牌的比较规则 ...
- Romaji (CodeForces - 1008A )
Vitya has just started learning Berlanese language. It is known that Berlanese uses the Latin alphab ...
- Python编写的记事本小程序
用Python中的Tkinter模块写的一个简单的记事本程序,Python2.x和Python3.x的许多内置函数有所改变,所以以下分为Python2.x和Python3.x版本. 一.效果展示: 二 ...
- Nginx配置文档
转https://www.cnblogs.com/hunttown/p/5759959.html
- hosts文件被修改后的惨案
在公司MAC电脑上/etc/hosts中尝试反向解析一个ip到localhost, 即:xxx.xxx.xxx.xxx localhost 然后发现tomcat起不来;
- 命令行运行Android Robotium自动化用例或单元测试用例
本文目录 1.运行所有的测试用例 2.运行单个测试类或某个TestSuite 3.运行某个测试类里面的某个测试方法 4.运行两个不同的测试类或类中的方法 命令行运行Android Robotium自动 ...
- redis应用-分布式锁
一个操作要修改用户的状态,修改状态需要先读出用户的状态,在内存里进行修改,改完了再存回去.如果这样的操作同时进行了,就会出现并发问题,因为读取和保存状态这两个操作不是原子的. set lock:cod ...