应用选择的目的是给正在执行的交易选择一个应用。步骤:首先建立应用候选列表,然后从候选列表中选择一个应用。

一.建立候选列表

建立终端与卡片之间共同支持的应用列表。

两种方法:目录选择法和AID列表法

1.目录选择法:

a.终端发送选择’1PAY.SYS.FFD01’文件命令,ICC返回数据包含短文件标识符(tag’88’)
b.根据短文件标识符终端循环发送读记录命令,直至ICC返回’6A83’,表示记录读完了。ICC返回记录包含DF name(tag’4F’),将DF name和终端的AID比较匹配,符合条件加入候选列表。
2.AID列表选择法步骤:
根据终端AID列表中AID依次通过选择命令获得ICC的DF name,将其与卡片的AID比较匹配,符合条件加入候选列表。
匹配:分完全匹配和部分匹配两种。完全匹配是指终端AID与卡片AID的长度和值完全相同;部分匹配是指卡片AID是以终端AID开头,即卡片的AID一定大于等于终端AID的长度。
例子:
终端AID:A0 00 00 03 33 01 01
卡片AID1:A0 00 00 03 33 01 01 01
卡片AID2:A0 00 00 00 03 10 10
卡片AID3:A0 00 00 03 33 01 01
终端AID与卡片AID3是完全匹配;终端AID与卡片AID1是部分匹配。

二、最终选择应用

从候选列表中选择应用
①按照应用的优先级从高到低选择;
②若应用优先级指示器的b8=1,持卡人选择应用;

若应用优先级指示器的b8=0,终端选择应用。

三、所用的命令

选择命令:


 
选择命令回复:
1.选择PSE的回复
2.选择AID的回复

四、应用选择的例子

T:表示终端发送的命令
C:表示卡片返回的数据
红色为tag,黑色为长度,紫色为value

a.选择PSE环境: 选择 1PAY.SYS.DDF01 文件

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

C:6F 22 84 0E 31 50 41 59 2E 53 59 53 2E 44 44 46 30 31 A5 10 88 01 01 5F 2D 02 7A 68 BF 0C 05 9F 4D 02 0B 0A 90 00

卡片返回数据解析:

6F 22 84 0E 31 50 41 59 2E 53 59 53 2E 44 44 46 30 31(1PAY.SYS.DDF01)A5 10 88 01 01(SFI即短文件标识符)5F 2D(首选语言) 027A 68(zh中文)BF 0C 05 9F 4D 02 0B 0A 90 00(sw1、sw2)

可知,下一步需要读记录,短文件标识符为01,首选语言为中文

b.通过循环读记录,选择PSE关联文件

T:00 B2 01 0C 00   读循环文件第一条记录

C:70 1B 61 19 4F 08 A0 00 00 03 33 01 01 01 50 0A 50 42 4F 43 20 44 45 42 49 54 87 01 01 90 00

卡片返回数据解析:

70 1B61 19 4F(ADF name) 08 A0 00 00 03 33 01 01 01(AID) 50(应用标签)0A 50 42 4F 43 20 44 45 42 49 54(PBOC DEBIT) 87(应用优先级指示器) 01 0190 00(sw1、sw2)

可知:卡片返回AID为A0 00 00 03 33 01 01 01;应用优先级为01

读循环文件第2条记录

T:00 B2 02 0C 00

C:6A 83(记录未找到)

c.选择文件

按照目录名称(AID)选择,目录为当前目录本身、平级或者下级

T:00 A4 04 00 08 A0 00 00 03 33 01 01 01 00

C:6F 34 84 08 A0 00 00 03 33 01 01 01 A5 28 50 0A 50 42 4F 43 20 44 45 42 49 54 87 01 01 9F 38 09 9F 7A 01 9F 02 06 5F 2A 02 5F 2D 02 7A 68 BF 0C 05 9F 4D 02 0B 0A 90 00

卡片返回数据解析:

6F 34 84 08 A0 00 00 03 33 01 01 01(AID) A5 2850(应用标签) 0A50 42 4F 43 20 44 45 42 49 54(PBOC DEBIT) 87(应用优先级指示器) 0101 9F 38(PODL) 09 9F 7A 01 9F 02 06 5F 2A 025F 2D(首选语言) 027A 68 BF 0C 05 9F 4D 02 0B 0A 90 00(sw1、sw2)

可知,PDOL为9F 7A 01 9F 02 06 5F 2A 02

EMV规范(二)——应用选择相关推荐

  1. Python入门(二)——IDE选择PyCharm,输入和输出,基础规范,数据类型和变量,常量,字符串和编码,格式化

    Python入门(二)--IDE选择PyCharm,输入和输出,基础规范,数据类型和变量,常量,字符串和编码,格式化 我们从今天就开始正式的学习PY交易了,PY交易还行,我们有基础之后学习起来倒不是说 ...

  2. EMV规范(三)——应用初始化

    一.应用初始化的目的: ①通知卡片新交易开始 ②将交易所需的数据发送给卡片 ③从卡片上返回AIP和AFL ④决定交易是否被允许执行 二.应用初始化步骤: ①设置TVR和TSI中所有位为0 ②根据应用选 ...

  3. EMV规范(一)——背景介绍

    一.EMV组织介绍 EMV标准是由国际三大银行卡组织--Europay(欧陆卡,已被万事达收购).MasterCard(万事达卡)和Visa(维萨)共同发起制定的银行卡从磁条卡向智能IC卡转移的技术标 ...

  4. EMV规范(七)——持卡人验证(CVM)一

    此部分笔记是来源EMV Book3中的10.5 Cardholder Verification节,可以结合此篇笔记来阅读. 终于到CVM这章了,持卡人验证是非常非常重要的章节,反正我的leader是这 ...

  5. EMV规范(四)——读应用数据

    读应用数据的目的是为了从卡片中获取后续交易需要的数据.例如,在脱机数据认证时,需要的认证数据,等.步骤:根据应用初始化时,由GPO命令返回的卡片数据中的AFL,来读取卡片数据. 一. AFL:Appl ...

  6. PBOC借贷记交易流程与命令解析(二) -应用选择

    当我们首次进行一个借贷记交易时,卡插进POS终端,首先终端会判断卡片的通信协议类型和ATR值. 一  当终端能识别卡片时,终端开始下发一个选择PSE指令,即选择一个金融环境. 二 根据选择PSE命令的 ...

  7. EMV规范(八)——持卡人验证(CVM)二

    现在到了TVR和CVM Results部分了.TVR是Terminal Verification Results,也就是终端验证的结果,包括了脱机数据认证,持卡人认证,处理限制等等是否成功.所以只要交 ...

  8. 研究中学习【方法】 | Heckman二值选择模型

    由于研究生的课题研究需要,接触到heckman模型,但一直是一知半解.阅读了heckman模型相关的文章,归纳总结一份学习笔记,能够帮助同时有这个学习需要的朋友,也方便后续回顾查看.下文将包含heck ...

  9. DDR4时序标准规范(二)

    DDR4时序标准规范 编码模式寄存器(MRx) 模式寄存器0(MR0) CAS延迟 测试模式TM 写恢复(WR)/读预充 DLL(延时锁相环)复位 模式寄存器1(MR1) DLL(延时锁相环)使能/禁 ...

最新文章

  1. 计算机丢失mfc120u.dll,mfc120u.dll丢失怎么修好
  2. Spring编程式和声明式事务实例讲解
  3. 【ABAP】通过SE30来测试程序的执行效率
  4. 打印show attend and tell的编码器网络结构
  5. 浅谈linux字符设备注册
  6. Keil综合(02)工程窗口各项图标描述
  7. ODrive踩坑(二)3508电机和TLE5012B磁编码器参数配置、校准、位置闭环模式转动电机(TLE5012B-E1000)
  8. Customer Group Checkout----------Red2Black_RealTidbits
  9. 鸿蒙 HarmonyOS 3.0,终于来了!
  10. 测试文档模板_基于模型的测试(贰)
  11. CRMEB制作docker-compose
  12. 如何输入版权符号 copyright
  13. lcs问题java_动态规划法(十)最长公共子序列(LCS)问题
  14. 微信小程序动态倒计时
  15. Response.setContentType类型按文件扩展名首字母分类大全
  16. 保密相册计算机,隐私加密相册电脑版
  17. 如何写好一份在线TOB的产品说明文档,这六点很重要
  18. rom 是计算机的__,蘑菇ROM助手
  19. Certbot自签证书
  20. 外勤365显示服务器忙,外勤365产品培训FAQ.pdf

热门文章

  1. L1, L2, smooth_L1 Loss函数python实现
  2. mysql中vlookup函数_VLOOKUP函数的使用方法(入门级)
  3. 基于matlab的SMO实现
  4. html mako
  5. html的颜色有多少种?
  6. windows 服务器多网卡设置路由
  7. 四年上册级计算机教学计划,四年级上学期教学计划(通用5篇)
  8. ubuntu开机进入initramfs的解决办法
  9. 解决C Runtime R6034的错误
  10. 我跟敏捷开发的故事--三面墙