CPU卡相关资料收集总结

指令回复错误描述

  • 6200 “警告 信息未提供”
  • 6281 “警告 回送数据可能”
  • 6282 “警告 文件长度小于Le”
  • 6283 “警告 选中的文件无效”
  • 6284 “警告 FCI格式与P2指定的不符”
  • 6300 “警告 鉴别失败”
  • 63Cx “警告 校验失败(x-允许重试次数)”
  • 6400 “状态标志位没有变”
  • 6581 “内存失败”
  • 6700 “长度错误”
  • 6882 “不支持安全报文”
  • 6981 “命令与文件结构不相容,当前文件非所需文件”
  • 6982 “操作条件(AC)不满足,没有校验PIN”
  • 6983 “您的卡已被锁定”
  • 6984 “随机数无效,引用的数据无效”
  • 6985 “使用条件不满足”
  • 6986 “不满足命令执行条件(不允许的命令,INS有错)”
  • 6987 “MAC丢失”
  • 6988 “MAC不正确”
  • 698D “保留”
  • 6A80 “数据域参数不正确”
  • 6A81 “功能不支持;创建不允许;目录无效;应用锁定”
  • 6A82 “该文件未找到”
  • 6A83 “该记录未找到”
  • 6A84 “文件预留空间不足”
  • 6A86 “P1或P2不正确”
  • 6A88 “引用数据未找到”
  • 6B00 “参数错误”
  • 6Cxx “Le长度错误,实际长度是xx”
  • 6E00 “不支持的类:CLA有错”
  • 6F00 “数据无效”
  • 6F01 “连接中断”
  • 6D00 “不支持的指令代码”
  • 9301 “您的卡余额不足”
  • 9302 “MAC2错误”
  • 9303 “应用被永久锁定”
  • 9401 “您的卡余额不足”
  • 9402 “交易计数器达到最大值”
  • 9403 “密钥索引不支持”
  • 9406 “所需MAC不可用”
  • 6900 “不能处理”
  • 6901 “命令不接受(无效状态)”
  • 61xx “正常 需发GET RESPONSE命令” 读取指令00C00000xx
  • 6600 “接收通讯超时”
  • 6601 “接收字符奇偶错”
  • 6602 “校验和不对”
  • 6603 “警告 当前DF文件无FCI”
  • 6604 “警告 当前DF下无SF或KF”
  • 6E81 “卡片已离开”

常用指令作用及解析

以下为cpu卡充值流程

  • 选择主文件
    00a40000023f00(住建部卡主文件一般都是这条指令)

  • 读取05文件
    00b0850000

    响应报文如下:

    字节 数据元 长度 格式 说明
    01-02 发卡方代码 2 BCD
    03-04 城市代码 2 BCD
    05-06 行业代码 2 BCD
    07-08 预留 2 HEX 不同城市有不用的含义,视情况解析
    09-16 应用序列号 8 2:城市代码BCD
    1:卡主类型BCD
    1:卡子类型BCD
    4:发行流水HEX
    17 卡主类型 1 BCD
    18 卡子类型 1 BCD
    19-22 发行日期 4 BCD YYYYMMDD
    23-28 发行设备信息 6 BCD
    29-30 应用版本号 2 BCD

  • 选择文件标识
    00a40000023f01
    00a4000002df01
    00a4000002df04
    00a4040009a00000000386980701
    ….
    根据不同的城市,所处的文件可能有所不同

  • 读取15文件
    00b0950000

    响应报文如下:

    字节 数据元 长度 格式 说明
    1-2 发卡方代码 2 BCD
    3-4 城市代码 2 BCD
    5-6 行业代码 2 BCD
    7-8 押金 2 BCD
    9 应用类型标识(启用标志) 1 BCD 00:未启用
    01 启用
    10 应用版本 1 BCD
    11-12 互联互通标识(参与互通城市的标识) 2 BCD
    13-20 应用序列号 8 BCD 2:城市代码 BCD
    1:卡主类型 BCD
    1:卡子类型 BCD
    4:发行流水HEX
    21-24 应用启动日期 4 BCD YYYYMMDD启用时更新
    25-28 应用有效日期 4 BCD YYYYMMDD启用时更新
    29 卡主类型 1 BCD
    30 卡子类型 1 BCD
    31-34 业务位图数据 4 HEX

  • 读取余额
    805c000204

    响应报文如下:

    字节 数据元 长度 格式 说明
    01-04 余额 4 HEX

  • 电子钱包交易记录
    00b2xxc400(18号文件)
    00b2xxd400(1a号文件)

    根据不同城市不同的卡类型去读取

    xx标识读取的第几条记录
    01:第一条
    02:第二条
    ….
    0a:第10条

    响应报文如下:

    字节 数据元 长度 格式 说明
    01-02 电子钱包消费、充值交易序号 HEX 2
    03-05 透支限额 HEX 3
    06-09 交易金额 HEX 4
    10-10 交易类型 BCD 1
    11-16 交易终端编号 BCD 6
    17-20 交易日期 BCD 4 YYYYMMDD
    21-23 交易时间 BCD 3 HHMMSS

  • 验证PIN

    命令解析:

    数据 描述
    CLA 00
    INS 20
    P1 00
    P2 00
    LC PIN的长度
    PIN PIN码
    LE

    0020000003123456
    回包9000即为成功

    务必要注意,一般卡只有3次尝试机会,如果3次pin验证都失败,会将卡片锁定
    部分城市的卡片需要在文件选中之后就验证pin,才能进行余额查询及交易记录查询


  • 初始化圈存交易

    命令解析:

    数据 描述
    CLA 80
    INS 50
    P1 00
    P2 01:ED圈存
    02:EP圈存
    LC 0B
    DATA 见下表
    LE 10

    DATA

    数据 长度(字节)
    密钥索引 1
    交易金额 4
    终端机编号 6

    805000020B0100000001112233445566

    响应报文:

    字节 数据元 长度 格式 说明
    01-04 ED或EP余额 4
    05-06 ED或EP联机交易序号 2
    07 密钥版本号(DLK) 1
    08 算法标识(DLK) 1
    09-12伪随机数(IC卡) 4
    13-16 MAC1 4

  • 充值确认
    命令格式:

    数据 描述
    CLA 80
    INS 52
    P1 00
    P2 00
    LC 0B
    DATA 见下表
    LE 04

    DATA:

    数据 长度(字节)
    交易日期(主机) 4
    交易时间(主机) 3
    MAC2 4

    响应报文:

    字节 数据元 长度 格式 说明
    01-04 TAC 4

以上的各个指令,各种情况仅供参考,均需要根据不同的城市不同的卡进行调整,住建部的卡大的规范是一样的,但因为不同城市的cos不太一样会导致在操作上也会存在一些差异,需要酌情进行调整。

阅读更多

更多精彩内容