原创 取现交易流程(图)

2008-10-20 13:54 3259 10 10 分类: 软件与OS
取现交易允许持卡人从电子存折中提取现金。这种交易必须在金融终端上进行,可以脱机处理。

    使用电子存折进行取现交易以前需要验证持卡人个人密码PIN,只有电子存折应用支持取现交易。

    取现交易流程如下图所示:

              08011801dev323.gif

  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条评论)

登录后参与讨论
我要评论
0
10
关闭 站长推荐上一条 /2 下一条