ED/EP系列5《消费指令》
1. 消费交易
消费交易允许持卡人使用电子存折或电子钱包的余额进行购物或获取服务.
特点:
1) --可以在销售点终端(POS)上脱机进行
2) --使用电子存折进行的消费交易必须提交个人识别码(PIN),使用电子钱包则不需要
步骤:
1) --参考复合应用消费交易
CPURESET()
JE=00000001//消费金额
DPK= 00000000000000000000000000000055 00A40000021001
805C000204(消费前金额+9000) //(见JR/T 0025.2的5.2.9条)
805001020B+01+JE+000000000001+0F(XYSJ2+9000) YE=COPY(XYSJ2,1,8) //ED或EP余额 4
TJJYXH=COPY(XYSJ2,9,4) //脱机交易序号 2
//透支限额 3
//密钥算法版本号(DPK) 1
//算法标识(DPK) 1
WSJS=LAST(XYSJ2,8) //伪随机数(IC卡) 4 ECB_3DES_EN(WSJS+TJJYXH+0011,DPK,SESLK)
//交易金额 + 交易类型标识 + 终端机编号 + 交易日期(终端)+ 交易时间(终端)
3DES_MAC(0000000000000000+JE+06+000000000001+20090225+153030+800000000000,SESLK,MAC1) //DEBIT FOR PURCHASE/CASH WITHDRAW(见JR/T 0025.2的5.2.3条)
//终端交易序号 + 交易日期(终端)+ 交易时间(终端)+ MAC1
805401000F+00000011+20090225+153030+MAC1+08
//TAC 4
//MAC2 4 805C000204(消费后金额+9000)
2. 复合应用消费交易
复合应用消费交易允许持卡人使用电子钱包的余额进行购物或获取服务。此交易可以在终端设备或其它读卡设备上脱机进行。此交易无需提交个人识别码(PIN)--(电子钱包专用).
特点:
--可以在终端设备或其它读卡设备上脱机进行;
--无需提交个人识别码(PIN)
步骤:
--终端:发出INITIALIZE FOR CAPP PURCHASE命令启动复合应用消费交易
--IC卡:检查提供的密钥索引号(NO:9403);检查钱包是否被灰锁(NO:9408);检查电子钱包余额是否大于或等于交易金额(NO:9401);产生一个伪随机数(ICC)和过程密钥
--SESPK:伪随机数(ICC)||电子钱包交易序号||终端交易序号的最右两个字节
--终端:产生MAC1,供IC卡来验证PSAM的合法性
--终端发出UPDATE CAPP DATA CACHE命令
--IC卡:检查是否存在与SFI值相同的文件(NO:6A82);查询标识符的记录(NO:6A83);检查应用锁定标志字节(NO:9407);检查数据域长度是否大于相应记录的长度(NO:6A84)
--终端:发出DEBIT FOR CAPP PURCHASE命令
--IC卡:验证MAC1的有效性(NO:9302)
--IC卡:交易处理,扣减消费金额,交易序号加1,更新消费交易记录,产生报文签别码(MAC2)
--终端:验证MAC2
注:持卡人如需使用非接触式金融IC卡在特定应用环境中进行交易,需先在卡片中增加相应复合应用类型,即启用此类型的复合应用。——交易类型标识‘09’
CPURESET()
00A40000021001 //DPK 消费密钥
DPK=00000000000000000000000000000055
JE=00000001 //INTIALIZE FOR CAPP PURCHASE(见JR/T 0025.9的5.2.12条)
805003020B+01+JE+000000000001+0F(DATA+9000) YE=COPY(DATA,1,8) //电子钱包余额 4
XH=COPY(DATA,9,4) //电子钱包交易序号 2
//透支限额 3
//密钥算法版本号(DPK) 1
//密钥标识(DPK) 1
WS=LAST(DATA,8) //伪随机数(IC卡) 4
ZDJYXH=00000001 //计算过程密钥SESLK
ECB_3DES_EN(WS+XH+0001,DPK,SESLK) //计算MAC1,数据为:交易金额 + 交易类型(社保要转为ACSII码) + 终端机编号 + 交易日期 + 交易时间 + 80(补足长度)
3DES_MAC(0000000000000000+JE+09+000000000001+20110106+120000+800000000000,SESLK,MAC1) //UPDATE CAPP DATA CACHE
80DC01C8+20+011E00030B200905260000000000000000000000000000000000000000000000
//DEBIT FOR CAPP PURCHASE
805401000F+ZDJYXH+20110106+120000+MAC1+08
3. 修改透支限额交易
透支功能是一种基于电子存折应用的有限信用功能。如果透支限额存在,电子存折的余额是实际圈存余额与透支限额之和。
特点:
1) --必须在金融终端上联机进行;
2) --必须提交个人识别码(PIN)
步骤:
1) --终端:发出初始化修改透支现额(INITIALIZE FOR UPDATE)命令启动修改透支限额交易
2) --IC卡:检查是否支持提供的密钥索引号(NO:9403),产生一个伪随机数(ICC)、一个过程密钥SESUK和一个报文鉴别码(MAC1)
3) --终端: 验证MAC1。
4) --终端: 用SESUK加密数据产生MAC2,并发出修改透支现额(UPDATE OVERDRAWLIMIT)命令
5) --IC卡:验证MAC2的有效性
6) --IC卡:交易处理
--------------------见JR/T 0025.2的5.5.6条(未)
CPURESET()
JE=00000001//消费金额
DUK=7DAE5E53140A9170C21D5805EADB7E9A 00A40000021001
0020000003+888888 //校验密码 //(见JR/T 0025.2的5.2.9条) 密钥索引号+终端机编号
8050040107+01+000000000001(XYSJ2+9000) YE=COPY(XYSJ2,1,8) //ED余额 4
TJJYXH=COPY(XYSJ2,9,4) //ED联机交易序号 2
YZXE=COPY(XYSJ2,13,6) //原透支限额 3
//密钥版本号(DUK) 1
//算法标识(DUK) 1
WSJS=COPY(XYSJ2,23,8) //伪随机数(IC卡) 4
MAC1=LAST(XYSJ2,8) //MAC1 4 //SESUK:伪随机数(ICC)||电子存折联机交易序号||‘8000’
ECB_3DES_EN(WSJS+TJJYXH+8000,DUK,SESLK) //电子存折余额 + 透支限额 + 交易类型标识 + 终端机编号
3DES_MAC(0000000000000000+YE+YZXE+07+000000000001+8000,SESLK,_MAC1)
//透支限额 + 交易类型标识 + 终端机编号 + 交易日期 + 交易时间
3DES_MAC(0000000000000000+YE+YZXE+07+000000000001+20090225+153030+800000,SESLK,MAC2)
//新透支限额+交易日期(发卡方)+ 交易时间(发卡方)+ MAC2
805800000E+20090225+153030+MAC2(TAC+9000)
文/闫鑫原创转载请注明出处http://blog.csdn.net/yxstars/article/details/38225043
ED/EP系列5《消费指令》的更多相关文章
- ED/EP系列7《指令速查表》
命 令 CLA INS ...
- ED/EP系列4《圈存指令》
1. 圈存交易 通过圈存交易,持卡人可将其在银行相应账户上的资金划入电子存折或电子钱包中. 特点: 1)--必须在金融终端上联机进行; 2)--必须提交个人识别码(PIN) 步骤: 1) --终端: ...
- ED/EP系列3《基本指令》
Ø --APPLICATIONBLOCK(应用锁定): Ø --APPLICATION UNBLOCK(应用解锁): Ø --CARDBLOCK(卡片锁定): Ø --EXTERNAL AUTHENT ...
- ED/EP系列1《简介》
电子存折(ED:ElectronicDeposit)一种为持卡人进行消费.取现等交易而设计的支持个人识别码(PIN)保护的金融IC卡应用.它支持圈存.圈提.消费和取现等交易. 电子钱包(EP:Elec ...
- ED/EP系列1《简单介绍》
电子存折(ED:ElectronicDeposit)一种为持卡人进行消费.取现等交易而设计的支持个人识别码(PIN)保护的金融IC卡应用. 它支持圈存.圈提.消费和取现等交易. 电子钱包(EP:Ele ...
- ED/EP系列6《扩展应用》
包括:电子钱包复合应用:电子钱包灰锁应用. 1. 复合应用模式 Ø INITIALIZE FOR CAPP PURCHASE(复合应用消费初始化): Ø UPDATE CAPP DATA CACHE( ...
- ED/EP系列2《文件结构》
电子存折/电子钱包应用是为持卡人进行金融交易而设计的一种应用.对于一张金融 IC 卡来说,它可以同时支持电子存折和电子钱包两种应用,也可以只支持其中的一种.卡片上两种应用的存在情况可以由应用类型标识( ...
- ED/EP简介
ED:electronic Deposit,电子存折 EP:electronic Purse,电子钱包 PIN:personal identification number,个人识别码 MAC:Mes ...
- Java系列:JVM指令详解(下)(zz)
九.自增减指令 20:iconst_1 21:istore_1 22:return 指令码 助记符 ...
随机推荐
- Oozie 中各种类型的作业执行结果记录
一,提交的作业被SUSPEND,然后再被KILL,记录如下: TYPE1: appType WORKFLOW_JOB id 0000002-160516095026479-oozie-oozi-W e ...
- fastCGI (二)各方优劣
1. 克服 CGI 的瓶颈 1.1 令人头痛的效率问题 拜 CGI 之赐,网站不再只有固定不变的图形和文字,藉由程序动态产生的网页可以让网站好象『活』了起来.小从简单的网页计数器,留言版,大至处理众多 ...
- Django中级篇(下)
中间件 django 中的中间件(middleware),在django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法. MIDDLEWA ...
- 【测试】使用hr用户下的employees和departments表写一条SQL语句,(MG连接)
SQL> select * from employees d, departments t where d.department_id=t.department_id; rows selecte ...
- 学习总结 java 输入输出流
思维导图 代码实际演示 package com.hanqi.io; import java.io.*; public class Test1 { public static void main(Str ...
- CentOS6.5 ssh远程连接缓慢解决方法
UseDNS no GSSAPIAuthentication no 1.适用命令及方案如下:[远程连接及执行命令]ssh -p22 root@10.0.0.19ssh -p22 root@10.0.0 ...
- 【Linux】自动化部署可信任登录
Linux信任登录,免密码登录的脚本: 需要安装expect,可以yum也可以编译安装,编译后注意脚本中的expect路径. rsa.exp #!/usr/bin/expect ########### ...
- VS2010 C++ 操作Excel表格的编程实现
转载请注明原文网址: http://www.cnblogs.com/xianyunhe/archive/2011/09/25/2190485.html 通过VC实现对Excel表格的操作的方法有多种, ...
- 隐藏DLL
先来推广一下QQ群:61618925.欢迎各位爱好编程的加入. 在外挂或者病毒中,经常需要隐藏掉自己注入的DLL,以免被发现.下面就是一个隐藏DLL的通用模块,用的时候只需要加入到相关模块中即可. 详 ...
- Java设计模式-Builder生成器模式
概念: 生成器模式也称之为建造者模式.生成器模式的意图在于将一个复杂的构建与其表示相分离,构建与产品分离. UML: Ibuild接口清晰地反映了创建产品Product的流程. 生成器模式涉及4个关键 ...