PBOC文件系统详解2
来源:互联网 发布:企业网络商学院 编辑:程序博客网 时间:2024/06/07 15:16
1:支付系统环境结构
该DDF在IC卡上是否存在是可选的,但如果存在。如果这个DDF存在,那么这个DDF
被映射到卡中的某个DF,这个DF可以是MF,也可以不是。该DDF应该包含一个支付系统目录。
图1:单应用的卡片简单结构
图2:单层目录
2:支付系统目录编码
支付系统目录(以下简称目录)是一个线性EF文件,用1到10的短文件标识符(SFI)标识。
目录可以使用读记录(READ RECORD)命令进行读取。一个记录可以包含几个入口地址,
但一个入口地址只能封装在一个记录中。支付系统目录中的每一个记录都是一个结构数据对象,
其值由如下所示的一个或多个目录的入口组成。每个记录的格式见表1。
表1:支付系统目录记录格式
支付系统目录记录中应当不包含任何通往DDF的入口。如果终端在处理这些记录时遇到了DDF的入口,终端可以忽略这些入口或者处理这些入口。
支付系统目录中的每一个入口都是一个应用模板(标签”61”),除了在模板‘73’中包含的数据元,任何附加数据元都不能在支付系统目录记录(标签‘70’)中出现。
由于终端不支持任何发卡行特定操作而未预期的或不能解释的,在支付系统目录记录中出现的模板‘61’或‘73’数据元,都应该被忽略。任何没有封装在目录记录的应用模板(标签 61)
当中的数据对象或其它在目录入口中出现但是没有在表2中列出的数据对象都应该被忽略。
表2:ADF 目录入口格式
表3:应用优先权标识符格式
3:FCI 响应数据错误处理
应用标签、应用优先名称、发卡行代码表索引和首选语言这些数据元是为了持卡人的方便而给出的,
不是应用选择成功处理的关键数据元。如果在FCI中给出了这些数据元,发卡行将负责它们的正确编码。
终端无需支持这些数据元的正确格式。如果应用优先名称或应用标签中包含了某一无效的格式定义
的字符,那么如果终端能显示出这个字符,终端应显示这个字符,如果终端不能显示这个无效字符,终
端应忽略该字符或以空格或其它相近字符代替。另外,如果终端检测到这些数据元中任意一个数据元的
格式错误,终端应忽略这些错误,就如卡片响应中未包含这些数据元一样。更重要的是,终端不应终止
卡片操作,而应继续进行应用选择。如果终端不能识别“发卡行代码表索引”或“首选语言”的代码,
它应将该数据元视为不存在。
4:使用支付系统目录
终端使用目录方法的步骤:
1:终端通过使用选择(SELECT)命令来选择文件名为“1PAY.SYS.DDF01”的支付系统环境而开始,由此建立支付系统环境并进入初始目录。
如果卡被锁定或者选择(SELECT)命令不支持(这两种情况都会回送状态字SW1 SW2 =“6A81”),终端必须中断选择过程。
如果IC卡上没有PSE,那么IC卡应该对PSE的选择(SELECT)命令回送状态字“6A82”(文件没有找到)。终端必须应用列表的方式。
如果PSE被锁定,IC卡应该回送状态字“6283”。使用应用列表的方式。
如果IC卡回送状态字SW1 SW2 =“9000”,终端则转入步骤2。
如果在步骤2到步骤5中出现任何错误(包括SW1 SW2 ≠“90 00”,“6A 83”),终端应清除候选列表并使用应用列表方式重新进行应用选择,以寻找匹配的应用。
2:终端使用卡片返回的FCI中的目录SFI,从目录的第1条记录开始,连续读取后续记录,直到卡回送状态字SW1 SW2=“6A83”,
表示所请求的记录序号已不存在(如果读记录(READ RECORD)命令中记录号大于文件的最后一条记录号时,卡应该回送状态字“6A83”。
如果在执行读记录(READ RECORD)命令查找第1个记录时,卡回送状态字“6A83”,则表示目录入口为空,转到下面的步骤5。
对于目录中的每一条记录,终端从第一个目录入口开始,依次对每个目录入口顺序执行步骤3和步骤4所描述的过程。
如果某条记录中不含有目录入口,则终端处理下一条记录。
3:如果该入口对应某一ADF,且ADF名与终端支持的一个应用相匹配则在应用选择指示器(ASI)
(保存在终端中,与该AID对应)的控制下将该应用列入最终应用选择的―候选列表中。
应用选择指示器(ASI)表明终端的应用标识符应完整匹配(长度和值都相同)还是只需部分匹配卡片中相关的ADF名(标签为‘4F’)。
在下面任一种情况下,该应用将被选入候选列表:
获得的入口中的 ADF 是完整匹配,或者对应终端中该 AID 的应用选择指示器(ASI)表明允许部分名称匹配。
如果得到的ADF入口不是完整匹配,并且终端AID的应用选择指示器表明须要完整匹配时,应用不能被加入候选列表。
4:当终端处理完最后一个记录中的所有入口后,所有能够按此方法找到的ADF就被确定了,查找和产生候选列表的工作完成。
5:如果步骤1到步骤4中没有发现与终端支持的应用所匹配的目录入口,终端应该使用12.3.3条所
描述的使用应用列表的方式来寻找匹配的应用。
使用 AID 列表
如果卡片或终端有一方不支持PSE方法或者终端使用PSE目录没有找到匹配的应用,
那么终端应使用它所支持的应用列表的方法建立候选列表。
终端执行以下步骤:
1:终端使用其列表中的第一个AID8作为文件名发出选择(SELECT)命令。
2:如果卡被锁定或者选择(SELECT)命令不支持导致选择(SELECT)命令失败(IC卡回送状态字SW1 SW2=“6A81”, 终端将中断选择过程。
3:如果选择(SELECT)命令执行成功(SW1 SW2=“9000”或“6283”,终端应比较AID和卡)返回的FCI中的DF名。
DF名应该同AID相同(包括长度),或者DF名以AID为开始并且长度大于AID。如果DF名比AID长,卡将进行部分名称选择处理。
如果DF名同AID相同,终端应进入到步骤4。如果进行了部分名称选择,终端应进入步骤6。如果终端返回其它状态,应进入步骤5。
4:如果选择(SELECT)命令成功(SW1 SW2=“9000”,终端应将所选择文件的FCI信息添加到)候选列表中 并进入步骤5。
如果应用已锁定(SW1 SW2 =“6283”,终端应直接进入步骤5而不将DF名)添加到候选列表。
5:终端使用其列表中的下一个AID发出另一个选择(SELECT)命令,回到步骤3。如果列表中没有剩余的AID,那么候选列表建立完成。
6:对应于AID列表,终端还保存了表明卡是否允许有多个应用匹配的应用选择指示器。终端在选择应用时会检查该指示符。
如果指示符表明需要完整匹配(包括长度和名称),那么终端将不会把文件添加到候选列表,而是进入步骤7。如果允许多应用匹配,那么部分名称匹配即可。
如果应用没有锁定(SW1 SW2 =“9000”),终端将会添加FCI信息到候选列表,然后进入步骤7。如果允许多应用匹配但是应用已锁定(SW1 SW2 ≠“9000”),
则终端应直接进入步骤7而不将FCI信息添加到候选列表。终端使用与之前相同的命令数据,但将命令中的 P2 参数设置为 02(―选择下一个),重复发出选择
(SELECT)命令,如果 IC 卡返回状态字 SW1 SW2=“9000”“62XX”,,或者“63XX” 然后回到,步骤 3。如果返回其它状态字,终端转到步骤 5。
最终选择
当终端确定了卡与终端共同支持的应用列表之后,就进行如下处理:
1) 如果没有共同支持的应用,交易终止。
2) 如果只有一个共同支持的应用,则如果有应用优先级标识符(API) 终端检查该应用的应用,
优先级标识符的b8位。如果b8=‘0’,则终端选择该应用。如果b8=‘1’并且终端提供持卡人的确认功
能,终端即请求持卡人确认。如持卡人确认,则选择该应用。如果终端不提供持卡人的确认功能,或终
端请求确认而持卡人拒绝,则终端终止该交易过程。
3) 如果有多个共同支持的应用,则可以按照步骤4中的描述显示列表供持卡人选择,或者按照步
骤5的描述自动完成选择。步骤4是首选的方法。
4) 如果向持卡人显示列表,则该列表应该按照级别优先的顺序排列,高优先级的应用应该在前。
如果卡上没有指定应用的优先顺序,则以终端的应用优先顺序为准,如果终端也没有指定应用的优先顺
序,则按照应用在卡中出现的顺序为准。如果出现多个应用有相同的优先级,或某个入口缺少应用优先
级标识符的情况,也可采用类似的方法。也就是说,在这种情况下,终端可以使用自己的优先顺序,也
可以按卡上应用出现的的顺序将有重复优先级或没有优先级的应用显示出来。
5) 终端可以无需持卡人的介入而直接选择应用。在这种情况下,终端从共同支持的应用列表中选择优先级别最高的应用。
如果终端不提供持卡人对选择的应用确认,则那些不经过持卡人确认就不能选择的应用(应用优先级标识符的b8=‘1’)应从可选列表从删除。
一旦终端或持卡人确定了待执行的应用,则该应用应被选中。终端向该应用发出选择(SELECT)命令(按照第11章进行编码,使用建立候选列表时
得到的ADF名称(如果采用目录方式)或者FCI中的DF名(如果采用应用列表方式)作为数据域)。如果命令回送的状态字SW1 SW2≠“9000”,
或者选择命令的响应中有不同于12.2.4条所描述的格式错误,则此应用应该从候选列表中删除,然后回到步骤1。
如果持卡人选择或确认了某个应用,而随后该应用又因为应用锁定或其它原因被从候选列表中删除,
则应用不能在没有持卡人确认的情况下被选中。在任何情况下,终端应该在适当的时候提示持卡人相关动作的完成。
参考文档
PBOC3.0规范
起草时间
2015-10-22
- PBOC文件系统详解2
- PBOC交易过程详解
- PBOC 文件结构详解1
- PBOC
- PBOC学习记录-2 应用初始化
- 详解文件系统
- Linux运维第2天:Linux文件系统详解
- EXT4文件组织 - EXT4文件系统详解2
- PBOC/EMV-交易流程详解--POS与卡片的数据交互进行分析
- PBOC/EMV-交易流程详解--POS与卡片的数据交互进行分析
- PBOC/EMV-交易流程详解--POS与卡片的数据交互进行分析
- PBOC SDA的意思是静态数据认证 流程,详解,带指令
- PBOC/EMV-交易流程详解--POS与卡片的数据交互进行分析
- PBOC/EMV-交易流程详解--POS与卡片的数据交互进行分析
- PBOC/EMV-交易流程详解--POS与卡片的数据交互进行分析
- Linux文件系统详解
- proc文件系统详解
- 嵌入式Linux文件系统详解
- Android实现限制EditText输入文字的数量
- 264、Ugly Number II
- 完整java开发中JDBC连接数据库代码和步骤
- java学习路线及书籍下载
- cocoapods 安装报错报错
- PBOC文件系统详解2
- android 获取string.xml中的value
- HDOJ 1096 A+B for Input-Output Practice (VIII)
- Tomcat安装与使用
- Kafka分布式环境搭建
- 协议[I2C]_I2C子系统之adapter device和client device注册——I2C_add_number_adapter()
- win32程序启用控制台(控制台文件名:conout$,conin$,conerr$)
- 关于android-support-v7-appcompat.jar的使用的一些问题和解决方法
- zlib库剖析(2):编译及应用