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验证的结果被传送到终端以便采取必要的措施。

原文地址:https://www.cnblogs.com/cuglkb/p/5922808.html