【正文】
令對其進行操作?;緮?shù)據(jù)文件的選擇是通過READ命令并采用SFI方式實現(xiàn)的。 命令概述本節(jié)描述了電子存折/電子錢包應(yīng)用(以下簡稱ED/EP應(yīng)用)的命令和響應(yīng)。命令及其響應(yīng)的代碼約定和報文格式在《中國金融集成電路(IC)卡規(guī)范》第1部分:卡片規(guī)范中描述。JR/T 。在應(yīng)用執(zhí)行過程中,卡片總是處于以下狀態(tài)之一,在一種狀態(tài)下,只有某些命令能夠被執(zhí)行??ㄆ哂械臓顟B(tài)如下:── 空閑狀態(tài)── 圈存狀態(tài)── 消費/取現(xiàn)狀態(tài)── 圈提狀態(tài)── 修改狀態(tài)應(yīng)用選擇完成后,卡片首先進入空閑狀態(tài)。當(dāng)卡片從終端接收到一條命令時,它必須首先檢查當(dāng)前狀態(tài)是否允許執(zhí)行該命令。在命令執(zhí)行成功后,卡片將如表1所示進入另一個狀態(tài)(或同一個)。如果命令執(zhí)行不成功,則卡片進入空閑狀態(tài)。表1說明了命令執(zhí)行成功后的狀態(tài)變化。第一行表示命令發(fā)出時卡片的當(dāng)前狀態(tài),第一列表示發(fā)出的命令,整張表給出的是在當(dāng)前狀態(tài)下某個命令執(zhí)行成功后的狀態(tài)。陰影部分表示在卡片處于相應(yīng)狀態(tài)時發(fā)出此命令是無效的。在這種情況下,卡片不執(zhí)行該命令,并向終端回送’6901’狀態(tài)碼,同時卡片的狀態(tài)變?yōu)榭臻e。表1 命令執(zhí)行成功后的狀態(tài)變化狀態(tài)命令空閑圈存消費/取現(xiàn)圈提修改CREDIT FOR LOADN/A空閑N/AN/AN/ADEBIT FOR PURCHASE/CASH WITHDRAWN/AN/A空閑N/AN/ADEBIT FOR UNLOADN/AN/AN/A空閑N/AGET BALANCE空閑圈存消費/取現(xiàn)圈提修改GET TRANSACTION PROVE空閑圈存消費/取現(xiàn)圈提修改INITIALIZE FOR LOAD圈存圈存圈存圈存圈存INITIALIZE FOR PURCHASE消費/取現(xiàn)消費/取現(xiàn)消費/取現(xiàn)消費/取現(xiàn)消費/取現(xiàn)INITIALIZE FOR WITHDRAW消費/取現(xiàn)消費/取現(xiàn)消費/取現(xiàn)消費/取現(xiàn)消費/取現(xiàn)INITIALIZE FOR UNLOAD圈提圈提圈提圈提圈提INITIALIZE FOR UPDATE修改修改修改修改修改UPDATE OVERDRAW LIMITN/AN/AN/AN/A空閑 表2定義了命令報文的類別字節(jié)和指令字節(jié)的編碼,以及ED/EP應(yīng)用使用的參數(shù)P1和P2。表2 命令的類別字節(jié)和指令字節(jié)命 令CLAINSP1P2CHANGE PIN(修改個人密碼)‘80’‘5E’‘01’‘00’CREDIT FOR LOAD(圈存)‘80’‘52’‘00’‘00’DEBIT FOR PURCHASE/CASH WITHDRAW(消費/取現(xiàn))‘80’‘54’‘01’‘00’DEBIT FOR UNLOAD(圈提)‘80’‘54’‘03’‘00’GET BALANCE(讀余額)‘80’‘5C’‘00’‘0X’GET TRANSACTION PROVE(取交易認證)‘80’‘5A’‘00’‘XX’INITIALIZE FOR CASH WITHDRAW(取現(xiàn)初始化)‘80’‘50’‘02’‘01’INITIALIZE FOR LOAD(圈存初始化)‘80‘50’‘00’‘0X’INITIALIZE FOR PURCHASE(消費初始化)‘80’‘50’‘01’‘0X’INITIALIZE FOR UNLOAD(圈提初始化)‘80’‘50’‘05’‘01’INITIALIZE FOR UPDATE(修改初始化)‘80’‘50’‘04’‘01’RELOAD PIN(重裝個人密碼)‘80’‘5E’‘00’‘00’UPDATE OVERDRAW LIMIT(修改透支限額)‘80’‘58’‘00’‘00’ CHANGE PIN命令 定義和范圍CHANGE PIN允許持卡人將當(dāng)前個人密碼修改為新的密碼。當(dāng)CHANGE PIN命令成功完成后,卡片要進行以下操作:── 密碼嘗試計數(shù)器復(fù)位至密碼嘗試次數(shù)的上限;── 將原個人密碼置為新的個人密碼。此命令中的個人密碼(PIN)值以明文方式傳送。命令數(shù)據(jù)中個人密碼(PIN)是以 ’’格式存放的,它不需要整字節(jié)的填充,只有最低有效字節(jié)的低半字節(jié)可能需要填充,且填以’F’。 命令報文CHANGE PIN命令報文見表3:表3 CHANGE PIN命令報文代碼值CLA‘80’INS‘5E’P1‘01’P2‘00’Lc‘05’ ‘0D’Data當(dāng)前PIN ║ ‘FF’ ║ 新的PINLe不用 響應(yīng)報文數(shù)據(jù)域響應(yīng)報文的數(shù)據(jù)域不存在。 響應(yīng)報文的狀態(tài)碼此命令執(zhí)行成功的狀態(tài)碼是’9000’。表4描述了IC卡可能回送的錯誤狀態(tài):表4 CHANGE PIN錯誤狀態(tài)SW1SW2含義‘63’‘Cx’驗證失敗,還剩下X次嘗試機會‘65’‘81’內(nèi)存錯誤‘69’‘83’驗證方法鎖定‘69’‘85’使用條件不滿足‘6A’‘80’數(shù)據(jù)域參數(shù)不正確‘6A’‘86’PP2參數(shù)不正確‘6D’‘00’INS不支持或錯誤‘6E’‘00’CLA不支持或錯誤 CREDIT FOR LOAD命令 定義和范圍CREDIT FOR LOAD命令用于圈存交易。 命令報文CREDIT FOR LOAD命令報文見表5:表5 CREDIT FOR LOAD命令報文代碼值CLA‘80’INS‘52’P1‘00’P2‘00’Lc‘0B’Data見表6Le‘04’ 命令報文數(shù)據(jù)域表6描述了命令報文數(shù)據(jù)域:表6 CREDIT FOR LOAD命令報文數(shù)據(jù)域說明長度(字節(jié))交易日期(主機)4交易時間(主機)3MAC24 響應(yīng)報文數(shù)據(jù)域CREDIT FOR LOAD響應(yīng)報文數(shù)據(jù)域見表7。如果命令執(zhí)行不成功,則只在響應(yīng)報文中回送SW1和SW表7 CREDIT FOR LOAD響應(yīng)報文數(shù)據(jù)域說明長度(字節(jié))TAC4 響應(yīng)報文的狀態(tài)碼此命令執(zhí)行成功的狀態(tài)碼是’9000’。表8描述了IC卡可能回送的錯誤狀態(tài):表8 CREDIT FOR LOAD錯誤狀態(tài)SW1SW2說 明‘65’‘81’內(nèi)存錯誤‘67’‘00’長度錯誤‘69’‘01’命令不接受(無效狀態(tài))‘69’‘85’使用條件不滿足‘6D’‘00’INS不支持或錯誤‘6E’‘00’CLA不支持或錯誤‘93’‘02’MAC無效 DEBIT FOR PURCHASE/CASH WITHDRAW命令 定義和范圍DEBIT FOR PURCHASE/CASH WITHDRAW命令用于消費/取現(xiàn)交易。 命令報文DEBIT FOR PURCHASE/CASH WITHDRAW命令報文見表9。執(zhí)行INITIALIZE FOR PURCHASE或INITIALIZE FOR CASH WITHDRAW后即選擇了消費/取現(xiàn)交易。表9 DEBIT FOR PURCHASE/CASH WITHDRAW命令報文代碼值CLA‘80’INS‘54’P1‘01’P2‘00’Lc‘0F’Data見表10Le‘08’表10描述了命令報文數(shù)據(jù)域:表10 DEBIT FOR PURCHASE/CASH WITHDRAW命令報文數(shù)據(jù)域說明長度(字節(jié))終端交易序號4交易日期(終端)4交易時間(終端)3MAC14 響應(yīng)報文數(shù)據(jù)域 此命令執(zhí)行成功的響應(yīng)報文數(shù)據(jù)域如表11所示。如果命令執(zhí)行不成功,則只在響應(yīng)報文中回送SW1和SW2。表11 DEBIT FOR PURCHASE/CASH WITHDRAW響應(yīng)報文數(shù)據(jù)域說明長度(字節(jié))TAC4MAC24 響應(yīng)報文的狀態(tài)碼 此命令執(zhí)行成功的狀態(tài)碼是’9000’。 表12描述了IC卡可能回送的錯誤狀態(tài):表12 DEBIT FOR PURCHASE/CASH WITHDRAW錯誤狀態(tài)SW1SW2說明‘65’‘81’內(nèi)存錯誤‘67’‘00’長度錯誤‘69’‘01’命令不接受(無效狀態(tài))‘69’‘85’使用條件不滿足‘6D’‘00’INS不支持或錯誤‘6E’‘00’CLA不支持或錯誤‘93’‘02’MAC無效 DEBIT FOR UNLOAD命令 定義和范圍 DEBIT FOR UNLOAD命令用于圈提交易。 命令報文 DEBIT FOR UNLOAD命令報文見表13:表13 DEBIT FOR UNLOAD命令報文代碼值CLA‘80’INS‘54’P1‘03’P2‘00’Lc‘0B’Data見表14Le‘04’ 命令報文數(shù)據(jù)域 表14定義了命令報文數(shù)據(jù)域:表14 DEBIT FOR UNLOAD命令報文數(shù)據(jù)域說明長度(字節(jié))交易日期(主機)4交易時間(主機)3MAC24 響應(yīng)報文數(shù)據(jù)域 此命令執(zhí)行成功的響應(yīng)報文數(shù)據(jù)域如表15所示。如果命令執(zhí)行不成功,則只在響應(yīng)報文中回送SW1和SW2。表15 DEBIT FOR UNLOAD響應(yīng)報文數(shù)據(jù)域說明長度(字節(jié))MAC34 響應(yīng)報文的狀態(tài)碼 此命令執(zhí)行成功的狀態(tài)碼是’9000’。表16描述了IC卡可能回送的錯誤狀態(tài):表16 DEBIT FOR UNLOAD錯誤狀態(tài)SW1SW2說明‘65’‘81’內(nèi)存錯誤‘67’‘00’長度錯誤‘69’‘01’命令不接受(無效狀態(tài))‘6D’‘00’INS不支持或錯誤‘6E’‘00’CLA不支持或錯誤‘93’‘02’MAC無效 GET BALANCE命令 定義和范圍 GET BALANCE命令用于讀取電子存折或電子錢包余額,實現(xiàn)查詢余額交易。讀取電子存折余額需驗證個人密碼(PIN)。 命令報文 GET BALANCE命令報文見表17:表17 GET BALANCE命令報文代碼值CLA‘80’INS‘5C’P1‘00’P2‘01’ 或 ‘02’; ‘01’用于ED,‘02’用于EP其他值保留LC不存在Data不存在Le‘04’ 響應(yīng)報文數(shù)據(jù)域 命令執(zhí)行成功的響應(yīng)報文數(shù)據(jù)域見表18。如果命令執(zhí)行不成功,則只在響應(yīng)報文中回送SW1和SW2。表18 GET BALANCE響應(yīng)報文數(shù)據(jù)域說明長度(字節(jié))ED余額或EP余額4 響應(yīng)報文的狀態(tài)碼 此命令執(zhí)行成功的狀態(tài)碼是’9000’。表19描述了IC卡可能回送的錯誤狀態(tài):表19 GET BALANCE錯誤狀態(tài)SW1SW2說明‘65’‘81’內(nèi)存錯誤‘69’‘85’使用條件不滿足‘69’‘82’安全條件不滿足‘6A’‘86’PP2參數(shù)不正確‘6D’‘00’INS不支持或錯誤‘6E’‘00’CLA不支持或錯誤 GET TRANSACTION PROVE命令 定義和范圍GET TRANSACTION PROVE 命令提供了一種在交易處理過程中拔出并重插卡后卡片的恢復(fù)機制。 命令報文GET TRANSACTION PROVE命令報文見表20:表20 GET TRANSACTION PROVE命令報文代碼值CLA‘80’INS‘5A’P1‘00’P2要取的MAC或/和TAC所對應(yīng)的交易類型標(biāo)識。Lc‘02’Data見表21Le‘08’ 命令報文數(shù)據(jù)域表21定義了命令報文數(shù)據(jù)域:表21 GET TRANSACTION PROVE命令報文數(shù)據(jù)域說明長度(字節(jié))要取的MAC或/和TAC所對應(yīng)的ED/EP聯(lián)機或脫機交易序號。2如果命令中指定的交易類型標(biāo)識和ED/EP聯(lián)機或脫機交易序號對應(yīng)的MAC或TAC可用,則響應(yīng)報文數(shù)據(jù)域見表22:表22 GET TRANSACTION PROVE響應(yīng)報文數(shù)據(jù)域說明長度MAC4TAC4 響應(yīng)報文的狀態(tài)碼此命令執(zhí)行成功的狀態(tài)碼是’9000’。表23描述了IC卡可能回送的錯誤狀態(tài):表23 GET TRANSACTION PROVE錯誤狀態(tài)SW1SW2含義‘65’‘81’內(nèi)存錯誤‘69’‘85’使用條件不滿足‘6D’‘00’INS不支持或錯誤‘6E’‘00’C