PBOC规范研究之七 ----应用选择(转)

PBOC3.0里选择应用总是从选择PPSE开始的,称为支付系统环境。对于非接触卡,选择的字符系统环境为1PAY. SYS. DDF01,而对于非接触卡选择的支付系统环境为”2PAY.SYS.DDF01”

PBOC支持两种搜索目录的方式:第一种为目录选择方式,第二种为AID列表选择方式,现在就对这两种方式分别介绍。在介绍之前,大家必须实现知道两个专用术语:

“AID”用于终端上的应用标识符,

“DF名”用于卡上的应用标识符

第一种、目录选择方式

选择支付系统环境的命令为:


代码



CLA


‘00’


INS


‘A4’


P1


引用控制参数(见表1)


P2


选择选项(见表2)


Lc


‘05’-‘10’


Data


文件名


Le


‘00’

表1 SELECT命令引用控制参数


b8


b7


b6


b5


b4


b3


b2


b1


含义


0


0


0


0


0


1


通过名称选择


0


0

表2定义了选择(SELECT)命令报文的选择选项P2:

表2 选择(SELECT)命令的可选参数


b8


b7


b6


b5


b4


b3


b2


b1


含义


0


0


第一个有或仅有一个


1


0


下一个

选择PSE后,卡片返回的数据源如下所示:

表3 选择PSE的响应报文(FCI)


标识



存在性


‘6F’


FCI模板


M


‘84’


DF名


M


‘A5’


FCI数据专用模板


M


‘88’


目录基本文件的SFI


M


‘5F2D’


语言选择


O


‘9F11’


发卡行代码表索引


O


‘BF0C’


发卡行自定义数据(FCI)


O


‘XXXX’

(根据附录B建立的标签)


来自从应用提供商、发卡行或IC卡供应商或JR/T 0025定义的专属于’BF0C’标签的1个或多个附加(专用)数据元。


O

           

其中,M表示必须存在,O表示可选。标签值84称为专用文件名称,即DDF名称,如果这个84标签的值和你选择的支付系统名称相同,则可以直接采用AID列表方式搜索应用。这里标签值88是个关键,终端需要保存起来,通过这个SFI读取记录文件,遍历卡片应用系统目录,以便搜索到可以支持的应用。

其中读记录文件的命令如下所示:

表4 读记录命令报文


代码



CLA


‘00’


INS


‘B2’


P1


记录号


P2


引用控制参数(见表5)


Lc


不存在


Data


不存在


Le


‘00’

表5定义了命令报文的引用控制参数。

表5 读记录命令引用控制参数


b8


b7


b6


b5


b4


B3


b2


b1


含义


X


X


X


X


X


SFI


1


0


0


P1为记录号

支付系统目录(以下简称目录)是一个线性EF文件,用1到10的短文件标识符(SFI)标识。目录可以使用第7章中所定义的读记录(READ RECORD)命令进行读取。一个记录可以包含几个入口地址,但一个入口地址只能封装在一个记录中。

支付系统目录中的每一个记录都是一个结构数据对象,其值由如下所示的一个或多个目录的入口组成。

每个记录的格式,见表7。

表6 支付系统目录记录格式


‘70’


数据域长度

(L)


标识符

‘61’


目录入口1长度


目录入口1

(ADF)


……


标识符

‘61’


目录入口n

长度


目录入口n

(ADF)

 

支付系统目录记录中应当不包含任何通往DDF的入口。如果终端在处理这些记录时遇到了DDF的入口,终端可以忽略这些入口或者处理这些入口,处理入口的方法不在JR/T 0025的讨论范围内。

支付系统目录中的每一个入口都是一个应用模板(标签‘61’),它包含表42或表43所示的信息。除了在模板‘73’中包含的数据元,任何附加数据元都不能在支付系统目录记录(标签‘70’)中出现。由于终端不支持任何发卡行特定操作而未预期的或不能解释的,在支付系统目录记录中出现的模板‘61’或‘73’数据元,都应该被忽略。

任何没有封装在目录记录的应用模板(标签‘61’)当中的数据对象或其它在目录入口中出现但是没有在表7中列出的数据对象都应该被忽略。

表7 ADF目录入口格式


标签


长度



存在方式


‘4F’


5-16


ADF名称(AID)


M


‘50’


1-16


应用标签


M


‘9F12’


1-16


应用优先名称


O


‘87’


1


应用优先权标识符


O


‘73’


变长


目录自定义模板


O8


‘XXXX’

(根据附录B建立的标识符)


变长


应用提供商、发行商或IC卡供应商、或JR/T 0025定义的专属于模板’73’的标签增加的1个或多个附加(专用)数据元。


O

         

表8 应用优先权标识符格式


b8


b7-b5


b4-b1


定义


1


需要持卡人确认方可选择应用


0


不需持卡人确认即可选择应用


‘XXX’


预留


0 0 0 0


未指定优先权


‘XXXX’

(0 0 0 0除外)


应用的排列或选择顺序,从1-15,其中最高优先权为1

终端需要搜索每一个标签61的值,其中4F的值就是我们需要的AID,在保存这些AID之前,终端需要先进行判断自己是否支持对这些AID进行操作,不支持则丢弃掉,支持的话则保存起来,这个50标签是银联强烈建议存在的,我层操作过一些卡发现有的卡里其实并没有这个标签,当没有这个标签时,就存在一个问题:如果卡片仅支持一个应用。且应用优先级指示器的最高位为1,即终端必须将这个应用的名称显示出来让持卡人选择,如果没有这个50标签,请问持卡人怎么选择?同样的道理如果卡片里有多个应用,优先级分别为1、2、3、5、5,这个时候终端最好的办法是按优先级将所有应用从高优先级到低优先级排列,如果优先级相同,则按照卡片返回的顺序进行排列,如果有多个应用没有指定优先级则也按照卡片返回的顺序排列优先级并显示给持卡人,让持卡人选择,如果没有标签50,那么持卡人就没法进行选择。

使用目录方法的选择流程如下图所示:

下面是终端使用目录方法的步骤:

步骤1: 终端通过使用选择(SELECT)命令(见第11章)来选择文件名为“1PAY.SYS.DDF01”的支付系统环

境 而开始,由此建立支付系统环境并进入初始目录。

如果卡被锁定或者选择(SELECT)命令不支持(这两种情况都会回送状态字SW1 SW2

=“6A81”),      终端必须中断选择过程。

如果IC卡上没有PSE,那么IC卡应该对PSE的选择(SELECT)命令回送状态字“6A82”(文件没有找

到)。在这种情况下,终端必须使用AID应用列表的方式。

如果PSE被锁定,IC卡应该回送状态字“6283”。在这种情况下,终端应该使用AID应用列表的方式。

如果IC卡回送状态字SW1 SW2 =“9000”,终端则转入步骤2。

如果卡回送其他状态字SW1 SW2,终端应该使用12.3.3条所描述的使用应用列表的方式。

如果在步骤2到步骤5中出现任何错误(包括SW1 SW2 ≠“90 00”,“6A 83”),终端应清除候选列

表AID应用列表方式重新进行应用选择,以寻找匹配的应用。

步骤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就被确定了,查找和产生

候选列表的工作完成。如果发现了至少一个匹配的ADF,终端将继续执行第三节、应用选择方式条所

描述的处理过程。

如果步骤1到步骤4中没有发现与终端支持的应用所匹配的目录入口,终端应该使用AID应用列表的方

式 来寻找匹配的应用。

第二种:AID列表选择方式

AID 列表选择的方式说的简单一点就是暴力穷举的方式,这是在目录选择方式失败后所采取的方法,具体的操作过程就是终端根据自己支持的AID列表,使用保存在终端的AID列表里的AID逐次发给卡片进行尝试,如果返回的状态字为SW=9000则表示卡片支持该应用,那么就应该将这个AID加入到支持列表。尝试完保存在终端的所有AID后,终端得到一组双方都支持的AID列表,如果只支持一个应用,且优先级指示符的最高位为1,则终端可让持卡人对该应用进行确认后再进行操作,否则直接选择该应用进行操作。如果有多个支持的应用,则应该根据优先级指示器对其进行排序,如果有多个应用的优先级相同则按照卡片返回的顺序进行排列,如果有多个应用没有指定优先级则同样按照卡片返回的顺序,没有制定优先级默认为优先级最低。具体的操作流程如下图:

终端执行以下步骤:

步骤1:    终端使用其列表中的第一个AID为文件名发出选择(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  信息添加到候选列表。

步骤 7:    终端使用与之前相同的命令数据,但将命令中的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”,或者

选择命令的响应中有格式错误,则此应用应该从候选列表中删除,然后回到步骤1。如果持卡人选择

或确认了某个应用,而随后该应用又因为应用锁定或其它原因被从候选列表中删除,则应用不能在没

有持卡人确认的情况下被选中。

在任何情况下,终端应该在适当的时候提示持卡人相关动作的完成。

第四、本规范中AID编码的定义

本规范采用GB/T 16649.5规定的应用标识符(AID)基本结构,应用标识符(AID)长度为5-16个字节,由5个字节的注册的应用提供者标识符(RID)和0-11个字节的专有应用标识符扩展(PIX)组成。

应用标识符(AID)唯一标识卡中的应用。由申请机构向金融行业主管部门申请,由管理部门统一组织分配。

4.1.   应用提供者标识符(AID)总体编码

应用提供者标识符(RID)总体编码

依据GB/T16649.5关于AID的规定,应用标识符(AID)编码如下所示:

表9 应用标识符(AID)编码


应用提供者标识符(RID)


专有应用标识符扩展(PIX)


5个字节


0至11个字节

4.2.   专有应用标识符扩展(PIX)编码

具体定义请见表10。

应用类型代码必须出现,其定义请见表11。

保留位可选出现,若该字段不出现,则其后续字段不应当出现。若该字段出现,则该字段取值由发卡机构自行定义。

专有定义标识可选出现,若该字段不出现,则专有定义字节不应当出现。若该字段存在,则其定义参见表10。

专有定义字节可选出现。

表10 专有应用标识符扩展(PIX)编码


应用类型代码


保留位


专有定义标识


专有定义字节


3个字节


0-1个字节

保留给发卡机构


0-1个字节

00表示专有定义字节中的内容由本规范保留定义

01-FF保留


0-6个字节

4.3.   应用类型代码定义

应用类型代码第1字节为00-FE的应用类型代码,保留给本规范使用。其取值的部分定义见表11。

应用类型代码第1字节为FF的应用类型代码,保留给发卡机构使用。

表11 应用类型代码定义



定义


01 01 01


借记


01 01 02


贷记


01 01 03


准贷记

如果在最终选择期间给持卡人提供列表,则应用标签和应用优先名称必须保存。DF名和应用优先权标识符在任何情况下都可能需要。

时间: 2024-10-07 00:07:45

PBOC规范研究之七 ----应用选择(转)的相关文章

关于论文研究内容的选择

2016-11-23 算法与数学之美1.关于论文研究内容的选择(1)博士论文研究是针对特定领域的未解决问题的研究,通过研究提出和验证解决这个问题的新理论新方法新模式.论文的创新性贡献一定是解决别人还没有解决.或者在某些方面解决得不好的问题. (2)因此,学生在文献综述分析的基础上必须首先回答:在这个领域,存在哪些没有解决的关键问题.这些问题目前的主要解决思路是什么.有什么人利用什么方法与技术正在解决这些问题.已经达到或近期预计能够达到的解决程度怎样.它们在解决这些问题时还存在什么重大缺陷.学生应

PBOC规范下的java卡介绍

JAVA卡与智能卡 什么是 JAVA 卡呢?JAVA 卡是一种可以运行 JAVA 程序的接触式微处理器智能卡.1996 年 11 月,JAVA 卡 1.0 版本的规范正式发布了.如今 JAVA 卡最新的规范已经到了 2.1 版. 相信对智能卡比较了解的读者一定会问:智能卡的出现和使用已经快有二十年了,为什么会在最近出现 JAVA 卡的呢?为什么 JAVA 卡会变得如此受欢迎?为了回答这个问题,我们先来回顾一下 JAVA 卡出现之前的智能卡,看看它存在着什么样的问题. JAVA卡之前的智能卡 早期

机器学习研究与开发平台的选择

目前机器学习可以说是百花齐放阶段,不过如果要学习或者研究机器学习,进而用到生产环境,对平台,开发语言,机器学习库的选择就要费一番脑筋了.这里就我自己的机器学习经验做一个建议,仅供参考. 首先,对于平台选择的第一个问题是,你是要用于生产环境,也就是具体的产品中,还是仅仅是做研究学习用? 1. 生产环境中机器学习平台的搭建 如果平台是要用于生产环境的话,接着有一个问题,就是对产品需要分析的数据量的估计,如果数据量很大,那么需要选择一个大数据平台.否则的话只需要一个单机版的平台就可以了. 1.1 生产

PBOC

http://blog.sina.com.cn/s/blog_64cc82620100rcgu.html 最近在做一个基于PBOC电子现金卡的终端应用, 项目还没有完成, 但电子现金部分的处理模块已完成,剩下的基本是UI和调试的事情了. 想把对PBOC电子现金理解整理成一篇文章. 电子现金的概念是在PBOC规范的第十三部分<<基于借记/贷记应用的小额支付规范 >>里提出的. 可以这样理解,电子现金是PBOC里的一个应用,它基于借贷记. 这个应用被提出的目的就是实现我们经常听说的一个

打破摩尔定律:谷歌与腾讯的下一代计算平台选择是?

(上图为腾讯服务器平台架构师.天蝎计划3.0项目经理王伟) 谷歌技术架构高级副总裁Urs Hlzle曾在2015年4月对美国媒体表示,谷歌肯定将切换到下一代计算平台,这就是基于OpenPOWER开放芯片架构的服务器.而谷歌服务器与存储系统设计高级总监.OpenPOWER联盟首届主席Gordon McKean表示,已经越来越难从现有的X86服务器中"榨取"更好的性能了. 无独有偶,与谷歌研发下一代计算平台同样重量级的是中国互联网公司的天蝎计划.在2016年6月22日OpenPOWER中国

PBOC第八部分和第十一部分关于TYPEA总结(一)——初始化和防冲突(ISO14443-3)

PBOC第八部分和第十一部分关于TYPEA总结(一) ——初始化和防冲突(ISO14443-3) 第八部分 与应用无关的非接触式规范 ISO14443(1~4) 第十一部分 非接触式IC卡通讯规范 在第八部分的基础上,详细规定了非接触式设备和非接触式卡片之间无线通讯协议的有关要求. PBOC规范,因为不同单位所写,规范中各部分会有重叠和冲突,这篇文档对第八部分和第十一部分进行总结,此部分作用可用于对PCD(读卡器)和PICC(IC卡)数据通讯的底层编写(关于TYPEA协议部分). 一.初始化和防

8.4 数据库审核规范

8.4 数据库审核规范 8.4.1 数据库审核规范 在数据库级别创建审核规范,可以实现数据库级别的审核.具有 ALTER ANY DATABASE AUDIT 权限的用户可以创建数据库审核规范并将其绑定到任何审核.创建数据库审核规范后,具有 CONTROL SERVER 或 ALTER ANY DATABASE AUDIT 权限的主体或 sysadmin 帐户即可查看该规范. 数据库级别审核的操作类型可以是操作组,也可以是单个的操作(SELECT.UPDATE.INSERT.DELETE.EXE

谈谈企业--RedHat Linux操作系统安装配置规范

1.谈谈规范的那些事 首先思考为什么要规范,规范有哪些好处.怎样去规范.规范可以避免哪些风险,当服务器超过几百上千台的时候,规范的重要性越发的尤为重要,废话不多说,浅谈下自己的规范文档. RedHat Linux操作系统安装配置规范 1.1    版本选择 根据应用的要求,并结合硬件类型,选择适当的操作系统版本. 至本规范最后更新时,新安装操作系统允许使用的版本如下: RedHatEnterprise Linux Server 6.4 RedHatEnterprise Linux Server

CSS命名规范参考及书写注意事项

CSS书写顺序 *{ /*显示属性*/ display position float clear cursor - /*盒模型*/ margin padding width height /*排版*/ vertical-align white-space text-decoration text-align - /*文字*/ color font content /*边框背景 为什么要把 boder和background放在最后的原因是修改的频率会较之前的频繁,放在最后查看起来方便,哈哈.*/