專利名稱:一種對(duì)電子錢包進(jìn)行復(fù)合圈存的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全領(lǐng)域,特別涉及一種對(duì)CPU卡內(nèi)的電子錢包進(jìn)行復(fù)合圈存 的方法。
背景技術(shù):
CPU卡的芯片內(nèi)含有一個(gè)微處理器,它的功能相當(dāng)于一臺(tái)微型計(jì)算機(jī),并且 CPU卡內(nèi)包括中央處理器(CPU)、只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、電可 擦除可編程只讀存儲(chǔ)器(EEPROM)等,具有信息量大、防偽安全性高、可脫機(jī)作業(yè),可 多功能開發(fā)等優(yōu)點(diǎn)。CPU卡采用強(qiáng)大而穩(wěn)定的安全控制器,增強(qiáng)了卡片的安全性,并且 CPU卡所特有的內(nèi)外部認(rèn)證機(jī)制以及以金融IC卡規(guī)范為代表的專用認(rèn)證機(jī)制,能夠完全 保證交易的合法性和安全性,然后CPU卡的應(yīng)用防火墻功能可以保障同一張卡中不同應(yīng) 用的安全獨(dú)立性,同時(shí),CPU卡的大容量存儲(chǔ)空間又可以滿足預(yù)期的大金額消費(fèi)應(yīng)用所 要求的更多客戶信息的存儲(chǔ)。在現(xiàn)有技術(shù)中,CPU卡中的電子錢包可以實(shí)現(xiàn)普通的圈存、消費(fèi)/取現(xiàn)、圈 提、更新透支限額等基本交易功能,但是在遇到特殊的應(yīng)用時(shí),如在需要對(duì)不同的充值 金額進(jìn)行分級(jí)打折優(yōu)惠的促銷性應(yīng)用時(shí),如商場(chǎng)、超市、餐館、健身會(huì)所等機(jī)構(gòu)的會(huì)員 卡,則現(xiàn)有的電子錢包的普通的圈存操作和消費(fèi)操作不能滿足這種應(yīng)用。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)中的不足,本發(fā)明提供了一種對(duì)電子錢包進(jìn)行復(fù)合圈存的方 法,所述方法包括CPU卡進(jìn)入終端的非接觸式感應(yīng)區(qū)內(nèi),所述CPU卡上電并初始化;接收所述終端發(fā)送的復(fù)合圈存初始化命令,讀取所述復(fù)合圈存初始化命令中的 數(shù)據(jù)并保存,進(jìn)行復(fù)合圈存初始化操作,其中所述數(shù)據(jù)中包括交易金額;接收所述終端發(fā)送的更新復(fù)合應(yīng)用專用文件命令,查找復(fù)合應(yīng)用專用文件;將預(yù)先約定的數(shù)據(jù)寫入所述復(fù)合應(yīng)用專用文件的存儲(chǔ)空間中,替換原有內(nèi)容;接收所述終端發(fā)送的復(fù)合圈存命令,讀取所述復(fù)合圈存命令中的數(shù)據(jù)并保存;按照預(yù)先約定的算法對(duì)所述交易金額與所述復(fù)合應(yīng)用專用文件中的數(shù)據(jù)進(jìn)行運(yùn) 算,得到新金額,將所述得到的新金額加到電子錢包的余額上,得到新余額,復(fù)合圈存 操作結(jié)束。本發(fā)明的有益效果在于本發(fā)明提供了一種對(duì)電子錢包進(jìn)行復(fù)合圈存的方法, 通過(guò)本發(fā)明提供的方法使整個(gè)交易過(guò)程更安全,且防止了采取非法的手段去修改CPU卡 中的復(fù)合應(yīng)用專用文件,進(jìn)一步地簡(jiǎn)化了分級(jí)打折優(yōu)惠操作的實(shí)現(xiàn),只需要在圈存時(shí)對(duì) 復(fù)合應(yīng)用專用文件進(jìn)行設(shè)定即可,并且方便管理,從而節(jié)省了管理的成本。
圖1為本實(shí)施例提供的一種對(duì)電子錢包進(jìn)行復(fù)合圈存的方法的流程圖;圖2為本實(shí)施例提供的一種對(duì)電子錢包進(jìn)行復(fù)合圈存的方法的詳細(xì)流程圖;圖3為本實(shí)施例提供的一種對(duì)電子錢包進(jìn)行消費(fèi)的方法的詳細(xì)流程圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施 方式做進(jìn)一步地詳細(xì)描述。為了簡(jiǎn)化分級(jí)打折優(yōu)惠操作,在復(fù)合圈存時(shí)對(duì)復(fù)合應(yīng)用專用文件進(jìn)行設(shè)定,本 發(fā)明實(shí)施例提供了一種對(duì)電子錢包進(jìn)行復(fù)合圈存的方法,參見圖1,該方法內(nèi)容包括Si: CPU卡進(jìn)入終端的非接觸式感應(yīng)區(qū)內(nèi),所述CPU卡上電并初始化;S2接收所述終端發(fā)送的復(fù)合圈存初始化命令,讀取所述復(fù)合圈存初始化命令 中的數(shù)據(jù)并保存,進(jìn)行復(fù)合圈存初始化操作,其中所述數(shù)據(jù)中包括交易金額;S3接收所述終端發(fā)送的更新復(fù)合應(yīng)用專用文件命令,查找復(fù)合應(yīng)用專用文件;S4將預(yù)先約定的數(shù)據(jù)寫入所述復(fù)合應(yīng)用專用文件的存儲(chǔ)空間中,替換原有內(nèi) 容;S5接收所述終端發(fā)送的復(fù)合圈存命令,讀取所述復(fù)合圈存命令中的數(shù)據(jù)并保 存;S6 按照預(yù)先約定的算法對(duì)所述交易金額與所述復(fù)合應(yīng)用專用文件中的數(shù)據(jù)進(jìn) 行運(yùn)算,得到新金額,將所述得到的新金額加到電子錢包的余額上,得到新余額,復(fù)合 圈存操作結(jié)束。為了對(duì)本發(fā)明實(shí)施例提供的方法進(jìn)行詳細(xì)說(shuō)明,請(qǐng)參見如下實(shí)施例實(shí)施例本發(fā)明實(shí)施例提供了一種對(duì)電子錢包進(jìn)行復(fù)合圈存的方法,在本實(shí)施例中,以 CPU卡內(nèi)的電子錢包為例進(jìn)行說(shuō)明,CPU卡內(nèi)的電子錢包除了具有普通電子錢包的基本 交易功能外,還具有支持復(fù)合應(yīng)用的錢包的所有交易功能,相應(yīng)地也支持復(fù)合圈存的功 能,并且對(duì)CPU卡內(nèi)電子錢包的復(fù)合圈存操作是在CPU終端進(jìn)行的,其中進(jìn)行復(fù)合圈存 操作時(shí),按照預(yù)先約定的規(guī)則對(duì)交易金額與復(fù)合專用文件中規(guī)定的值進(jìn)行運(yùn)算,得到新 金額,并將得到的新金額加到電子錢包的余額上,完成復(fù)合圈存操作,相應(yīng)地,在消費(fèi) 時(shí),則按照該余額進(jìn)行消費(fèi)。參見圖2,一種對(duì)CPU卡內(nèi)的電子錢包進(jìn)行復(fù)合圈存的方法,具體實(shí)現(xiàn)步驟如 下步驟101 CPU卡進(jìn)入終端的非接觸式感應(yīng)區(qū)內(nèi),CPU卡上電并初始化;步驟102 接收終端發(fā)送的復(fù)合圈存初始化命令I(lǐng)NITIALIZE FOR CAPP
LOAD,讀取命令中包含的數(shù)據(jù)并保存;在本實(shí)施例中,復(fù)合圈存初始化命令I(lǐng) NITIALIZE FOR CAPP LOAD用于初始化 復(fù)合圈存交易,其中INITIALIZE FOR CAPP LOAD命令報(bào)文分成命令頭+命令體,即 為(CLA+INS+Pl+P2) + (Lc+Data+Le);其中,CLA+INS+P1+P2為命令頭,Lc+Data+Le為命令體,命令頭為命令的編碼,命令頭中的CLA為指令類別,INS為指令代碼,Pl和P2為指令參數(shù);命令體中的 Lc為命令體內(nèi)Data中數(shù)據(jù)的長(zhǎng)度,Data為INITIALIZE FORCAPP LOAD命令中的數(shù)據(jù), Le是期望的應(yīng)答APDU數(shù)據(jù)字段的最大字節(jié)數(shù);本實(shí)施例中I NITIALIZE FOR CAPP LOAD命令Data中包含的數(shù)據(jù)具體為密鑰
索引號(hào)、交易金額和終端機(jī)編號(hào);具體地,在本實(shí)施例中,接收到的I NITIALIZE FOR CAPP LOAD命令具體為 80 50 06 02 OB 02 00 00 03 E8 00 00 00 00 00 01 10,其中 80 為 CLA,50 為 INS,06 為 Pl,定義為復(fù)合圈存初始化的標(biāo)識(shí),02為P2,定義為電子錢包的標(biāo)識(shí),OB為L(zhǎng)c,02為 Data中的密鑰索引號(hào),00 00 03 E8為Data中的交易金額,00 00 00 00 00 01為Data中的
終端機(jī)編號(hào),10為L(zhǎng)e。步驟103 檢查自身是否支持INITIALIZE FOR CAPP LOAD命令中包含的密鑰
索引號(hào),若不支持,則執(zhí)行步驟104,若支持,則執(zhí)行步驟105;步驟104:向終端返回狀態(tài)碼0x9403,同時(shí)終止執(zhí)行復(fù)合圈存初始化操作;步驟105 生成一個(gè)四字節(jié)的偽隨機(jī)數(shù)和一個(gè)過(guò)程密鑰;在本實(shí)施例中,生成過(guò)程密鑰的方法具體為將上述偽隨機(jī)數(shù)、電子錢包聯(lián)機(jī)交易序號(hào)和‘8000’順序鏈接,再利用圈存子 密鑰DLK對(duì)鏈接后得到的數(shù)據(jù)進(jìn)行加密,得到的加密后的數(shù)據(jù)即為過(guò)程密鑰。步驟106 利用上述過(guò)程密鑰計(jì)算得到第一報(bào)文鑒別碼MACl ;在本實(shí)施例中,利用過(guò)程密鑰計(jì)算得到第一報(bào)文鑒別碼MACl的方法具體為將交易前的電子錢包的余額、交易金額、交易類型標(biāo)識(shí)和終端機(jī)編號(hào)順序鏈 接,再利用過(guò)程密鑰對(duì)鏈接后的數(shù)據(jù)進(jìn)行加密,得到的加密后的數(shù)據(jù)的前四個(gè)字節(jié)即為 第一報(bào)文鑒別碼MACl。 步驟107 將INITIALIZE FOR CAPP LOAD命令的響應(yīng)報(bào)文返回給終端;其中,INITIALIZEFOR CAPP LOAD 命令的響應(yīng)報(bào)文由 Data+swl+sw2 組成, 當(dāng)INITIALIZE FOR CAPP LOAD命令執(zhí)行成功時(shí),則響應(yīng)報(bào)文中的狀態(tài)碼sw 1和sw2為
‘9000’,相應(yīng)地,響應(yīng)報(bào)文數(shù)據(jù)域Data中包含的數(shù)據(jù)具體為交易前的CPU電子錢包 的余額、CPU錢包的聯(lián)機(jī)交易序號(hào)、密鑰版本號(hào)、算法標(biāo)識(shí)、偽隨機(jī)數(shù)和MAC1,當(dāng)I NITIALIZE FOR CAPP LOAD命令執(zhí)行不成功時(shí),則響應(yīng)報(bào)文中的狀態(tài)碼swl和sw2不 為‘9000’,并且也不存在數(shù)據(jù)域Data;具體地,在本實(shí)施例中,INITIALIZE FOR CAPP LOAD命令的響應(yīng)報(bào)文具體 為00 00 00 00 00 01 02 03 01 02 03 04 00 01 Bl OA 90 00。步驟108:接收終端發(fā)送的更新復(fù)合應(yīng)用專用文件的命令UPDATE CAPP DATACACHE ;在本實(shí)施例中,更新復(fù)合應(yīng)用專用文件的命令UPDATE CAPP DATA CACHE用
于更新復(fù)合應(yīng)用專利文件中的數(shù)據(jù);復(fù)合應(yīng)用專用文件由文件頭和文件體組成,文件頭具體包括2個(gè)字節(jié)的FILE_ ID、1個(gè)字節(jié)的FILE TYPE、2個(gè)字節(jié)的FILE SIZE、1個(gè)字節(jié)的AC1、1個(gè)字節(jié)的AC2和 2個(gè)字節(jié)的RFU,其中當(dāng)FILE TYPE為00時(shí),表示該文件為二進(jìn)制文件,當(dāng)FILE TYPE 為01時(shí),表示該文件為定長(zhǎng)記錄文件,當(dāng)FILE TYPE為02時(shí),表示該文件為變長(zhǎng)記錄文件,當(dāng)FILE TYPE為03時(shí),表示該文件為循環(huán)文件,當(dāng)FILE TYPE為05時(shí),表示該文
件為密鑰文件,相應(yīng)地,二進(jìn)制文件對(duì)應(yīng)的FILE SEE為文件大小,定長(zhǎng)記錄文件對(duì)應(yīng)的 FILE SIZE為記錄條數(shù)和記錄長(zhǎng)度,變長(zhǎng)記錄文件對(duì)應(yīng)的FILE SIZE為記錄條數(shù)和記錄最 大長(zhǎng)度,循環(huán)文件對(duì)應(yīng)的FILE SIZE為記錄條數(shù)和記錄長(zhǎng)度,密鑰文件對(duì)應(yīng)的FILE SIZE 為記錄條數(shù)和記錄長(zhǎng)度,并且ACl為讀文件權(quán)限,AC2為寫文件權(quán)限;文件體中為復(fù)合 應(yīng)用專用文件的數(shù)據(jù);具體地,在本實(shí)施例中,復(fù)合應(yīng)用專用文件具體為二進(jìn)制文件,則FILE TYPE 為00,且FILE SIZE為文件大小,具體為000B,文件體中的內(nèi)容為空;進(jìn)一步地,UPDATECAPP DATA CACHE 命令報(bào)文由 CLA+INS+Pl+P2+Lc+Data 組成,本實(shí)施例中,UPDATE CAPP DATA CACHE 命令具體為80 D6 92 B104 00 01 20 00,其中,80 為 CLA,D6 為 INS,92 為 Pl,Bl 為 P2,04 為 Lc,00 01 20 00 為 Data ;并且UPDATE CAPP DATA CACHE命令的數(shù)據(jù)域Data中的數(shù)據(jù)為要寫入復(fù)合應(yīng) 用專用文件的新數(shù)據(jù),其中,由于復(fù)合應(yīng)用專用文件的具體應(yīng)用可以由發(fā)卡方自定義, 因此數(shù)據(jù)域中的數(shù)據(jù)也可以是自定義的,如在本實(shí)施例中復(fù)合應(yīng)用專用文件可以自定義 為費(fèi)率文件,則相應(yīng)地,數(shù)據(jù)域中的數(shù)據(jù)具體為費(fèi)率值,在本實(shí)施例中具體定義費(fèi)率值 為 120% ;相應(yīng)地,當(dāng)定義費(fèi)率值為120%時(shí),UPDATE CAPP DATA CACHE命令中的數(shù)據(jù) 可以不是120%,可以是83.3%,還可以是20%,或者,UPDATE CAPP DATA CACHE
命令的數(shù)據(jù)中可以不包括費(fèi)率值,而由CPU卡對(duì)復(fù)合圈存初始化命令中包含的交易金額 進(jìn)行判斷,根據(jù)交易金額生成一個(gè)費(fèi)率值,將這個(gè)生成的費(fèi)率值寫入復(fù)合應(yīng)用專用文件 中,如當(dāng)復(fù)合圈存初始化命令中的交易金額為800元時(shí),即小于預(yù)先約定的下限時(shí),具 體如為2000時(shí),則生成一個(gè)費(fèi)率值90%,或者111.1%,或者11.1%,或者100元,當(dāng)復(fù) 合圈存初始化命令中的交易金額為5000元時(shí),即在預(yù)先約定的下限與上限之間時(shí),具體 如為2000到6000時(shí),則生成一個(gè)數(shù)據(jù)80%,或者125%,或者25%,或者600元,當(dāng)復(fù) 合圈存初始化命令中的交易金額為8000元時(shí),即大于預(yù)先約定的下限時(shí),具體如為6000 時(shí),則生成一個(gè)數(shù)據(jù)75%,或者133%,或者33%,或者2000元等等。步驟109 判斷接收到的UPDATE CAPP DATA CACHE命令中是否存在SFI域, 若存在,則執(zhí)行步驟110,若不存在,則執(zhí)行步驟111;在本實(shí)施例中,判斷UPDATE CAPP DATA CACHE命令中是否存在SFI域具體 為:判斷UPDATE CAPP DATA CACHE命令中的Pl的高三位是否為100,若是,則表示 命令中存在SFI域,PI的低5位即為SFI域的值,否則,表示命令中不存在SFI域;具體地,本實(shí)施例中UPDATE CAPP DATA CACHE命令中的Pl為92,表示Pl 的高三位為100,存在SFI域。步驟110:查找CPU卡當(dāng)前應(yīng)用下是否存在一個(gè)文件的SFI值與UPDATE CAPPDATACACHE命令中的SFI值相同,若不存在,則執(zhí)行步驟111,若存在,則執(zhí)行 步驟112 ;步驟111:向終端返回狀態(tài)碼0x6A82,同時(shí)終止操作;步驟112:將步驟110中查找得到的文件作為復(fù)合應(yīng)用專用文件,并檢查 UPDATE CAPP DATA CACHE命令中的數(shù)據(jù)域的長(zhǎng)度是否大于復(fù)合應(yīng)用專用文件的長(zhǎng)度,若大于,則執(zhí)行步驟113,若不大于,則執(zhí)行步驟114;在本實(shí)施例中,由于復(fù)合應(yīng)用專用文件是二進(jìn)制文件,所以復(fù)合應(yīng)用專用文件 的長(zhǎng)度具體為FILE SIZE的值,具體即為判斷UPDATE CAPP DATA CACHE命令中Lc 的值是否大于復(fù)合應(yīng)用專用文件FILE SIZE的值,由于本實(shí)施例中UPDATECAPP DATA CACHE命令中Lc的值為04,F(xiàn)ILE SIZE的值為000B,所以命令中的數(shù)據(jù)域的長(zhǎng)度不大
于復(fù)合應(yīng)用專用文件的長(zhǎng)度。步驟113:向終端返回狀態(tài)碼0x6A84,同時(shí)終止操作;步驟114:將UPDATE CAPP DATA CACHE命令中的數(shù)據(jù)域中的數(shù)據(jù)寫入復(fù)合
應(yīng)用專用文件中,替換該復(fù)合應(yīng)用專用文件中的原有內(nèi)容;在本實(shí)施例中,具體將費(fèi)率值120%寫入該復(fù)合應(yīng)用專用文件中,替換其原有內(nèi) 容;由于本實(shí)施例中復(fù)合應(yīng)用專用文件中的原有內(nèi)容為空,因此直接將 UPDATECAPP DATA CACHE命令中的數(shù)據(jù)域中的00 01 20 00寫入復(fù)合應(yīng)用專用文件中即 可;相應(yīng)地,當(dāng)UPDATE CAPP DATA CACHE命令中的費(fèi)率值為83.3%時(shí),則寫入 復(fù)合應(yīng)用專用文件中的數(shù)據(jù)具體為83.3%,當(dāng)UPDATE CAPP DATA CACHE命令中的費(fèi) 率值為20%時(shí),則寫入復(fù)合應(yīng)用專用文件中的數(shù)據(jù)具體為20% ;或者,當(dāng)UPDATE CAPP DATA CACHE命令的數(shù)據(jù)中可以不包括費(fèi)率值,而
由CPU卡對(duì)復(fù)合圈存初始化命令中包含的交易金額進(jìn)行判斷,按照預(yù)先約定的規(guī)則根 據(jù)交易金額生成一個(gè)費(fèi)率值,再將這個(gè)生成的費(fèi)率值寫入復(fù)合應(yīng)用專用文件中,并且在 寫入復(fù)合應(yīng)用專用文件之前還要判斷生成的費(fèi)率值的長(zhǎng)度是否大于復(fù)合應(yīng)用專用文件的 長(zhǎng)度,例如,當(dāng)復(fù)合圈存初始化命令中的交易金額為800元時(shí),即小于預(yù)先約定的下限 時(shí),具體如為2000時(shí),則將生成的90%,或者111.1%,或者11.1%,或者100元寫入 復(fù)合應(yīng)用專用文件中,而當(dāng)復(fù)合圈存初始化命令中的交易金額為5000元時(shí),即在預(yù)先約 定的下限與上限之間時(shí),具體如為2000到6000時(shí),則將生成的80%,或者125%,或 者25%,或者600元寫入復(fù)合應(yīng)用專用文件中,或者當(dāng)復(fù)合圈存初始化命令中的交易金 額為8000元時(shí),即大于預(yù)先約定的下限時(shí),具體如為6000時(shí),則將生成的75%,或者 133%,或者33%,或者2000元寫入復(fù)合應(yīng)用專用文件中。步驟115:將UPDATE CAPP DATA CACHE命令的響應(yīng)報(bào)文返回給終端;其中,UPDATE CAPP DATA CACHE命令的響應(yīng)報(bào)文由swl+sw2組成, 不存在數(shù)據(jù)域data,當(dāng)UPDATE CAPP DATA CACHE命令執(zhí)行成功時(shí),則響應(yīng)報(bào)文 為‘9000’,當(dāng)UPDATE CAPP DATA CACHE命令執(zhí)行不成功時(shí),則響應(yīng)報(bào)文不為
‘9000,。步驟116 接收終端發(fā)送的復(fù)合圈存命令CREDIT FOR CAPP LOAD,讀取命令
數(shù)據(jù)域中的數(shù)據(jù)并保存;在本實(shí)施例中,復(fù)合圈存命令CREDIT FOR CAPP LOAD用于復(fù)合圈存交易;CREDIT FOR CAPP LOAD 命令報(bào)文由 CLA+INS+P1 +P2+Lc+Data+Le 組成,其 中數(shù)據(jù)域Data中的數(shù)據(jù)具體包括交易日期、交易時(shí)間和第二報(bào)文鑒別碼MAC2;具體地,本實(shí)施例中接收到的CREDIT FOR CAPP LOAD命令具體為80 520000 OB 07 DA 06 08 OA 14 2D 00 01 Al OB 08,其中,80 為 CLA,52 為 INS,00 為 Pl, 00為P2,OB為L(zhǎng)c,07 DA 06 08為Data中的交易日期,OA 14 2D為Data中的交易時(shí)間, 00 01 Al OB 為 Data 中的 MAC2,08 為 Le。步驟117:驗(yàn)證數(shù)據(jù)中的第二報(bào)文鑒別碼MAC2是否有效,若無(wú)效,則執(zhí)行步 驟118,若有效,則執(zhí)行步驟119;在本實(shí)施例中,驗(yàn)證MAC2是否有效的方法,具體為將交易金額、交易類型標(biāo)識(shí)、終端機(jī)編號(hào)、交易日期和交易時(shí)間順序鏈接,然 后使用步驟105中生成的過(guò)程密鑰對(duì)鏈接得到的數(shù)據(jù)進(jìn)行加密,再比較加密后得到的數(shù) 據(jù)的前四個(gè)字節(jié)與CREDIT FOR CAPP LOAD命令數(shù)據(jù)域中的MAC2是否相同,若不相 同,則MAC2無(wú)效,若相同,則MAC2有效。步驟118 向終端返回狀態(tài)碼0x9302,提示MAC2無(wú)效;步驟119:將電子錢包的聯(lián)機(jī)交易序號(hào)加1,按照預(yù)先約定的算法對(duì)交易金額與 復(fù)合應(yīng)用專用文件中的值進(jìn)行運(yùn)算,得到新金額,并將得到的新金額加到電子錢包的余 額上;在本實(shí)施例中,預(yù)先約定的算法包括乘法、除法、加法和減法,以及所述四種 算法的各種組合;進(jìn)一步地,復(fù)合應(yīng)用專用文件中的值為費(fèi)率值,具體為120%,因此若當(dāng)交易金 額為1000元,電子錢包中的余額為0元時(shí),則將交易金額1000元乘上復(fù)合專用文件中的 費(fèi)率值120%之后,得到的新金額為1200元,因此將這1200元加到電子錢包的余額0元 上,得到新的余額為1200元,這樣電子錢包中的新余額1200元就比將交易金額1000元 直接加到電子錢包的余額上得到的余額1000元要多;當(dāng)寫入復(fù)合應(yīng)用專用文件中的費(fèi)率值具體為83.3%時(shí),若交易金額為1000元, 電子錢包中的余額為0元,則將交易金額1000元除以費(fèi)率值83.3%之后,得到的新金額 為1200元,因此將這1200元加到電子錢包的余額0元上,得到新的余額為1200元,這 樣電子錢包中的新余額1200元就比將交易金額1000元直接加到電子錢包的余額上得到的 余額1000元要多;當(dāng)寫入復(fù)合應(yīng)用專用文件中的費(fèi)率值具體為20%時(shí),若交易金額為1000元,電 子錢包中的余額為0元,則將交易金額1000元乘上費(fèi)率值20%后,再加上交易金額1000 元,最后得到的新金額為1200元,因此將這1200元加到電子錢包的余額0元上,得到新 的余額為1200元,這樣電子錢包中的新余額1200元就比將交易金額1000元直接加到電 子錢包的余額上得到的余額1000元要多;或者當(dāng)復(fù)合圈存初始化命令中的交易金額為8000元時(shí),則將生成的費(fèi)率值 75%,或者133%,或者33%,或者2000元寫入復(fù)合應(yīng)用專用文件中,此時(shí)當(dāng)寫入復(fù) 合應(yīng)用專用文件中的費(fèi)率值為75%時(shí),交易金額8000元除以75%之后得到的新金額為 10060元,因此將這10060元加到電子錢包的余額0元上,得到新的余額為10060元,這 樣電子錢包中的新余額10060元就比將交易金額8000元直接加到電子錢包的余額上得到 的余額8000元要多;當(dāng)寫入復(fù)合應(yīng)用專用文件中的費(fèi)率值為133%時(shí),交易金額8000元 乘上133%之后得到的新金額為10060元,因此將這10060元加到電子錢包的余額0元 上,得到新的余額為10060元,這樣電子錢包中的新余額10060元就比將交易金額8000元直接加到電子錢包的余額上得到的余額8000元要多;當(dāng)寫入復(fù)合應(yīng)用專用文件中的費(fèi) 率值為33%時(shí),交易金額8000元乘上33%之后,再加上交易金額8000元,得到的新金 額為10060元,因此將這10060元加到電子錢包的余額0元上,得到新的余額為10060 元,這樣電子錢包中的新余額10060元就比將交易金額8000元直接加到電子錢包的余額 上得到的余額8000元要多;當(dāng)寫入復(fù)合應(yīng)用專用文件中的費(fèi)率值為2000元時(shí),交易金 額8000元加上2000元后得到的新余額為10000元,因此將這10000元加到電子錢包的余 額0元上,得到新的余額為10000元,這樣電子錢包中的新余額10000元就比將交易金額 8000元直接加到電子錢包的余額上得到的余額8000元要多。步驟120 更新電子錢包的交易明細(xì);具體地為將電子錢包的聯(lián)機(jī)交易序號(hào)、交易金額、交易類型標(biāo)識(shí)、終端機(jī)編 號(hào)、交易日期和交易時(shí)間順序鏈接組成一個(gè)記錄來(lái)更新標(biāo)準(zhǔn)交易明細(xì)。步驟121 計(jì)算交易驗(yàn)證碼TAC ;在本實(shí)施例步驟121中,計(jì)算交易驗(yàn)證碼TAC碼,具體為用DTK左右8個(gè)字節(jié)進(jìn)行異或運(yùn)算,并將交易后的電子錢包的余額、加1前的 電子錢包的聯(lián)機(jī)交易序號(hào)、交易金額、交易類型標(biāo)識(shí)、終端機(jī)編號(hào)、交易日期和交易時(shí) 間順序鏈接,再利用異或運(yùn)算得到的結(jié)果對(duì)鏈接得到的數(shù)據(jù)進(jìn)行加密,得到的加密后的 數(shù)據(jù)即為TAC碼。步驟122 將CREDIT FOR CAPP LOAD命令的響應(yīng)報(bào)文返回給終端,復(fù)合圈存
操作結(jié)束。其中,CREDITFOR CAPP LOAD 命令的響應(yīng)報(bào)文由 data+swl+sw2 組成, 當(dāng)CREDIT FOR CAPP LOAD命令執(zhí)行成功時(shí),則響應(yīng)報(bào)文中的狀態(tài)碼swl和sw2為
‘9000’,相應(yīng)地,數(shù)據(jù)域data具體為TAC碼,當(dāng)CREDIT FOR CAPP LOAD命令執(zhí)行 不成功時(shí),則響應(yīng)報(bào)文中的狀態(tài)碼swl和sw2不為‘9000’,并且不包含數(shù)據(jù)域;具體地,在本實(shí)施例中返回的CREDIT FOR CAPP LOAD命令的響應(yīng)報(bào)文為0005 D2 BC 90 00。進(jìn)一步地,在本實(shí)施例中,當(dāng)復(fù)合應(yīng)用專用文件為記錄型文件時(shí),則復(fù)合應(yīng)用 專用文件中的每一條記錄對(duì)應(yīng)著一個(gè)應(yīng)用,具體地,本實(shí)施例中復(fù)合應(yīng)用專用文件中的 FILE TYPE為01,表示該復(fù)合應(yīng)用專用文件為定長(zhǎng)記錄文件,相應(yīng)地,定長(zhǎng)記錄文件對(duì) 應(yīng)的FILE SIZE為記錄條數(shù)和記錄長(zhǎng)度;相應(yīng)地,對(duì)復(fù)合應(yīng)用專用文件進(jìn)行更新的步驟108至步驟116還可以替換為步驟108’ 接收終端發(fā)送的更新記錄命令UPDATE RECORD ;其中,更新記錄命令UPDATE RECORD用于更新命令中指定的記錄,并且該 UPDATE RECORD命令適用于定長(zhǎng)記錄文件和變長(zhǎng)記錄文件;具體地,UPDATERECORD 命令報(bào)文由 CLA+INS+Pl+P2+Lc+Data 組成,其中 Pl和P2用于指定將哪個(gè)文件的第幾條記錄作為復(fù)合應(yīng)用專用文件的記錄,Lc為Data中 的數(shù)據(jù)的長(zhǎng)度加上4個(gè)字節(jié),本實(shí)施例中,UPDATE RECORD命令具體為00 DC 03 04 08 00 01 20 00,其中,00 為 CLA,DC 為 INS,03 為 P1,04 為 P2,08 為 Lc, 00 01 20 00 為 Data ;并且UPDATE RECORD命令的數(shù)據(jù)域中即為要寫入復(fù)合應(yīng)用專用文件的新數(shù)據(jù),其中,由于復(fù)合應(yīng)用專用文件的具體應(yīng)用可以由發(fā)卡方自定義,因此數(shù)據(jù)域中的數(shù) 據(jù)也可以是自定義的,如在本實(shí)施例中復(fù)合應(yīng)用專用文件可以自定義為費(fèi)率文件,則相 應(yīng)地,數(shù)據(jù)域中的數(shù)據(jù)具體為費(fèi)率值,在本實(shí)施例中具體定義費(fèi)率值為120%。步驟109’ 判斷接收到的更新記錄命令UPDATE RECORD中是否存在SFI域, 若存在,則執(zhí)行步驟110’,若不存在,則執(zhí)行步驟111’ ;其中,判斷更新記錄命令UPDATE RECORD中是否存在SFI域的方法具體為 判斷UPDATE RECORD命令中的P2的高5位是否全為0,若是,則表示命令中存在SFI 域,即P2的高5位即是SFI域的值,否則,表示命令中不存在SFI域。步驟110’ 查找CPU卡當(dāng)前應(yīng)用下是否存在一個(gè)文件的SFI值與 UPDATERECORD命令中的SFI值相同,若不存在,則執(zhí)行步驟111’,若存在,則執(zhí)行 步驟112’ ;步驟111’ 向終端返回狀態(tài)碼0x6A82,同時(shí)終止執(zhí)行此次復(fù)合圈存交易;步驟112’ 將步驟110’中查找得到的文件作為復(fù)合應(yīng)用專用文件,并根據(jù) UPDATE RECORD命令中指定的記錄號(hào)在該復(fù)合應(yīng)用專用文件中查找相應(yīng)的記錄,若沒 有找到相應(yīng)的記錄,則執(zhí)行步驟113’,若找到相應(yīng)的記錄,則執(zhí)行步驟114’ ;步驟113’ 向終端返回狀態(tài)碼0x6A83,同時(shí)終止執(zhí)行此次復(fù)合圈存交易;步驟114’ 檢查UPDATE RECORD命令中的數(shù)據(jù)域的長(zhǎng)度是否大于步驟112’ 中查找得到的記錄的指定長(zhǎng)度,若大于,則執(zhí)行步驟115’,若不大于,則執(zhí)行步驟 116,;步驟115’ 向終端返回狀態(tài)碼0x6A84,同時(shí)終止執(zhí)行此次復(fù)合圈存交易;步驟116’ 將UPDATE RECORD命令中的數(shù)據(jù)域中的數(shù)據(jù)寫入查找得到的記
錄中,替換該記錄中的原有內(nèi)容;在本實(shí)施例中,具體將費(fèi)率值120%寫入該記錄中,替換該記錄中的原有內(nèi)容。步驟117’ 將UPDATE RECORD命令的響應(yīng)報(bào)文返回給終端;其中,UPDATE RECORD命令的響應(yīng)報(bào)文由swl+sw2組成,不存在數(shù)據(jù)域 data,當(dāng)UPDATE RECORD命令執(zhí)行成功時(shí),則響應(yīng)報(bào)文為‘ 9000,,當(dāng)UPDATE RECORD命令執(zhí)行不成功時(shí),則響應(yīng)報(bào)文不為‘9000’。進(jìn)一步地,在本實(shí)施例中,通過(guò)上述方法進(jìn)行復(fù)合圈存操作之后,則可以利用 該CPU卡中的電子錢包進(jìn)行消費(fèi),參見圖3,消費(fèi)操作的流程具體如下步驟201 接收終端發(fā)送的消費(fèi)初始化命令I(lǐng)NITIALIZE FOR PURCHASE,讀取 命令中的數(shù)據(jù)并保存;在本實(shí)施例中,消費(fèi)初始化命令I(lǐng)NITIALIZE FOR PURCHASE用于初始化消費(fèi)
交易;INITIALIZE FOR PURCHASE命令報(bào)文分成命令頭+命令體即為(CLA+INS+P1+P2) + (Lc+Data+Le);其中,CLA+INS+P1+P2為命令頭,Lc+Data+Le為命令體,命令頭為命令的編 碼,命令頭中的CLA為指令類別,INS為指令代碼,Pl和P2為指令參數(shù);命令體中的 Lc為命令體內(nèi)Data中數(shù)據(jù)的長(zhǎng)度,Data為INITIALIZE FORPURCHASE命令中的數(shù)據(jù), Le是期望的應(yīng)答APDU數(shù)據(jù)字段的最大字節(jié)數(shù);
并且INITIALIZE FOR PURCHASE命令中的數(shù)據(jù)具體為密鑰索引號(hào)、交易金額
和終端機(jī)編號(hào);具體地,在本實(shí)施例中,接收到的INITIALIZE FOR PURCHASE命令具體為 80 50 01 02 OB 02 00 00 00 C8 00 00 00 00 00 01 OF,其中 80 為 CLA,50 為 INS, 01 為 Pl, 02為P2,定義為電子錢包的標(biāo)識(shí),OB為L(zhǎng)c,02為Data中的密鑰索引號(hào),00 00 00 C8為Data中的交易金額,00 00 00 00 00 01為Data中的終端機(jī)編號(hào),OF為L(zhǎng)e。步驟202 檢查自身是否支持上述INITIALIZE FOR PURCHASE命令中包含的 密鑰索引號(hào),若不支持,則執(zhí)行步驟203,若支持,則執(zhí)行步驟204;步驟203 返回狀態(tài)碼0x9403給終端,并終止執(zhí)行消費(fèi)初始化操作;步驟204:讀取電子錢包的余額,判斷INITIALIZE FOR PURCHASE命令中包 含的交易金額是否超過(guò)電子錢包的余額與透支限額的和,若是,則執(zhí)行步驟205,若否, 則執(zhí)行步驟206 ;步驟205 返回狀態(tài)碼0x9401給終端,并終止執(zhí)行消費(fèi)初始化操作;步驟206 生成一個(gè)偽隨機(jī)數(shù)和一個(gè)過(guò)程密鑰;在本實(shí)施例中,過(guò)程密鑰用于CPU電子錢包或Ml電子錢包的消費(fèi)交易,過(guò)程 密鑰是用密鑰DPK分散得到的。步驟207 發(fā)送INITIALIZE FOR PURCHASE命令的響應(yīng)報(bào)文給終端;其中,INITIALIZEFOR PURCHASE 響應(yīng)報(bào)文由 Data+swl+sw2 組成,當(dāng) INITIALIZE FOR PURCHASE命令執(zhí)行成功時(shí),則返回的響應(yīng)報(bào)文中的狀態(tài)碼swl和sw2 為‘9000’,且響應(yīng)報(bào)文數(shù)據(jù)域Data中包含的數(shù)據(jù)具體為電子錢包的余額、CPU電子 錢包的脫機(jī)交易序號(hào)、透支限額、密鑰版本號(hào)、算法標(biāo)識(shí)和偽隨機(jī)數(shù),若命令執(zhí)行不成 功,則返回的響應(yīng)報(bào)文中只含有狀態(tài)碼swl和sw2,且狀態(tài)碼swl和sw2不為‘9000’ ;具體地,本實(shí)施例中返回給終端的INITIALIZE FOR PURCHASE響應(yīng)報(bào)文為
0000 4B 00 00 01 00 00 64 02 03 01 02 03 04 90 00。步驟208 接收終端發(fā)送的消費(fèi)命令DEBIT FOR PURCHASE,讀取命令中的數(shù)
據(jù)并保存;在本實(shí)施例中,DEBIT FOR PURCHASE命令用于進(jìn)行消費(fèi)操作;其中,DEBITFOR PURCHASE 命令報(bào)文也由 CLA+INS+Pl+P2+Lc+Data+Le 組 成,DEBIT FOR PURCHASE命令中的數(shù)據(jù)具體為終端交易序號(hào)、交易日期、交易時(shí) 間和第三鑒別碼MAC3 ;具體地,在本實(shí)施例中,接收到的DEBIT FOR PURCHASE命令具體為80 5401 00 0F00 00 00 01 7D AO 06 09 OF 27 13 01 OADl OC 08,其中 80 為 CLA,54 為 INS,
01為 P1,00 為 P2,OF 為 Lc,00000001 為 Da ta 中的終端交易序號(hào),7D A00609 為 Da ta 中的交易日期,OF 2713為Data中的交易時(shí)間,01 OA DlO C為Data中的MAC3,08為 Le。步驟209:使用步驟205中生成的過(guò)程密鑰來(lái)驗(yàn)證DEBIT FOR PURCHASE命令 中包含的MAC3是否有效,若無(wú)效,則執(zhí)行步驟210,若有效,則執(zhí)行步驟211;在本實(shí)施例中,驗(yàn)證DEBIT FOR PURCHASE命令中包含的MAC3是否有效的
方法,具體為
將交易金額、交易類型標(biāo)識(shí)、終端機(jī)編號(hào)、終端的交易日期和終端的交易時(shí)間 順序鏈接,用步驟206中生成的過(guò)程密鑰對(duì)鏈接得到的數(shù)據(jù)進(jìn)行加密,再比較得到的加 密后的數(shù)據(jù)的前四個(gè)字節(jié)與DEBIT FOR PURCHASE命令中包含的MAC 3是否相同,若 不相同,則MAC 3無(wú)效,若相同,則MAC 3有效。步驟210 返回狀態(tài)碼0x9302給終端,終止操作;步驟211:將電子錢包的脫機(jī)交易序號(hào)加1,從電子錢包的余額中扣減計(jì)算得到 的金額;在本實(shí)施例中,若當(dāng)交易金額為200元,電子錢包中的余額為1200元時(shí),則從 電子錢包的余額1200中扣減掉金額200元后,得到新的余額為1000元。步驟212 更新電子錢包的交易明細(xì);在本實(shí)施例中,需要更新的電子錢包的相關(guān)交易明細(xì)具體為交易金額、交易 類型標(biāo)識(shí)、終端編號(hào)、交易日期和交易時(shí)間,具體地,CPU卡將交易金額、交易類型標(biāo) 識(shí)、終端編號(hào)、交易日期和交易時(shí)間順序鏈接組成一個(gè)記錄以便更新。步驟213 生成第四報(bào)文鑒別碼MAC4,然后計(jì)算交易驗(yàn)證碼TAC碼;在本實(shí)施例中,生成第四報(bào)文鑒別碼MAC4方法具體為用步驟206中生成的過(guò)程密鑰對(duì)交易金額進(jìn)行加密,得到的加密后的數(shù)據(jù)的前 四個(gè)字節(jié)即為第四報(bào)文鑒別碼MAC4。其中,利用異或運(yùn)算得到的結(jié)果來(lái)計(jì)算TAC碼的方法具體為用DTK左右8個(gè)字節(jié)進(jìn)行異或運(yùn)算,并將交易金額、交易類型標(biāo)識(shí)、終端機(jī)編 號(hào)、終端交易序號(hào)、終端的交易日期和終端的交易時(shí)間順序鏈接,并用異或運(yùn)算得到的 結(jié)果對(duì)鏈接得到的數(shù)據(jù)進(jìn)行加密,得到的加密后的數(shù)據(jù)的前四個(gè)字節(jié)即為TAC碼。步驟214:返回DEBIT FOR PURCHASE命令的響應(yīng)報(bào)文給終端,交易結(jié)束。其中,DEBIT FOR PURCHASE命令的響應(yīng)報(bào)文由data+swl+sw2組成, 當(dāng)DEBIT FOR PURCHASE命令執(zhí)行成功時(shí),則響應(yīng)報(bào)文中的狀態(tài)碼swl和sw2為
‘9000’,相應(yīng)地,數(shù)據(jù)域data具體為TAC碼和MAC4,當(dāng)DEBIT FOR PURCHASE命 令執(zhí)行不成功時(shí),則響應(yīng)報(bào)文中的狀態(tài)碼swl和sw2不為‘9000’,且不包含數(shù)據(jù)域;具體地,本實(shí)施例中DEBIT FOR PURCHASE命令的響應(yīng)報(bào)文為01 OD Bl 0900 02 EABl 90 00。本實(shí)施例提供了一種對(duì)CPU卡內(nèi)的電子錢包進(jìn)行復(fù)合圈存的方法,該方法可以 使整個(gè)復(fù)合圈存的過(guò)程更安全,防止采取非法的手段去修改CPU卡中特定的復(fù)合應(yīng)用專 用文件,并且該方法中通過(guò)對(duì)復(fù)合應(yīng)用專用文件中寫入新的數(shù)據(jù),簡(jiǎn)化了分級(jí)打折優(yōu)惠 業(yè)務(wù)的實(shí)現(xiàn),只需充值時(shí)設(shè)定充值金額對(duì)應(yīng)的費(fèi)率即可,更方便管理,會(huì)員享受的優(yōu)惠 只跟充值金額掛鉤,多充多優(yōu)惠,從而節(jié)省了管理的成本。以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此, 任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換, 都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù) 范圍為準(zhǔn)。
權(quán)利要求
1. 一種對(duì)電子錢包進(jìn)行復(fù)合圈存的方法,其特征在于,所述方法包括 CPU卡進(jìn)入終端的非接觸式感應(yīng)區(qū)內(nèi),所述CPU卡上電并初始化;接收所述終端發(fā)送的復(fù)合圈存初始化命令,讀取所述復(fù)合圈存初始化命令中的數(shù)據(jù) 并保存,進(jìn)行復(fù)合圈存初始化操作,其中所述數(shù)據(jù)中包括交易金額;接收所述終端發(fā)送的更新復(fù)合應(yīng)用專用文件命令,查找復(fù)合應(yīng)用專用文件; 將預(yù)先約定的數(shù)據(jù)寫入所述復(fù)合應(yīng)用專用文件的存儲(chǔ)空間中,替換原有內(nèi)容; 接收所述終端發(fā)送的復(fù)合圈存命令,讀取所述復(fù)合圈存命令中的數(shù)據(jù)并保存; 按照預(yù)先約定的算法對(duì)所述交易金額與所述復(fù)合應(yīng)用專用文件中的數(shù)據(jù)進(jìn)行運(yùn)算, 得到新金額,將所述得到的新金額加到電子錢包的余額上,得到新余額,復(fù)合圈存操作 結(jié)束。
2.如權(quán)利要求1所述的對(duì)電子錢包進(jìn)行復(fù)合圈存的方法,其特征在于,所述復(fù)合圈存 初始化命令中的數(shù)據(jù)具體還包括密鑰索引號(hào)和終端機(jī)編號(hào)。
3.如權(quán)利要求2所述的對(duì)電子錢包進(jìn)行復(fù)合圈存的方法,其特征在于,所述復(fù)合圈存 初始化操作具體為所述CPU卡檢查自身是否支持所述密鑰索引號(hào);若不支持,則向所述終端返回所述CPU卡不支持所述密鑰索引號(hào)的信息,終止操作;若支持,則生成一個(gè)偽隨機(jī)數(shù)和一個(gè)過(guò)程密鑰,并用所述過(guò)程密鑰計(jì)算得到第一報(bào) 文鑒別碼;將復(fù)合圈存初始化命令的響應(yīng)報(bào)文返回給所述終端。
4.如權(quán)利要求1所述的對(duì)電子錢包進(jìn)行復(fù)合圈存的方法,其特征在于,所述查找復(fù)合 應(yīng)用專用文件的操作具體為判斷所述更新復(fù)合應(yīng)用專用文件命令中是否存在短文件標(biāo)識(shí)符; 若不存在,則將當(dāng)前文件作為復(fù)合應(yīng)用專用文件;若存在,則檢查當(dāng)前應(yīng)用下的文件中是否存在一個(gè)文件的短文件標(biāo)識(shí)符的值與所述 短文件標(biāo)識(shí)符相同;若否,則向終端返回未找到復(fù)合應(yīng)用專用文件的信息,終止操作; 若是,則將得到的文件作為復(fù)合應(yīng)用專用文件。
5.如權(quán)利要求1所述的對(duì)電子錢包進(jìn)行復(fù)合圈存的方法,其特征在于,所述將預(yù)先約 定的數(shù)據(jù)具體包括所述更新復(fù)合應(yīng)用專用文件命令中包含的數(shù)據(jù),或者,根據(jù)所述復(fù)合圈存初始化命 令中包含的交易金額生成的數(shù)據(jù)。
6.如權(quán)利要求1所述的對(duì)電子錢包進(jìn)行復(fù)合圈存的方法,其特征在于,所述將預(yù)先約 定的數(shù)據(jù)寫入所述復(fù)合應(yīng)用專用文件的存儲(chǔ)空間中之前,所述方法還包括判斷所述預(yù)先約定的數(shù)據(jù)的長(zhǎng)度是否大于所述復(fù)合應(yīng)用專用文件的存儲(chǔ)空間的大?。蝗羰?,向所述終端返回所述復(fù)合應(yīng)用專用文件的存儲(chǔ)空間不夠的信息,終止操作; 若否,將將預(yù)先約定的數(shù)據(jù)寫入所述復(fù)合應(yīng)用專用文件的存儲(chǔ)空間中。
7.如權(quán)利要求1所述的對(duì)電子錢包進(jìn)行復(fù)合圈存的方法,其特征在于,所述將預(yù)先約定的數(shù)據(jù)寫入所述復(fù)合應(yīng)用專用文件的存儲(chǔ)空間中,替換原有內(nèi)容之后,所述方法還包 括將更新復(fù)合應(yīng)用專用文件命令的響應(yīng)報(bào)文返回給所述終端。
8.如權(quán)利要求1所述的對(duì)電子錢包進(jìn)行復(fù)合圈存的方法,其特征在于,所述復(fù)合圈存 命令中的數(shù)據(jù)具體包括交易日期、交易時(shí)間和第二報(bào)文鑒別碼。
9.如權(quán)利要求8所述的對(duì)電子錢包進(jìn)行復(fù)合圈存的方法,其特征在于,所述按照預(yù)先 約定的算法對(duì)所述交易金額與所述復(fù)合應(yīng)用專用文件中的數(shù)據(jù)進(jìn)行運(yùn)算之前,所述方法 還包括驗(yàn)證所述第二報(bào)文鑒別碼是否有效;若無(wú)效,則向所述終端返回第二報(bào)文鑒別碼無(wú)效的信息,終止操作; 若有效,則將所述電子錢包的聯(lián)機(jī)交易序號(hào)加1,并按照預(yù)先約定的算法對(duì)所述交易 金額與所述復(fù)合應(yīng)用專用文件中的數(shù)據(jù)進(jìn)行運(yùn)算。
10.如權(quán)利要求1所述的對(duì)電子錢包進(jìn)行復(fù)合圈存的方法,其特征在于,所述預(yù)先約 定的算法包括乘法、除法、加法和減法,以及所述四種算法的各種組合。
11.如權(quán)利要求1所述的對(duì)電子錢包進(jìn)行復(fù)合圈存的方法,其特征在于,所述將得到 的新金額加到電子錢包的余額上,得到新余額之后,所述方法還包括更新所述電子錢包的交易明細(xì); 計(jì)算交易驗(yàn)證碼;將所述復(fù)合圈存命令的響應(yīng)報(bào)文返回給所述終端。
12.如權(quán)利要求1所述的對(duì)電子錢包進(jìn)行復(fù)合圈存的方法,其特征在于,所述更新復(fù) 合應(yīng)用專用文件命令還具體為更新記錄命令;所述查找復(fù)合應(yīng)用專用文件的操作還具體為查找復(fù)合應(yīng)用專用文件,并查找所述 復(fù)合應(yīng)用專用文件中的相應(yīng)記錄。
13.如權(quán)利要求12所述的對(duì)電子錢包進(jìn)行復(fù)合圈存的方法,其特征在于,所述查找復(fù) 合應(yīng)用專用文件,并查找所述復(fù)合應(yīng)用專用文件中的相應(yīng)記錄的方法具體為判斷所述更新記錄命令中是否存在短文件標(biāo)識(shí)符;若不存在,則向所述終端返回未找到復(fù)合應(yīng)用專用文件的信息,終止操作; 若存在,則檢查當(dāng)前應(yīng)用下的文件中是否存在一個(gè)文件的短文件標(biāo)識(shí)符的值與所述 短文件標(biāo)識(shí)符相同;若否,則向終端返回未找到復(fù)合應(yīng)用專用文件的信息,終止操作; 若是,則將得到的文件作為復(fù)合應(yīng)用專用文件,并根據(jù)所述更新記錄命令中指定的 記錄號(hào)在所述復(fù)合應(yīng)用專用文件中查找相應(yīng)的記錄;若沒有查找到,則向終端返回未找到需要更新的記錄的信息,終止操作; 若查找到,則將查找得到的記錄作為需要更新的記錄。
全文摘要
本發(fā)明公開了一種對(duì)電子錢包進(jìn)行復(fù)合圈存的方法,屬于信息安全領(lǐng)域,所述方法包括CPU卡進(jìn)入終端的非接觸式感應(yīng)區(qū)內(nèi),上電并初始化,接收終端發(fā)送的復(fù)合圈存初始化命令,讀取復(fù)合圈存初始化命令中的數(shù)據(jù)并保存,進(jìn)行復(fù)合圈存初始化操作,其中數(shù)據(jù)中包括交易金額,接收終端發(fā)送的更新復(fù)合應(yīng)用專用文件命令,查找復(fù)合應(yīng)用專用文件,將預(yù)先約定的數(shù)據(jù)寫入復(fù)合應(yīng)用專用文件的存儲(chǔ)空間中,替換原有內(nèi)容,接收終端發(fā)送的復(fù)合圈存命令,讀取復(fù)合圈存命令中的數(shù)據(jù)并保存,按照預(yù)先約定的算法對(duì)交易金額與所述復(fù)合應(yīng)用專用文件中的數(shù)據(jù)進(jìn)行運(yùn)算,得到新金額,將得到的新金額加到電子錢包的余額上,得到新余額,復(fù)合圈存操作結(jié)束。
文檔編號(hào)G07F7/08GK102013132SQ20101021413
公開日2011年4月13日 申請(qǐng)日期2010年6月29日 優(yōu)先權(quán)日2010年6月29日
發(fā)明者于華章, 陸舟 申請(qǐng)人:北京飛天誠(chéng)信科技有限公司