PBOC2.0中消费交易流程
消费交易允许持卡人使用电子存折或电子钱包的余额进行购物或获取服务。此交易可以在销售点终端(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中消费交易流程的更多相关文章
- PBOC2.0安全系列之—脱机认证之静态数据认证(SDA)
一,什么是PBOC2.0 2005年3月13日,人民银行发布第55号文,正式颁发了<中国金融集成电路(IC)卡规范>(简称PBOC2.0).该规范补充完善电子钱包/存折应用:增加借/贷记应 ...
- Android 7.0 中 ContentProvider 实现原理
欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:汪毅雄 导语: 本文描述了ContentProvider发布者和调用者这两在Framework层是如何实现的. 作为Android的四大 ...
- Fabric 1.0交易流程
这篇文章详细介绍fabric的交易流程,以图片加文字的形式呈现. Fabric 1.0交易流程 fabric中的所有交易都是通过chaincode执行 1.应用程序客户端通过SDK调用证书服务(CA) ...
- QPBOC扩展应用交易流程
1 Q扩展部分数据 增加3个DGI,分别为:A001,8020,9020 9103中增加DF60(9F38中),DF61 增加DF62,DF63 1.1 A001扩展应用配置 DGI 长度 值(示例 ...
- PBOC2.0与3.0的区别
一.PBOC规范颁布的历程 1997年12月,PBOC V1.0 定义了五个方面的事项 电子钱包/电子存折应用(EP,ED) 卡片和终端的接口 卡片本身的技术指标 应用相关的交易流程 终端 ...
- PBOC2.0与PBOC3.0的区别
2013年2月,中国人民银行发布了<中国金融集成电路(IC)卡规范(V3.0)>(以下简称PBOC3.0),PBOC3.0是在中国人民银行2005年颁布的<中国金融集成电路(IC)卡 ...
- PBOC2.0安全系列之—脱机认证之动态数据认证(DDA)
动态数据认证: 一,什么是动态数据认证(DDA) 由于上篇<< PBOC2.0安全系列之—脱机认证之静态数据认证(SDA)>>已经对静态数据认证部分做了详细的分析,一些基本知识 ...
- PBOC电子现金的交易流程
做一个电子现金的交易: 第一步当然是选中当前的应用, 方法是调用select命令, 传入当前的应用AID号, 如果卡片的状态码返回9000,则表示选中成功. 下面举一个例子: 发送: 00 a4 04 ...
- 【转】PBOC3.0和PBOC2.0标准规范异同分析
2013年2月,中国人民银行发布了<中国金融集成电路(IC)卡规范(V3.0)>(以下简称PBOC3.0),PBOC3.0是在中国人民银行2005年颁布的<中国金融集成电路(IC)卡 ...
随机推荐
- 练习题(登陆-进度条-微信接口判断qq-微信接口判断列车时刻表-)
1.写一个用户的登陆注册的界面,用户的密码用hashlib加密存在文件中,登陆时候,用户的密码要和文件中的密码一致才行 def sha(password): #加密函数 passwd = hashli ...
- python之路六
面向对象 引言 提到面向对象,总是离不开几个重要的术语:多态(Polymorphism),继承(Inheritance)和封装(Encapsulation).Python也是一种支持OOP的动态语言, ...
- WebStrom快捷键
WebStorm 是 JetBrains 推出的一款商业的 JavaScript 开发工具 任何一个编辑器都需要保存(ctrl + s),这是所有win平台上编辑类软件的特点,但是webstorm编辑 ...
- java程序打包成jar
1. 建立文件夹:proj,在该文件夹下建立3个子文件夹:lib,src 2. 在lib文件夹中放置依赖的jar包 3. 在src中放置类文件:com.cnjava.demo.Main.java 4. ...
- java16
1:List的子类(掌握) (1)List的子类特点 ArrayList: 底层数据结构是数组,查询快,增删慢 线程不安全,效率高 Vector: 底层数据结构是数组,查询快,增删慢 线程安全,效率低 ...
- 异或之(bzoj 3689)
Description 给定n个非负整数A[1], A[2], --, A[n].对于每对(i, j)满足1 <= i < j <= n,得到一个新的数A[i] xor A[j],这 ...
- char 型二维数组
char FutureFunc[][16] = {"XMA","ZIG","PEAK","PEAKBARS"," ...
- ASP.NET知识总结(6.一般处理程序动态处理图片(验证码、水印、缩略图))
->使用GDI+完成图片的处理,需要引入程序集System.Drawing ->GDI+的基本处理模型 <1>创建画布Bitmap <2>创建画图工具对象Graph ...
- B树(B-Tree)的由来、数据结构、基本操作以及数据库索引的应用
B树是为磁盘存储而专门设计的一类平衡搜索树,B树的高度仅随着它所包含的节点数按对数增长,不过因为单个节点可以包含多个关键字,所以对数的底数可以比较大,实际应用中一般是50~2000,给个直观的数字,一 ...
- ORACLE用户创建&删除
●sqlplus登陆sqlplus sys/isc@testgmmc as sysdba●创建用户create user testpoi3 IDENTIFIED by iscaccount unloc ...