Posted on 2008-11-20 11:46
Prayer 閱讀(2281)
評論(1) 編輯 收藏 引用 所屬分類:
金融相關
通過圈存交易,持卡人可將其在銀行相應賬戶上的資金劃入電子存折或電子錢包中。這種交易必須在金融終端上聯機進行。進行圈存交易以前需要驗證持卡人個人密碼PIN 。交易流程如下圖所示:

1、發出INITIALIZE FOR LOAD命令
終端向卡片發出INITIALIZE FOR LOAD命令啟動圈存交易。
2、處理INITIALIZE FOR LOAD命令
IC卡收到INITIALIZE FOR LOAD命令以后,將進行如下檢查:
* 檢查IC卡是否支持命令中包含的密鑰索引號。如果不支持的話,返回狀態碼0x9403,且不返回其他數據,同時中止命令執行。
* 通過以上檢查以后,IC卡生成一個偽隨機數ICC,過程密鑰SESLK和一個報文鑒別碼MAC1。
過程密鑰SESLK是用于電子存折或電子錢包的圈存交易,SESLK用密鑰DLK分散得到。MAC1的計算方法是用SESLK對以下數據按順序鏈接進行加密計算而得。
* 電子存折或者電子錢包余額。
* 交易金額。
* 交易類型標識。
* 終端機編號。
IC卡回送INITIALIZE FOR LOAD命令的響應報文給終端。如果IC卡回送的狀態碼不是0x9000的話,終端將中止交易。
3、驗證MAC1
終端收到INITIALIZE FOR LOAD命令響應報文以后,將交易數據發送給發卡方主機。主機生成和IC卡中一樣的SESLK,驗證MAC1的有效性。
* 如果MAC1有效的話,主機繼續進行下一步驟;
* 如果MAC1無效的話,主機將告知終端,終端中止交易進入自定義的錯誤處理流程。
4、交易處理
在確認能夠進行圈存交易以后,主機從持卡人在銀行的響應賬戶中扣減圈存金額。主機將生成一個報文鑒別碼MAC2。MAC2是用SESLK對以下數據按順序鏈接進行加密計算得到:
* 交易金額
* 交易類型標識
* 終端機編號
* 交易日期(主機)
* 交易時間(主機)
成功進行圈存交易后,主機將電子存折聯機交易序號或者電子錢包聯機交易序號加1,并向終端發送一個圈存交易接受報文,其中包含了MAC2、交易日期(主機)和交易時間(主機)。
5、發出CREDIT FOR LOAD命令
終端收到主機的圈存交易接受報文后,向IC卡發出CREDIT FOR LOAD命令,以更新卡上的電子存折或電子錢包余額。
6、驗證MAC2
IC卡收到終端發來的CREDIT FOR LOAD命令后,IC卡必須確認MAC2的有效性。
* 如果MAC2有效的話,繼續進行下一步驟。
* 如果MAC2無效的話,向終端回送狀態碼0x9302,終端進入自定義的錯誤處理流程。
7、交易處理
IC卡將電子存折聯機交易序號或電子錢包聯機交易序號加1,并且將交易金額加在電子存折或電子錢包的余額上。
IC卡用以下數據按順序鏈接組成一個記錄來更新標準交易明細:
* 電子存折聯機交易序號或電子錢包聯機交易序號。
* 交易金額。
* 交易類型標識。
* 終端機編號
* 交易日期(主機)
* 交易時間(主機)
IC卡計算TAC。TAC的計算用DTK左右8Byte異或運算的結果直接對以下數據順序鏈接后進行加密計算產生:
* 電子存折余額或電子錢包余額。
* 電子存折聯機交易序號或電子錢包聯機交易序號(加1前)。
* 交易金額。
* 交易類型標識。
* 終端機編號。
* 交易日期(主機)。
* 交易時間(主機)。
IC卡必須全部成功完成以上所有步驟或者一個都不進行,如果以上某個操作沒有成功的話,對明細文件的更新也不進行。
8、返回確認
IC卡回送CREDIT FOR LOAD命令的響應報文給終端,響應報文中包含TAC。終端保存TAC值,可以不馬上驗證TAC。
圈存交易結束。