指令格式说明:00A4表示0x00A4,即四个字节的ASC码,表示两个字节的Hex码
(一)充值
1、 卡复位
如果卡复位成功则返回ATS信息 2、 选择应用系统环境
发送指令: 00A404000E315041592E5359532E4444463031 3、 选择应用
假设应用文件的标识符为3F01, 发送指令:00A40000023F01
4、 Initialize for Load(圈存初始化)
假设为EP(电子钱包)充值 指令:805000020B数据10
如果为ED(电子存折)充值则指令为:805000010B数据10 数据:
〈1〉 密钥索引 〈2〉 交易金额 〈3〉 终端机编号
指令执行成功后,则IC卡返回以下数据 〈1〉 ED或EP余额
〈2〉 ED或EP联机交易序号 〈3〉 密钥版本(DLK) 〈4〉 算法标识(DLK) 〈5〉 伪随机数
〈6〉 MAC1
5、 产生MAC1,与IC卡返回的MAC1(报文鉴别码)比较,验证其是否正确 6、 产生MAC2
7、 Credit for Load(圈存)
指令:805200000B数据04 数据:
〈1〉 交易日期(主机) 〈2〉 交易时间(主机) 〈3〉 MAC2
圈存成功,则IC卡返回TAC(交易认证码) 8、 产生TAC并验证(可以不马上验证)
(二)消费
1、 卡复位
如果卡复位成功则返回ATS信息 2、 选择应用系统环境
发送指令: 00A404000E315041592E5359532E4444463031 3、 选择应用
假设应用文件的标识符为3F01, 发送指令:00A40000023F01
4、 Initialize for Purchase(消费初始化)
假设为EP(电子钱包)充值 指令:805001020B数据0F
如果为ED(电子存折)充值则指令为:805010010B数据0F 数据:
〈1〉 密钥索引 〈2〉 交易金额 〈3〉 终端机编号
指令执行成功后,则IC卡返回以下数据 〈7〉 ED或EP余额
〈8〉 ED或EP脱机机交易序号 〈9〉 密钥版本(DPK) 〈10〉 算法标识(DPK) 〈11〉 伪随机数
5、 产生MAC1 (如果是住建部标准,还需在此之前发送Get Message指令获取9字节安全
认证码,指令:80CA000009) 6、 Debit for Purchase(消费扣费)
指令:805401000F数据08 数据:
〈1〉终端交易序号
〈4〉 交易日期(终端) 〈5〉 交易时间(终端) 〈6〉 MAC1
如果消费扣费成功,则IC卡返回以下数据: 〈1〉 TAC 〈2〉 MAC2
7、 产生MAC2并验证
8、 产生TAC并验证(可以不马上验证)