取现交易允许持卡人从电子存折中提取现金。这种交易必须在金融终端上进行,可以脱机处理。
使用电子存折进行取现交易以前需要验证持卡人个人密码PIN,只有电子存折应用支持取现交易。
取现交易流程如下图所示:
1、发出INITIALIZE FOR CASH WITHDRAW命令
终端向卡片发出INITIALIZE FOR CASH WITHDRAW命令启动取现交易。
2、处理INITIALIZE FOR CASH WITHDRAW命令
* 检查IC卡是否支持命令中包含的密钥索引号。如果不支持的话,返回状态码0x9403,且不返回其他数据,同时中止命令执行。
* 检查命令中包含的交易金额是否超过电子存折余额。如果超过的话,返回状态码0x9401且不返回其他数据,同时中止命令执行。
通过以上检查以后,IC卡生成一个伪随机数ICC和过程密钥SESPK。过程密钥SESPK是用于电子存折的取现交易,SESPK用密钥DPK分散得到。
IC卡回送INITIALIZE FOR CASH WITHDRAW命令的响应报文给终端。如果IC卡回送的状态码不是0x9000的话,终端将中止交易。
3、产生MAC1
终端收到INITIALIZE FOR CASH WITHDRAW 命令响应报文以后,利用IC卡回送的伪随机数和脱机交易序号,在终端生成和IC卡中一样的SESPK,并计算一个报文鉴别码MAC1。
MAC1的计算方法是用SESPK对以下数据按顺序链接进行加密计算而得。
* 交易金额
* 交易类型标识
* 终端机编号
* 交易日期(终端)
* 交易时间(终端)
4、发出 DEBIT FOR CASH WITHDRAW 命令
终端向IC卡发出DEBIT FOR CASH WITHDRAW 命令。
5、验证MAC1
IC卡收到终端发来的DEBIT FOR CASH WITHDRAW命令后,IC卡必须确认MAC1的有效性。
* 如果MAC1有效的话,继续进行下一步骤;
* 如果MAC1无效的话,向终端回送状态码0x9302,终端进入自定义的错误处理流程。
6、交易处理
IC卡将电子存折脱机交易序号加1,并从卡上的电子存折余额中扣减交易金额。
IC卡计算MAC2。MAC2的计算用SESPK对交易金额进行加密计算产生。
IC卡计算TAC。TAC的计算用DTK左右8Byte异或运算的结果直接对以下数据顺序链接后进行加密计算产生:
* 交易金额。
* 交易类型标识。
* 终端机编号。
* 终端交易序号
* 交易日期(终端)。
* 交易时间(终端)。
IC卡用以下数据按顺序链接组成一个记录来更新交易明细:
* 电子存折脱机交易序号。
* 交易金额。
* 交易类型标识。
* 终端机编号
* 交易日期(终端)
* 交易时间(终端)
IC卡必须全部成功完成以上所有步骤或者一个都不进行,如果以上某个操作没有成功的话,对明细文件的更新也不进行。
7、验证MAC2
IC卡回送DEBIT FOR CASH WITHDRAW命令的响应报文给终端,响应报文中包含MAC2。终端需要校验MAC2的有效性。
* 如果MAC2有效,交易正常结束,终端进行实际的取现操作。
* 如果MAC2无效,终端进入自定义的错误处理流程。
取现交易结束。
文章评论(0条评论)
登录后参与讨论