银联IC卡读卡流程详解--读卡器与卡交互指令

本文详细介绍了银联IC卡的读卡流程,包括应用选择、应用初始化、读应用数据等步骤,并提供了相关命令报文及卡片返回结果的解析,帮助理解卡片与读卡器的交互过程。
摘要由CSDN通过智能技术生成

       最近因研究了下银联借记/贷记应用卡片规范,发现网上可参考资源较少,于是萌生了写下这篇文字的想法,希望可以帮助到有需要的兄弟姐妹,有描述不清晰或者有错误的地方欢迎指正。

       下面进入正题,测试使用的卡是招商银行的IC卡:

(一)应用选择

        一张银联IC卡里面可能有多个应用,所谓应用就是卡片和终端之间的应用协议和相关的数据集,读卡器和卡的交互其实就是和应用的交互,卡的交易其实就是选择某个应用做交易。但目前卡商所生产的卡基本上都是一个应用,即便如此,但根据银联的规范,应用选择这个步骤也是必不可少的。

       (1)首先是选择PSE文件1PAY.SYS.DDF01 ,使用的命令是select命令,这个命令的详解在JR/T 0025.5的附录B中有详细的介绍。

       此处请求命令报文如下:00A404000E315041592E5359532E4444463031

       卡片会返回:6F1E840E315041592E5359532E4444463031A50C5F2D027A689F1101018801019000

       此处返回的结果是严格按照TLV格式来的,解析TLV格式的源程序我会在后续的文章中给出。此处解析出来的数据如下:

          6F:FCI模板 
       84:DF名称 
       A5:FCI专用模板
       88:目录基本文件的SFI (高三位为0,后面补100,进行读取文件数据)
       5F2D:首选语言
       9F11:发卡行代码表索引
       BF0C:发卡行自定义数据--(该卡没有带此数据)


       FCI(文件控制信息)包含FCI(短文件标识符),目录中的每个应用列出一个应用。

      (2)会根据SFI 进行读记录,此处SFI为01,根据read record的规范,p2的高5位为SFI,低三位为100,故p2的值为0x0C。

        此处请求命令报文为:00B2010C00

        卡片返回:702861264F08A000000333010101500A50424F432044454249549F120A50424F432044454249548701019000

         此处的返回结果也是按照TLV格式来编码的,解析后为:

         4F : A000000333010101        应用标识符(AID)

         50:50424F43204445424954    应用标签

      

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值