这几天看了一下《中国金融集成电路(IC)卡规范第6部分(借记贷记应用终端规范).pdf》
贴出来是为了能大家互相交流,提出我理解有误的地方。
1. 按键推荐颜色:确认-绿色 取消-红色 清除-黄色;
2. 密码长度 4-12 位;
3. 账户长度 11-19 位;
4. 应用选择的卡片数据:
DDF: 目录定义文件。--比如PSE;
ADF: 应用定义文件。-包含AEF入口和应用相关的信息,比如应用名称,应用首选名,优先指示器,PDOL.;
AEF: 应用基本文件。-应用处理过程中所用到的数据元;
AID : AID = RID+ PIX ;
应用优先指示器:最高位表示是否需要持卡人确认,后四个字节表示优先级。0表示无优先级,1-15,1的优先级最高;
5. 应用选择的终端数据:
AID: 应用标识符,AID+PIX;
ASI: 应用选择指示器,表明是部分匹配还是全匹配(部分匹配是指卡片的AID比终端的AID更长一些,即对终端支持的每个应用,卡片可以有多个应用对应)。
终端支持的应用列表;
PSE文件名;
6. 应用选择的命令:SELECT , READ RECORD
7. SELECT 可以选择PSE目录选择方法或者AID列表选择方法;
8. READ RECORD读取支付系统目录,与PSE相关联的基本文件。
9. 目录选择方法:“1PAY.SYS.DDF01”搜索树型卡片文件结构,得到匹配的候选应用列表;(卡片可选,终端必须支持。终端先尝试使用目录选择方法。)
选择PSE后,如果卡片返回不支持或读取目录入口为空,则使用AID列表方法选择。
先选取PSE,根据卡片对PSE返回的SFI逐个读取记录,根据入口对应的ADF和选择指示器(部分匹配OR全匹配)加入候选列表。
10. AID列表方法:依次SELECT,如果卡片也支持,则加入候选应用列表。
发送第一个AID作为文件名进行SELECT,如果6A81,命令不支持,则不再选择。如果返回6283或其他则重新选择下一个,如果返回9000成功而且DF名与AID长度相同,则加入候选列表并选择下一个。如果返回9000但DF名称比AID长度长,先检查选择指示器是否支持部分匹配,如果支持则添加FCI信息到候选列表,然后将命令中P2参数设置为02表明选择下一个,直到卡片返回非 9000 62xx 63xx 则使用下一个AID进行选择。如此轮询整个AID列表。
11. 终端如果支持显示应用名,则必须同时支持持卡人确认功能。只有一个应用的时候,可自动选择或持卡人确认。如果多个应用,按照优先级别显示,等待持卡人确认,如果未确认一个应用,交易终止。如果优先级一样,应用顺序可以按读出顺序或自行安排顺序。
12. 选择一个应用后,终端再向卡片发送select命令,获取FCI数据,如果卡片没有返回成功,则重新选择。
13. PSE为DDF,读取记录,获取入口后,得到ADF,终端也支持,就将此ADF的应用加入候选列表。
14. SELECT应用后&#x