消费交易允许持卡人使用电子存折或电子钱包的余额进行购物或获取服务。此交易可以在销售点终端(POS)上脱机进行。使用电子存折进行的消费交易必须提交个人识别码(PIN),使用电子钱包则不需要。

1.1 终端发出初始化消费(INITIALIZE FOR PURCHASE)命令
终端发出初始化消费(INITIALIZE FOR PURCHASE)命令启动消费交易。

初始化消费(INITIALIZE FOR PURCHASE)命令的命令报文如下:

命令报文数据域如下:

1.2 IC卡处理初始化消费(INITIALIZE FOR PURCHASE)命令

IC卡收到初始化消费(INITIALIZE FOR PURCHASE)命令后,将进行以下操作:
——检查是否支持命令中提供的密钥索引号。如果不支持,则回送状态字“9403”(不支持的密钥索引),但不回送其他数据;
——检查电子存折余额或电子钱包余额是否大于或等于交易金额。如果小于交易金额,则回送状态字“9401”(资金不足),但不回送其他数据。

在通过以上检查之后,IC卡将产生一个伪随机数。使用这个伪随机数,终端将会产生一个会话密钥SESPK。

初始化消费(INITIALIZE FOE PURCHASE)的响应报文如下:

IC卡在处理完初始化消费命令后需要按照要求,将初始化消费的响应报文返回给终端。

1.3 终端产生MAC1

使用伪随机数(ICC)和IC卡回送的电子存折脱机交易序号或电子钱包脱机交易序号,终端的安全存取模块(PSAM)将产生一个过程密钥(SESPK)和一个报文鉴别码(MAC1),供IC卡来验证PSAM的合法性。

1.4 终端发出消费/取现(DEBIT FOR PURCHASE/CASH WITHDRAW)命令

消费/取现(DEBIT FOR PURCHASE/CASH WITHDRAW)命令报文如下

消费/取现(DEBIT FOR PURCHASE/CASH WITHDRAW)命令报文数据域如下:

1.5 IC卡验证MAC1

使用伪随机数(ICC)和IC卡回送的电子存折脱机交易序号或电子钱包脱机交易序号,终端的安全存取模块(PSAM)将产生一个过程密钥(SESPK)和一个报文鉴别码(MAC1),供IC卡来验证PSAM的合法性。

用于产生过程密钥的输入数据如下:

SESPK:伪随机数(ICC)||电子存折脱机交易序号或电子钱包脱机交易序号||终端交易序号的最右两个字节

用SESPK对以下数据进行加密产生MAC1(按所列顺序):

——交易金额;
——交易类型标识;
——终端机编号;
——交易日期(终端);
——交易时间(终端)。

IC卡需要对终端发出的消费取现的命令报文中的MAC1进行验证。验证方式是使用加解密算法产生SESPK,在使用SESPK产生MAC1,验证MAC1和终端发来的MAC1是否一致。

1.6 IC卡进行交易处理

MAC1验证通过后,IC卡将会进行交易处理。

IC卡从电子存折余额或电子钱包余额中扣减消费的金额,并将电子存折或电子钱包脱机交易序号加1。IC卡必须成功地完成以上所有步骤或者一个也不完成。只有余额和序号的更新均成功后,交易明细才可更新。

IC卡产生一个报文鉴别码(MAC2)供PSAM对其进行合法性检查,并通过DEBIT FOR PURCHASE/CASH WITHDRAW命令的响应报文回送终端。

用SESPK对以下数据进行加密产生MAC2:
——交易金额。

消费/取现(DEBIT FOR PURCHASE/CASH WITHDRAW)命令的响应报文如下:

IC卡用密钥DTK左右8位字节异或运算后的结果产生TAC。TAC将被写入终端交易明细,以便于主机进行交易验证。

TAC以明文形式通过消费/取现(DEBIT FOR PURCHASE/CASH WITHDRAW)命令的响应报文从IC卡传送到终端,下面是用来生成TAC的数据:
——交易金额;
——交易类型标识;
——终端机编号;
——终端交易序号;
——交易日期(终端);
——交易时间(终端)。

对于电子存折消费交易和电子钱包消费交易(可选),IC卡将用以下数据组成的一个记录更新交易明细。
——电子存折脱机交易序号或电子钱包脱机交易序号;
——交易金额;
——交易类型标识;
——终端机编号;
——交易日期(终端);
——交易时间(终端)。

1.7 验证MAC2

终端收到IC卡发来的消费交易的响应报文,PSAM要验证MAC2的有效性。MAC2验证的结果被传送到终端以便采取必要的措施。

PBOC2.0中消费交易流程的更多相关文章

  1. PBOC2.0安全系列之—脱机认证之静态数据认证(SDA)

    一,什么是PBOC2.0 2005年3月13日,人民银行发布第55号文,正式颁发了<中国金融集成电路(IC)卡规范>(简称PBOC2.0).该规范补充完善电子钱包/存折应用:增加借/贷记应 ...

  2. Android 7.0 中 ContentProvider 实现原理

    欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:汪毅雄 导语: 本文描述了ContentProvider发布者和调用者这两在Framework层是如何实现的. 作为Android的四大 ...

  3. Fabric 1.0交易流程

    这篇文章详细介绍fabric的交易流程,以图片加文字的形式呈现. Fabric 1.0交易流程 fabric中的所有交易都是通过chaincode执行 1.应用程序客户端通过SDK调用证书服务(CA) ...

  4. QPBOC扩展应用交易流程

    1 Q扩展部分数据 增加3个DGI,分别为:A001,8020,9020 9103中增加DF60(9F38中),DF61 增加DF62,DF63 1.1  A001扩展应用配置 DGI 长度 值(示例 ...

  5. PBOC2.0与3.0的区别

    一.PBOC规范颁布的历程 1997年12月,PBOC V1.0  定义了五个方面的事项  电子钱包/电子存折应用(EP,ED)  卡片和终端的接口  卡片本身的技术指标  应用相关的交易流程  终端 ...

  6. PBOC2.0与PBOC3.0的区别

    2013年2月,中国人民银行发布了<中国金融集成电路(IC)卡规范(V3.0)>(以下简称PBOC3.0),PBOC3.0是在中国人民银行2005年颁布的<中国金融集成电路(IC)卡 ...

  7. PBOC2.0安全系列之—脱机认证之动态数据认证(DDA)

    动态数据认证: 一,什么是动态数据认证(DDA) 由于上篇<< PBOC2.0安全系列之—脱机认证之静态数据认证(SDA)>>已经对静态数据认证部分做了详细的分析,一些基本知识 ...

  8. PBOC电子现金的交易流程

    做一个电子现金的交易: 第一步当然是选中当前的应用, 方法是调用select命令, 传入当前的应用AID号, 如果卡片的状态码返回9000,则表示选中成功. 下面举一个例子: 发送: 00 a4 04 ...

  9. 【转】PBOC3.0和PBOC2.0标准规范异同分析

    2013年2月,中国人民银行发布了<中国金融集成电路(IC)卡规范(V3.0)>(以下简称PBOC3.0),PBOC3.0是在中国人民银行2005年颁布的<中国金融集成电路(IC)卡 ...

随机推荐

  1. 交叉编译fftw

    交叉编译 fftw 使用的源码是 fftw-3.2.2-arm.tar.gz 新塘平台arm ./configure --prefix=/usr/local/fftw_arm --host=arm-l ...

  2. HttpClient, HttpClientHandler, and WebRequestHandler Explained

    原文地址 https://blogs.msdn.microsoft.com/henrikn/2012/08/07/httpclient-httpclienthandler-and-webrequest ...

  3. java16

    1:List的子类(掌握) (1)List的子类特点 ArrayList: 底层数据结构是数组,查询快,增删慢 线程不安全,效率高 Vector: 底层数据结构是数组,查询快,增删慢 线程安全,效率低 ...

  4. InnoDB全文索引:N-gram Parser【转】

    本文来自:http://mysqlserverteam.com/innodb%E5%85%A8%E6%96%87%E7%B4%A2%E5%BC%95%EF%BC%9An-gram-parser/ In ...

  5. OC编程之道-创建对象之原型模式

    一 什么是原型模式?(what) 有些对象的创建代价过大或过于复杂,要是可以重建相同的对象并作轻微的改动,事情会容易的多(效率变高).典型的例子是复制组合结构(eg树形结构),从零开始构建一个树型组合 ...

  6. WPF 实现 DataGrid/ListView 分页控件

    在WPF中,通常会选用DataGrid/ListView进行数据展示,如果数据量不多,可以直接一个页面显示出来.如果数据量很大,2000条数据,一次性显示在一个页面中,不仅消耗资源,而且用户体验也很糟 ...

  7. EventBus 二

    前一篇简单演示了EventBus的onEventMainThread()函数的接收,其实EventBus还有另外有个不同的函数,他们分别是: 1.onEvent2.onEventMainThread3 ...

  8. linux中grep命令详解

    http://jingyan.baidu.com/article/76a7e409e72777fc3b6e158a.html

  9. iSight集成Adams/View:Simcode

    虽然iSight有Adams/View接口,但对Adams的版本有限制.下面使用iSight的simcode,就可以支持任意版本的Adams了. Adams模型如下: 1. 编写cmd文件 file ...

  10. Linux学习总结

    1.软链接和硬链接 ln 命令可用来创建硬链接或是符号链接.它的使用方式有两种. ln file link 用来创建硬链接 ln -s item link 用来创建符号链接,这里的item可以是文件也 ...