專利名稱:基于遠(yuǎn)程票據(jù)信息的本地打印方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及票據(jù)打印領(lǐng)域,具體而言,涉及ー種基于遠(yuǎn)程票據(jù)信息的本地打印方法和裝置。
背景技術(shù):
現(xiàn)有的基于遠(yuǎn)程票據(jù)的本地打印方法,例如申請(qǐng)?zhí)枮镃N200510008567. 4的專利申請(qǐng)所描述的方案,該方案涉及ー種多節(jié)點(diǎn)智能網(wǎng)絡(luò)應(yīng)用服務(wù)系統(tǒng)中的遠(yuǎn)程打印方法,目的在于使終端用戶將服務(wù)器上的文件直接打印到終端本地的打印機(jī)上,并能夠配置和管理自己的打印機(jī)和打印作業(yè)。 上述方案公開了基于會(huì)話用戶的打印配置和管理方法、基于會(huì)話用戶的打印作業(yè)調(diào)度機(jī)制和基于共享內(nèi)存的應(yīng)用、打印服務(wù)和終端服務(wù)的信息傳遞機(jī)制。在ー個(gè)由通過傳輸線互相連接的一個(gè)服務(wù)器和多個(gè)終端組成的系統(tǒng)中,服務(wù)器提供相應(yīng)的終端服務(wù),終端服務(wù)技術(shù)將應(yīng)用邏輯與用戶界面分開,應(yīng)用邏輯在服務(wù)器上,終端只負(fù)責(zé)用戶界面的顯示,每個(gè)終端包括一臺(tái)計(jì)算機(jī)和至少一臺(tái)打印機(jī)。然而,現(xiàn)有技術(shù)中網(wǎng)絡(luò)間打印數(shù)據(jù)的傳輸缺乏有效的安全機(jī)制,無(wú)法應(yīng)用于發(fā)票數(shù)據(jù)的打印。
發(fā)明內(nèi)容
本發(fā)明提供一種基于遠(yuǎn)程票據(jù)信息的本地打印方法和裝置,用以實(shí)現(xiàn)遠(yuǎn)程票據(jù)信息的本地打印。為達(dá)到上述目的,本發(fā)明提供了一種基于遠(yuǎn)程票據(jù)信息的本地打印方法,包括以下步驟根據(jù)用戶打印請(qǐng)求的票據(jù)標(biāo)識(shí)通過服務(wù)器的數(shù)據(jù)服務(wù)接ロ獲取動(dòng)態(tài)因子;將打印客戶端標(biāo)識(shí)、動(dòng)態(tài)因子和打印客戶端本地保存的票據(jù)模版數(shù)據(jù)版本號(hào)進(jìn)行加密,得到第一數(shù)據(jù)包,并將第一數(shù)據(jù)包發(fā)送至服務(wù)器;在服務(wù)器端對(duì)第一數(shù)據(jù)包進(jìn)行解密,得到打印客戶端標(biāo)識(shí)、動(dòng)態(tài)因子、票據(jù)模版數(shù)據(jù)版本號(hào)和票據(jù)標(biāo)識(shí),對(duì)打印客戶端標(biāo)識(shí)和動(dòng)態(tài)因子進(jìn)行檢驗(yàn),若打印客戶端標(biāo)識(shí)和動(dòng)態(tài)因子為有效,根據(jù)票據(jù)標(biāo)識(shí)獲取票據(jù)的完整發(fā)票數(shù)據(jù);對(duì)打印客戶端標(biāo)識(shí)、動(dòng)態(tài)因子和票據(jù)的完整發(fā)票數(shù)據(jù)進(jìn)行加密,得到第二數(shù)據(jù)包,并將第二數(shù)據(jù)包發(fā)送至打印客戶端;在打印客戶端對(duì)第二數(shù)據(jù)包進(jìn)行解密,得到打印客戶端標(biāo)識(shí)、動(dòng)態(tài)因子和票據(jù)的完整發(fā)票數(shù)據(jù),并將票據(jù)的完整發(fā)票信息解析為可打印信息,進(jìn)行打印。為達(dá)到上述目的,本發(fā)明還提供了一種基于遠(yuǎn)程票據(jù)信息的本地打印裝置,其包括獲取模塊,用于根據(jù)用戶打印請(qǐng)求的票據(jù)標(biāo)識(shí)通過服務(wù)器的數(shù)據(jù)服務(wù)接ロ獲取動(dòng)態(tài)因子;
動(dòng)態(tài)因子生成模塊,用于根據(jù)用戶打印請(qǐng)求的票據(jù)標(biāo)識(shí)生成動(dòng)態(tài)因子,并對(duì)來自打印客戶端的動(dòng)態(tài)因子的有效性進(jìn)行判斷;第一加密模塊,用于將打印客戶端標(biāo)識(shí)、動(dòng)態(tài)因子和打印客戶端本地保存的票據(jù)模版數(shù)據(jù)版本號(hào)進(jìn)行加密,得到第一數(shù)據(jù)包,并將第一數(shù)據(jù)包發(fā)送至服務(wù)器;第一解密模塊,用于在服務(wù)器端對(duì)第一數(shù)據(jù)包進(jìn)行解密,得到打印客戶端標(biāo)識(shí)、動(dòng)態(tài)因子、票據(jù)模版數(shù)據(jù)版本號(hào)和票據(jù)標(biāo)識(shí),對(duì)打印客戶端標(biāo)識(shí)和動(dòng)態(tài)因子進(jìn)行檢驗(yàn),若打印客戶端標(biāo)識(shí)和動(dòng)態(tài)因子為有效,根據(jù)票據(jù)標(biāo)識(shí)獲取票據(jù)的完整發(fā)票數(shù)據(jù);第二加密模塊,用于對(duì)打印客戶端標(biāo)識(shí)、動(dòng)態(tài)因子和票據(jù)的完整發(fā)票數(shù)據(jù)進(jìn)行加密,得到第二數(shù)據(jù)包,并將第二數(shù)據(jù)包發(fā)送至打印客戶端;第二解密模塊,用于在打印客戶端對(duì)第二數(shù)據(jù)包進(jìn)行解密,得到打印客戶端標(biāo)識(shí)、 動(dòng)態(tài)因子和票據(jù)的完整發(fā)票數(shù)據(jù),并將票據(jù)的完整發(fā)票信息解析為可打印信息,進(jìn)行打印。上述實(shí)施例有效解決了目前增值稅發(fā)票僅在本地打印的制約,拓寬了其應(yīng)用范圍。通過對(duì)元數(shù)據(jù)、模板數(shù)據(jù)和發(fā)票數(shù)據(jù)的明確劃分和定義,降低了各功能模塊間的耦合性。通過網(wǎng)絡(luò)服務(wù)接ロ的定義,本方案可適用于局域網(wǎng)、互聯(lián)網(wǎng)等多種網(wǎng)絡(luò)結(jié)構(gòu)下的遠(yuǎn)程打印,并通過動(dòng)態(tài)因子和加解密保證了打印數(shù)據(jù)的安全性。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為根據(jù)本發(fā)明ー個(gè)實(shí)施例的打印數(shù)據(jù)構(gòu)成示意圖;圖2為根據(jù)本發(fā)明ー個(gè)實(shí)施例的基于遠(yuǎn)程票據(jù)信息的本地打印方法流程圖;圖3為根據(jù)本發(fā)明ー個(gè)上述實(shí)施例的客戶端向服務(wù)器端發(fā)送的數(shù)據(jù)格式示意圖;圖4為根據(jù)本發(fā)明ー個(gè)實(shí)施例的服務(wù)器端向客戶端響應(yīng)的數(shù)據(jù)格式示意圖;圖5為根據(jù)本發(fā)明ー個(gè)實(shí)施例的基于遠(yuǎn)程票據(jù)信息的本地打印裝置模塊圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有付出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。本發(fā)明實(shí)施例中的邏輯結(jié)構(gòu)由服務(wù)器端和打印客戶端兩部分系統(tǒng)組成服務(wù)器端主要完成相關(guān)數(shù)據(jù)信息的準(zhǔn)備,并向客戶端提供打印數(shù)據(jù)接ロ ;客戶端主要完成打印數(shù)據(jù)和相關(guān)信息的獲取,并向本地打印隊(duì)列發(fā)送打印請(qǐng)求。每個(gè)打印客戶端采用一機(jī)ー密,即每個(gè)客戶端擁有自己唯一的密鑰對(duì)。圖I為根據(jù)本發(fā)明ー個(gè)實(shí)施例的打印數(shù)據(jù)構(gòu)成示意圖。如圖I所示,ー個(gè)模板數(shù)據(jù)由ー個(gè)或多個(gè)元數(shù)據(jù)組成,且ー個(gè)模板數(shù)據(jù)支持多個(gè)發(fā)票數(shù)據(jù),它們共同組成了打印數(shù)據(jù)。元數(shù)據(jù)定義了最小打印元素的位置和形態(tài)(如字號(hào)、字體、最大長(zhǎng)度等),它包括單一元數(shù)據(jù)和循環(huán)元數(shù)據(jù)兩類。單一元數(shù)據(jù)是指由單個(gè)元素構(gòu)成的數(shù)據(jù)項(xiàng)(如發(fā)票號(hào)碼、發(fā)票代碼),在解析和執(zhí)行過程中僅需運(yùn)行一次;循環(huán)元數(shù)據(jù)是指由ー個(gè)或多個(gè)單一元數(shù)據(jù)構(gòu)成的循環(huán)數(shù)據(jù)項(xiàng),在解析和執(zhí)行過程中需要循環(huán)調(diào)用執(zhí)行(如發(fā)票明細(xì)列表、銷貨清單列表)。模板數(shù)據(jù)由ー個(gè)或多個(gè)元數(shù)據(jù)組成,它描述了一次打印任務(wù)需要處理的全部數(shù)據(jù)項(xiàng)?!ぐl(fā)票數(shù)據(jù)是指需要打印的一個(gè)或多個(gè)發(fā)票元素,該發(fā)票元素被定義為元數(shù)據(jù)并被包含在打印模板后,即可實(shí)現(xiàn)基于模板數(shù)據(jù)的發(fā)票數(shù)據(jù)打印。圖2為根據(jù)本發(fā)明ー個(gè)實(shí)施例的基于遠(yuǎn)程票據(jù)信息的本地打印方法流程圖。如圖2所示,該方法包括以下步驟S101,根據(jù)用戶打印請(qǐng)求的票據(jù)標(biāo)識(shí)通過服務(wù)器的數(shù)據(jù)服務(wù)接ロ獲取動(dòng)態(tài)因子;S102,將打印客戶端標(biāo)識(shí)、動(dòng)態(tài)因子和打印客戶端本地保存的票據(jù)模版數(shù)據(jù)版本號(hào)進(jìn)行加密,得到第一數(shù)據(jù)包,并將第一數(shù)據(jù)包發(fā)送至服務(wù)器;S103,在服務(wù)器端對(duì)第一數(shù)據(jù)包進(jìn)行解密,得到打印客戶端標(biāo)識(shí)、動(dòng)態(tài)因子、票據(jù)模版數(shù)據(jù)版本號(hào)和票據(jù)標(biāo)識(shí),對(duì)打印客戶端標(biāo)識(shí)和動(dòng)態(tài)因子進(jìn)行檢驗(yàn),若打印客戶端標(biāo)識(shí)和動(dòng)態(tài)因子為有效,根據(jù)票據(jù)標(biāo)識(shí)獲取票據(jù)的完整發(fā)票數(shù)據(jù);S104,對(duì)打印客戶端標(biāo)識(shí)、動(dòng)態(tài)因子和票據(jù)的完整發(fā)票數(shù)據(jù)進(jìn)行加密,得到第二數(shù)據(jù)包,并將第二數(shù)據(jù)包發(fā)送至打印客戶端;S105,在打印客戶端對(duì)第二數(shù)據(jù)包進(jìn)行解密,得到打印客戶端標(biāo)識(shí)、動(dòng)態(tài)因子和票據(jù)的完整發(fā)票數(shù)據(jù),并將票據(jù)的完整發(fā)票信息解析為可打印信息,進(jìn)行打印。本實(shí)施例有效解決了目前增值稅發(fā)票僅在本地打印的制約,拓寬了其應(yīng)用范圍。通過對(duì)元數(shù)據(jù)、模板數(shù)據(jù)和發(fā)票數(shù)據(jù)的明確劃分和定義,降低了各功能模塊間的耦合性。通過網(wǎng)絡(luò)服務(wù)接ロ的定義,本方案可適用于局域網(wǎng)、互聯(lián)網(wǎng)等多種網(wǎng)絡(luò)結(jié)構(gòu)下的遠(yuǎn)程打印,并通過動(dòng)態(tài)因子和加解密保證了打印數(shù)據(jù)的安全性。例如,在上述實(shí)施例中,將動(dòng)態(tài)因子和打印客戶端本地保存的票據(jù)模版數(shù)據(jù)版本號(hào)進(jìn)行加密,得到第一數(shù)據(jù)包,并將第一數(shù)據(jù)包發(fā)送至服務(wù)器步驟包括讀取打印客戶端本地保存的票據(jù)模版數(shù)據(jù)版本號(hào),動(dòng)態(tài)生成第一 AES/CBC加解密密鑰,讀取打印客戶端安全存儲(chǔ)區(qū)的RSA加解密私鑰,根據(jù)RSA加解密私鑰對(duì)動(dòng)態(tài)因子和第一 AES/CBC加解密密鑰進(jìn)行加密,并將加密的第一數(shù)據(jù)包發(fā)送至服務(wù)器。采用結(jié)合動(dòng)態(tài)校驗(yàn)因子的AES和RSA加解密算法提高打印數(shù)據(jù)在網(wǎng)絡(luò)傳輸中的安全性。AES是當(dāng)今對(duì)稱密鑰加密中最流行的算法之一,本方案采用的密鑰長(zhǎng)度為256位,可實(shí)現(xiàn)對(duì)打印模板數(shù)據(jù)和發(fā)票數(shù)據(jù)等大數(shù)據(jù)量的加解密;RSA是當(dāng)今非対稱密鑰加密中最流行的算法之一,通過采用公鑰和私鑰的互加解密,不僅可以實(shí)現(xiàn)數(shù)據(jù)的安全傳輸,還可以實(shí)現(xiàn)用戶的身份驗(yàn)證,本方案采用的密鑰長(zhǎng)度為1024位,可實(shí)現(xiàn)對(duì)動(dòng)態(tài)校驗(yàn)因子和AES密鑰等小數(shù)據(jù)量的加解密,從而保證數(shù)據(jù)的安全性和有效性。動(dòng)態(tài)校驗(yàn)因子由服務(wù)器端動(dòng)態(tài)生成,當(dāng)客戶端啟動(dòng)打印程序時(shí),首先向服務(wù)器端請(qǐng)求本客戶端私有且當(dāng)前有效的動(dòng)態(tài)校驗(yàn)因子,然后在后續(xù)的數(shù)據(jù)請(qǐng)求吋,需附帶本動(dòng)態(tài)校驗(yàn)因子經(jīng)過本客戶端RSA私鑰加密后的密文,服務(wù)器端對(duì)此加密數(shù)據(jù)采用本客戶端RSA公鑰進(jìn)行解密,以此判斷請(qǐng)求數(shù)據(jù)的安全性和有效性。
圖3為根據(jù)本發(fā)明ー個(gè)上述實(shí)施例的客戶端向服務(wù)器端發(fā)送的數(shù)據(jù)格式示意圖。如圖3所示,通信數(shù)據(jù)包由請(qǐng)求數(shù)據(jù)體和數(shù)據(jù)頭組成數(shù)據(jù)頭長(zhǎng)度為266字節(jié),包括打印客戶端標(biāo)識(shí)、加密的動(dòng)態(tài)因子和加密的AES密鑰三部分;數(shù)據(jù)體的長(zhǎng)度為實(shí)際數(shù)據(jù)的密文長(zhǎng)度。下圖上半部分為打印客戶端完成,負(fù)責(zé)將各項(xiàng)數(shù)據(jù)加密后填充到數(shù)據(jù)包,下半部分由服務(wù)器端完成,主要負(fù)責(zé)對(duì)數(shù)據(jù)包的解析和解密,最終取得原始業(yè)務(wù)數(shù)據(jù)。例如,在上述實(shí)施例中,在服務(wù)器端對(duì)第一數(shù)據(jù)包進(jìn)行解密,得到動(dòng)態(tài)因子、票據(jù)模版數(shù)據(jù)版本號(hào)和票據(jù)標(biāo)識(shí),對(duì)動(dòng)態(tài)因子進(jìn)行檢驗(yàn),若動(dòng)態(tài)因子為有效,根據(jù)票據(jù)標(biāo)識(shí)獲取票據(jù)的完整發(fā)票數(shù)據(jù)步驟包括從服務(wù)器獲取打印客戶端對(duì)應(yīng)的RSA加解密公鑰,將RSA加解密公鑰作為密鑰對(duì)第一數(shù)據(jù)包的數(shù)據(jù)頭進(jìn)行解密,得到動(dòng)態(tài)因子和第一 AES/CBC加解密密鑰;若動(dòng)態(tài)因子為有效,根據(jù)第一 AES/CBC加解密密鑰對(duì)第一數(shù)據(jù)包的數(shù)據(jù)體進(jìn)行AES/CBC解密,得到模版數(shù)據(jù)版本號(hào)和票據(jù)標(biāo)識(shí),根據(jù)票據(jù)標(biāo)識(shí)獲取票據(jù)的完整發(fā)票數(shù)據(jù)。 例如,在上述實(shí)施例中,對(duì)打印客戶端標(biāo)識(shí)、動(dòng)態(tài)因子和票據(jù)的完整發(fā)票數(shù)據(jù)進(jìn)行加密,得到第二數(shù)據(jù)包,并將第二數(shù)據(jù)包發(fā)送至打印客戶端步驟包括動(dòng)態(tài)生成第二 AES/CBC加解密密鑰,以服務(wù)器安全存儲(chǔ)區(qū)的RSA加解密私鑰為密鑰對(duì)打印客戶端標(biāo)識(shí)、動(dòng)態(tài)因子和第二 AES/CBC加解密密鑰進(jìn)行RSA加密,以第二 AES/CBC加解密密鑰為密鑰對(duì)票據(jù)的完整發(fā)票數(shù)據(jù)進(jìn)行AES/CBC加密,以組成第二數(shù)據(jù)包,并將第ニ數(shù)據(jù)包發(fā)送至打印客戶端。例如,在上述實(shí)施例中,在打印客戶端對(duì)第二數(shù)據(jù)包進(jìn)行解密,得到打印客戶端標(biāo)識(shí)、動(dòng)態(tài)因子和票據(jù)的完整發(fā)票數(shù)據(jù),并將票據(jù)的完整發(fā)票信息解析為可打印信息,進(jìn)行打印步驟包括在打印客戶端以對(duì)應(yīng)服務(wù)器的RSA加解密公鑰為密鑰對(duì)第二數(shù)據(jù)包的數(shù)據(jù)頭進(jìn)行RSA解密,得到打印客戶端標(biāo)識(shí)、動(dòng)態(tài)因子和第二 AES/CBC加解密密鑰;對(duì)打印客戶端標(biāo)識(shí)和動(dòng)態(tài)因子的有效性進(jìn)行驗(yàn)證后,以第二 AES/CBC加解密密鑰為密鑰對(duì)第二數(shù)據(jù)包的數(shù)據(jù)體進(jìn)行AES/CBC解密,得到票據(jù)的完整發(fā)票信息,并將票據(jù)的完整發(fā)票信息解析為可打印信息,進(jìn)行打印。圖4為根據(jù)本發(fā)明ー個(gè)實(shí)施例的服務(wù)器端向客戶端響應(yīng)的數(shù)據(jù)格式示意圖。如圖4所示,通信數(shù)據(jù)包由響應(yīng)數(shù)據(jù)體和數(shù)據(jù)頭組成數(shù)據(jù)頭長(zhǎng)度為384字節(jié),包括打印客戶端標(biāo)識(shí)、加密的動(dòng)態(tài)因子和加密的AES密鑰三部分;數(shù)據(jù)體的長(zhǎng)度為實(shí)際數(shù)據(jù)的密文長(zhǎng)度。下圖上半部分為服務(wù)器端完成,負(fù)責(zé)將各項(xiàng)數(shù)據(jù)加密后填充到數(shù)據(jù)包,下半部分由打印客戶端完成,主要負(fù)責(zé)對(duì)數(shù)據(jù)包的解析和解密,最終取得響應(yīng)業(yè)務(wù)數(shù)據(jù)。例如,在上述實(shí)施例中,當(dāng)根據(jù)模版數(shù)據(jù)版本號(hào)檢測(cè)到服務(wù)器存在更新的模版數(shù)據(jù)時(shí),第二數(shù)據(jù)包的數(shù)據(jù)體還包括更新的模版數(shù)據(jù),并將更新的模版數(shù)據(jù)保存到打印客戶端,用更新的模版數(shù)據(jù)更新模版數(shù)據(jù)。例如,在上述實(shí)施例中,服務(wù)器和打印客戶端之間的通信方式為WebService通信方式。服務(wù)器端和客戶端之間采用Web Service技術(shù)和基于動(dòng)態(tài)校驗(yàn)因子的AES、RSA加密算法實(shí)現(xiàn)打印數(shù)據(jù)的安全傳輸。服務(wù)器端和客戶端之間的通訊方式采用標(biāo)準(zhǔn)的Web Service技術(shù),可適應(yīng)不同平臺(tái)間的相互調(diào)用,而且通過打印數(shù)據(jù)接ロ的定義降低了兩者間的耦合性。在統(tǒng)ー的數(shù)據(jù)接口下,服務(wù)器端和客戶端可以采用任何可實(shí)現(xiàn)的技木。當(dāng)服務(wù)器端和客戶端運(yùn)行于同一臺(tái)物理計(jì)算機(jī)吋,即為本地?cái)?shù)據(jù)的本地打印功能。以下為本發(fā)明一個(gè)優(yōu)選實(shí)施例標(biāo)識(shí)為A的客戶端接收到用戶對(duì)唯一標(biāo)識(shí)為E的票據(jù)打印請(qǐng)求后,首先調(diào)用服務(wù)器的數(shù)據(jù)服務(wù)接ロ,取得動(dòng)態(tài)因子B,B僅在客戶端A針對(duì)票據(jù)E的打印全過程中唯一有效。客戶端A讀取本地保存的相應(yīng)模板數(shù)據(jù)版本號(hào)C,動(dòng)態(tài)生成AES/CBC加解密密鑰D,并讀取本地安全存儲(chǔ)區(qū)的RSA加解密私鑰F,然后以F為密鑰對(duì)B和D進(jìn)行RSA加密、以D為密鑰對(duì)C和E進(jìn)行AES/CBC加密,并將結(jié)果組織成如圖3的數(shù)據(jù)包,發(fā)送給服務(wù)器。服務(wù)器接收到客戶端的請(qǐng)求數(shù)據(jù)包后,首先取得A對(duì)應(yīng)的RSA加解密公鑰F,然后以F為密鑰對(duì)數(shù)據(jù)頭解密,得到B和D。驗(yàn)證B的有效性后,以D為密鑰對(duì)數(shù)據(jù)體進(jìn)行AES/CBC解密,得到C和E。 服務(wù)器端根據(jù)E取得票據(jù)的完整發(fā)票數(shù)據(jù)G,動(dòng)態(tài)生成AES/CBC加解密密鑰H,以F為密鑰對(duì)A、B和H進(jìn)行RSA加密、以H為密鑰對(duì)G (當(dāng)服務(wù)器端的打印模板版本號(hào)大于C時(shí),還應(yīng)包含模板數(shù)據(jù))進(jìn)行AES/CBC加密,以組成如圖4的數(shù)據(jù)包,返回給客戶端A??蛻舳私邮盏椒?wù)器端的反饋后,以F為密鑰對(duì)數(shù)據(jù)頭進(jìn)行RSA解密,得到A、B和H,對(duì)A和B的有效性進(jìn)行驗(yàn)證后,以H為密鑰對(duì)數(shù)據(jù)體進(jìn)行AES/CBC解密。如果數(shù)據(jù)體中包含模板數(shù)據(jù),則將更新的模版數(shù)據(jù)保存到本地,并更新C。最后,調(diào)用打印數(shù)據(jù)解析引擎,將H和G解析為可打印信息,并發(fā)送到系統(tǒng)打印隊(duì)列,完成打印??蛻舳伺c服務(wù)器端采用標(biāo)準(zhǔn)WebService進(jìn)行數(shù)據(jù)通訊,可適應(yīng)局域網(wǎng)、互聯(lián)網(wǎng)等多種網(wǎng)絡(luò)結(jié)構(gòu),實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)的本地打印功能。圖5為根據(jù)本發(fā)明ー個(gè)實(shí)施例的基于遠(yuǎn)程票據(jù)信息的本地打印裝置模塊圖。如圖5所示,該裝置包括獲取模塊10,用于根據(jù)用戶打印請(qǐng)求的票據(jù)標(biāo)識(shí)通過服務(wù)器的數(shù)據(jù)服務(wù)接ロ獲取動(dòng)態(tài)因子;動(dòng)態(tài)因子生成模塊20,用于根據(jù)用戶打印請(qǐng)求的票據(jù)標(biāo)識(shí)生成動(dòng)態(tài)因子,并對(duì)來自打印客戶端的動(dòng)態(tài)因子的有效性進(jìn)行判斷;第一加密模塊30,用于將打印客戶端標(biāo)識(shí)、動(dòng)態(tài)因子和打印客戶端本地保存的票據(jù)模版數(shù)據(jù)版本號(hào)進(jìn)行加密,得到第一數(shù)據(jù)包,并將第一數(shù)據(jù)包發(fā)送至服務(wù)器;第一解密模塊40,用于在服務(wù)器端對(duì)第一數(shù)據(jù)包進(jìn)行解密,得到打印客戶端標(biāo)識(shí)、動(dòng)態(tài)因子、票據(jù)模版數(shù)據(jù)版本號(hào)和票據(jù)標(biāo)識(shí),對(duì)打印客戶端標(biāo)識(shí)和動(dòng)態(tài)因子進(jìn)行檢驗(yàn),若打印客戶端標(biāo)識(shí)和動(dòng)態(tài)因子為有效,根據(jù)票據(jù)標(biāo)識(shí)獲取票據(jù)的完整發(fā)票數(shù)據(jù);第二加密模塊50,用于對(duì)打印客戶端標(biāo)識(shí)、動(dòng)態(tài)因子和票據(jù)的完整發(fā)票數(shù)據(jù)進(jìn)行加密,得到第二數(shù)據(jù)包,并將第二數(shù)據(jù)包發(fā)送至打印客戶端;第二解密模塊60,用于在打印客戶端對(duì)第二數(shù)據(jù)包進(jìn)行解密,得到打印客戶端標(biāo)識(shí)、動(dòng)態(tài)因子和票據(jù)的完整發(fā)票數(shù)據(jù),并將票據(jù)的完整發(fā)票信息解析為可打印信息,進(jìn)行打印。例如,在上述實(shí)施例中,第一加密模塊包括第一 AES/CBC密鑰生成単元,用于讀取打印客戶端本地保存的相應(yīng)模版數(shù)據(jù)版本號(hào),動(dòng)態(tài)生成第一 AES/CBC加解密密鑰 ,第一RSA加密單元,用于讀取打印客戶端安全存儲(chǔ)區(qū)的RSA加解密私鑰,根據(jù)RSA加解密私鑰對(duì)動(dòng)態(tài)因子和第一 AES/CBC加解密密鑰進(jìn)行加密,并將加密的第一數(shù)據(jù)包發(fā)送至服務(wù)器。第一解密模塊包括第一 RSA解密模塊,用于從服務(wù)器獲取打印客戶端對(duì)應(yīng)的RSA加解密公鑰,將RSA加解密公鑰作為密鑰對(duì)第一數(shù)據(jù)包的數(shù)據(jù)頭進(jìn)行解密,得到動(dòng)態(tài)因子和第一AES/CBC加解密密鑰;第一 AES/CBC解密單元,用于當(dāng)動(dòng)態(tài)因子生成模塊判斷動(dòng)態(tài)因子為有效時(shí),根據(jù)第一 AES/CBC加解密密鑰對(duì)第一數(shù)據(jù)包的數(shù)據(jù)體進(jìn)行AES/CBC解密,得到模版數(shù)據(jù)版本號(hào)和票據(jù)標(biāo)識(shí),井根據(jù)票據(jù)標(biāo)識(shí)獲取票據(jù)的完整發(fā)票數(shù)據(jù)。例如,在上述實(shí)施例中,第二加密模塊包括第二 AES/CBC密鑰生成単元,用于動(dòng)態(tài)生成第二 AES/CBC加解密密鑰;第二 RSA加密單元,用于以服務(wù)器安全存儲(chǔ)區(qū)的RSA加解密私鑰為密鑰對(duì)打印客戶端標(biāo)識(shí)、動(dòng)態(tài)因子和第二 AES/CBC加解密密鑰進(jìn)行RSA加密;第二 AES/CBC加密單元,用于以第二 AES/CBC加解密密鑰為密鑰對(duì)票據(jù)的完整發(fā)票數(shù)據(jù)進(jìn)行AES/CBC加密,以組成第二數(shù)據(jù)包,并將第二數(shù)據(jù)包發(fā)送至打印客戶端。第二解密模塊包括第二 RSA解密單元,用于在打印客戶端以對(duì)應(yīng)服務(wù)器的RSA加解密公鑰為密鑰對(duì)第二數(shù)據(jù)包的數(shù)據(jù)頭進(jìn)行RSA解密,得到打印客戶端標(biāo)識(shí)、動(dòng)態(tài)因子和第二 AES/CBC加解密密鑰;第二 AES/CBC解密單元,用于對(duì)打印客戶端標(biāo)識(shí)和動(dòng)態(tài)因子的有效性進(jìn)行驗(yàn)證后,以第ニ AES/CBC加解密密鑰為密鑰對(duì)第二數(shù)據(jù)包的數(shù)據(jù)體進(jìn)行AES/CBC解密,得到票據(jù)的完整 發(fā)票信息;以及打印信息解析単元,用于將票據(jù)的完整發(fā)票信息解析為可打印信息,進(jìn)行打印。本發(fā)明的上述實(shí)施例實(shí)現(xiàn)ー種基于發(fā)票數(shù)據(jù)信息遠(yuǎn)程存儲(chǔ)的本地打印方法和裝置,提供了ー種安全高效的打印方案,而現(xiàn)有技術(shù)中增值稅防偽稅控系統(tǒng)的發(fā)票開具子系統(tǒng)為單機(jī)運(yùn)行的軟件,發(fā)票數(shù)據(jù)和發(fā)票打印均在本地存儲(chǔ)和完成。本領(lǐng)域普通技術(shù)人員可以理解附圖只是ー個(gè)實(shí)施例的示意圖,附圖中的模塊或流程并不一定是實(shí)施本發(fā)明所必須的。本領(lǐng)域普通技術(shù)人員可以理解實(shí)施例中的裝置中的模塊可以按照實(shí)施例描述分布于實(shí)施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施例的ー個(gè)或多個(gè)裝置中。上述實(shí)施例的模塊可以合并為ー個(gè)模塊,也可以進(jìn)ー步拆分成多個(gè)子模塊。上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲(chǔ)于ー計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括R0M、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。最后應(yīng)說明的是以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解其依然可以對(duì)前述實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明實(shí)施例技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種基于遠(yuǎn)程票據(jù)信息的本地打印方法,其特征在于,包括以下步驟 根據(jù)用戶打印請(qǐng)求的票據(jù)標(biāo)識(shí)通過服務(wù)器的數(shù)據(jù)服務(wù)接ロ獲取動(dòng)態(tài)因子; 將打印客戶端標(biāo)識(shí)、所述動(dòng)態(tài)因子和打印客戶端本地保存的票據(jù)模版數(shù)據(jù)版本號(hào)進(jìn)行加密,得到第一數(shù)據(jù)包,并將所述第一數(shù)據(jù)包發(fā)送至所述服務(wù)器; 在所述服務(wù)器端對(duì)所述第一數(shù)據(jù)包進(jìn)行解密,得到所述打印客戶端標(biāo)識(shí)、所述動(dòng)態(tài)因子、所述票據(jù)模版數(shù)據(jù)版本號(hào)和所述票據(jù)標(biāo)識(shí),對(duì)所述打印客戶端標(biāo)識(shí)和所述動(dòng)態(tài)因子進(jìn)行檢驗(yàn),若所述打印客戶端標(biāo)識(shí)和所述動(dòng)態(tài)因子為有效,根據(jù)所述票據(jù)標(biāo)識(shí)獲取票據(jù)的完整發(fā)票數(shù)據(jù); 對(duì)所述打印客戶端標(biāo)識(shí)、所述動(dòng)態(tài)因子和所述票據(jù)的完整發(fā)票數(shù)據(jù)進(jìn)行加密,得到第ニ數(shù)據(jù)包,并將所述第二數(shù)據(jù)包發(fā)送至所述打印客戶端; 在所述打印客戶端對(duì)所述第二數(shù)據(jù)包進(jìn)行解密,得到所述打印客戶端標(biāo)識(shí)、所述動(dòng)態(tài)因子和所述票據(jù)的完整發(fā)票數(shù)據(jù),并將所述票據(jù)的完整發(fā)票信息解析為可打印信息,進(jìn)行打印。
2.根據(jù)權(quán)利要求I所述的本地打印方法,其特征在于,將所述動(dòng)態(tài)因子和打印客戶端本地保存的票據(jù)模版數(shù)據(jù)版本號(hào)進(jìn)行加密,得到第一數(shù)據(jù)包,并將所述第一數(shù)據(jù)包發(fā)送至所述服務(wù)器步驟包括 讀取所述打印客戶端本地保存的票據(jù)模版數(shù)據(jù)版本號(hào),動(dòng)態(tài)生成第一 AES/CBC加解密密鑰,讀取所述打印客戶端安全存儲(chǔ)區(qū)的RSA加解密私鑰,根據(jù)所述RSA加解密私鑰對(duì)所述打印客戶端標(biāo)識(shí)、所述動(dòng)態(tài)因子和所述第一 AES/CBC加解密密鑰進(jìn)行加密,并將加密的第一數(shù)據(jù)包發(fā)送至所述服務(wù)器。
3.根據(jù)權(quán)利要求2所述的本地打印方法,其特征在于,在所述服務(wù)器端對(duì)所述第一數(shù)據(jù)包進(jìn)行解密,得到所述打印客戶端標(biāo)識(shí)、所述動(dòng)態(tài)因子、所述票據(jù)模版數(shù)據(jù)版本號(hào)和所述票據(jù)標(biāo)識(shí),對(duì)所述動(dòng)態(tài)因子進(jìn)行檢驗(yàn),若所述動(dòng)態(tài)因子為有效,根據(jù)所述票據(jù)標(biāo)識(shí)獲取票據(jù)的完整發(fā)票數(shù)據(jù)步驟包括 從所述服務(wù)器獲取所述打印客戶端對(duì)應(yīng)的RSA加解密公鑰,將所述RSA加解密公鑰作為密鑰對(duì)所述第一數(shù)據(jù)包的數(shù)據(jù)頭進(jìn)行解密,得到所述動(dòng)態(tài)因子和所述第一 AES/CBC加解密密鑰; 若所述動(dòng)態(tài)因子為有效,根據(jù)所述第一 AES/CBC加解密密鑰對(duì)所述第一數(shù)據(jù)包的數(shù)據(jù)體進(jìn)行AES/CBC解密,得到所述模版數(shù)據(jù)版本號(hào)和所述票據(jù)標(biāo)識(shí),根據(jù)所述票據(jù)標(biāo)識(shí)獲取票據(jù)的完整發(fā)票數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的本地打印方法,其特征在干,對(duì)所述打印客戶端標(biāo)識(shí)、所述動(dòng)態(tài)因子和所述票據(jù)的完整發(fā)票數(shù)據(jù)進(jìn)行加密,得到第二數(shù)據(jù)包,并將所述第二數(shù)據(jù)包發(fā)送至所述打印客戶端步驟包括 動(dòng)態(tài)生成第二 AES/CBC加解密密鑰,以所述服務(wù)器安全存儲(chǔ)區(qū)的RSA加解密私鑰為密鑰對(duì)打印客戶端標(biāo)識(shí)、所述動(dòng)態(tài)因子和所述第二 AES/CBC加解密密鑰進(jìn)行RSA加密,以所述第二 AES/CBC加解密密鑰為密鑰對(duì)所述票據(jù)的完整發(fā)票數(shù)據(jù)進(jìn)行AES/CBC加密,以組成第ニ數(shù)據(jù)包,并將所述第二數(shù)據(jù)包發(fā)送至所述打印客戶端。
5.根據(jù)權(quán)利要求4所述的本地打印方法,其特征在于,在所述打印客戶端對(duì)所述第二數(shù)據(jù)包進(jìn)行解密,得到所述打印客戶端標(biāo)識(shí)、所述動(dòng)態(tài)因子和所述票據(jù)的完整發(fā)票數(shù)據(jù),井將所述票據(jù)的完整發(fā)票信息解析為可打印信息,進(jìn)行打印步驟包括 在所述打印客戶端以對(duì)應(yīng)所述服務(wù)器的RSA加解密公鑰為密鑰對(duì)所述第二數(shù)據(jù)包的數(shù)據(jù)頭進(jìn)行RSA解密,得到所述打印客戶端標(biāo)識(shí)、所述動(dòng)態(tài)因子和所述第二 AES/CBC加解密密鑰; 對(duì)所述打印客戶端標(biāo)識(shí)和所述動(dòng)態(tài)因子的有效性進(jìn)行驗(yàn)證后,以所述第二 AES/CBC加解密密鑰為密鑰對(duì)所述第二數(shù)據(jù)包的數(shù)據(jù)體進(jìn)行AES/CBC解密,得到所述票據(jù)的完整發(fā)票信息,并將所述票據(jù)的完整發(fā)票信息解析為可打印信息,進(jìn)行打印。
6.根據(jù)權(quán)利要求I所述的本地打印方法,其特征在干,當(dāng)根據(jù)所述模版數(shù)據(jù)版本號(hào)檢測(cè)到所述服務(wù)器存在更新的模版數(shù)據(jù)時(shí),所述第二數(shù)據(jù)包的數(shù)據(jù)體還包括更新的模版數(shù)據(jù),并將所述更新的模版數(shù)據(jù)保存到所述打印客戶端,用所述更新的模版數(shù)據(jù)更新所述模版數(shù)據(jù)。
7.根據(jù)權(quán)利要求I所述的本地打印方法,其特征在于,所述服務(wù)器和所述打印客戶端之間的通信方式為Web Service通信方式。
8.一種基于遠(yuǎn)程票據(jù)信息的本地打印裝置,其特征在于,包括 獲取模塊,用于根據(jù)用戶打印請(qǐng)求的票據(jù)標(biāo)識(shí)通過服務(wù)器的數(shù)據(jù)服務(wù)接ロ獲取動(dòng)態(tài)因子; 動(dòng)態(tài)因子生成模塊,用于根據(jù)用戶打印請(qǐng)求的票據(jù)標(biāo)識(shí)生成動(dòng)態(tài)因子,并對(duì)來自打印客戶端的動(dòng)態(tài)因子的有效性進(jìn)行判斷; 第一加密模塊,用于將所述打印客戶端標(biāo)識(shí)、所述動(dòng)態(tài)因子和打印客戶端本地保存的票據(jù)模版數(shù)據(jù)版本號(hào)進(jìn)行加密,得到第一數(shù)據(jù)包,并將所述第一數(shù)據(jù)包發(fā)送至所述服務(wù)器; 第一解密模塊,用于在所述服務(wù)器端對(duì)所述第一數(shù)據(jù)包進(jìn)行解密,得到所述打印客戶端標(biāo)識(shí)、所述動(dòng)態(tài)因子、所述票據(jù)模版數(shù)據(jù)版本號(hào)和所述票據(jù)標(biāo)識(shí),對(duì)所述打印客戶端標(biāo)識(shí)和所述動(dòng)態(tài)因子進(jìn)行檢驗(yàn),若所述打印客戶端標(biāo)識(shí)和所述動(dòng)態(tài)因子為有效,根據(jù)所述票據(jù)標(biāo)識(shí)獲取票據(jù)的完整發(fā)票數(shù)據(jù); 第二加密模塊,用于對(duì)所述打印客戶端標(biāo)識(shí)、所述動(dòng)態(tài)因子和所述票據(jù)的完整發(fā)票數(shù)據(jù)進(jìn)行加密,得到第二數(shù)據(jù)包,并將所述第二數(shù)據(jù)包發(fā)送至所述打印客戶端; 第二解密模塊,用于在所述打印客戶端對(duì)所述第二數(shù)據(jù)包進(jìn)行解密,得到所述打印客戶端標(biāo)識(shí)、所述動(dòng)態(tài)因子和所述票據(jù)的完整發(fā)票數(shù)據(jù),并將所述票據(jù)的完整發(fā)票信息解析為可打印信息,進(jìn)行打印。
9.根據(jù)權(quán)利要求8所述的本地打印裝置,其特征在于 所述第一加密模塊包括 第一 AES/CBC密鑰生成単元,用于讀取所述打印客戶端本地保存的相應(yīng)模版數(shù)據(jù)版本號(hào),動(dòng)態(tài)生成第一 AES/CBC加解密密鑰; 第一 RSA加密單元,用于讀取所述打印客戶端安全存儲(chǔ)區(qū)的RSA加解密私鑰,根據(jù)所述RSA加解密私鑰對(duì)所述動(dòng)態(tài)因子和所述第一 AES/CBC加解密密鑰進(jìn)行加密,并將加密的第一數(shù)據(jù)包發(fā)送至所述服務(wù)器; 所述第一解密模塊包括 第一 RSA解密模塊,用于從所述服務(wù)器獲取所述打印客戶端對(duì)應(yīng)的RSA加解密公鑰,將所述RSA加解密公鑰作為密鑰對(duì)所述第一數(shù)據(jù)包的數(shù)據(jù)頭進(jìn)行解密,得到所述動(dòng)態(tài)因子和所述第一 AES/CBC加解密密鑰; 第一 AES/CBC解密單元,用于當(dāng)所述動(dòng)態(tài)因子生成模塊判斷動(dòng)態(tài)因子為有效時(shí),根據(jù)所述第一 AES/CBC加解密密鑰對(duì)所述第一數(shù)據(jù)包的數(shù)據(jù)體進(jìn)行AES/CBC解密,得到所述模版數(shù)據(jù)版本號(hào)和所述票據(jù)標(biāo)識(shí),井根據(jù)所述票據(jù)標(biāo)識(shí)獲取票據(jù)的完整發(fā)票數(shù)據(jù)。
10.根據(jù)權(quán)利要求8所述的本地打印裝置,其特征在于 所述第二加密模塊包括 第二 AES/CBC密鑰生成単元,用于動(dòng)態(tài)生成第二 AES/CBC加解密密鑰; 第二 RSA加密單元,用于以所述服務(wù)器安全存儲(chǔ)區(qū)的RSA加解密私鑰為密鑰對(duì)打印客戶端標(biāo)識(shí)、所述動(dòng)態(tài)因子和所述第二 AES/CBC加解密密鑰進(jìn)行RSA加密; 第二 AES/CBC加密單元,用于以所述第二 AES/CBC加解密密鑰為密鑰對(duì)所述票據(jù)的完整發(fā)票數(shù)據(jù)進(jìn)行AES/CBC加密,以組成第二數(shù)據(jù)包,并將所述第二數(shù)據(jù)包發(fā)送至所述打印客戶端; 第二 RSA解密單元,用于在所述打印客戶端以對(duì)應(yīng)所述服務(wù)器的RSA加解密公鑰為密鑰對(duì)所述第二數(shù)據(jù)包的數(shù)據(jù)頭進(jìn)行RSA解密,得到所述打印客戶端標(biāo)識(shí)、所述動(dòng)態(tài)因子和所述第二 AES/CBC加解密密鑰; 第二 AES/CBC解密單元,用于對(duì)所述打印客戶端標(biāo)識(shí)和所述動(dòng)態(tài)因子 的有效性進(jìn)行驗(yàn)證后,以所述第二 AES/CBC加解密密鑰為密鑰對(duì)所述第二 數(shù)據(jù)包的數(shù)據(jù)體進(jìn)行AES/CBC解密,得到所述票據(jù)的完整發(fā)票信息;以及 打印信息解析単元,用于將所述票據(jù)的完整發(fā)票信息解析為可打印信息,進(jìn)行打印。
全文摘要
本發(fā)明公開了一種基于遠(yuǎn)程票據(jù)信息的本地打印方法和裝置,其中方法包括根據(jù)用戶打印請(qǐng)求的票據(jù)標(biāo)識(shí)通過服務(wù)器的數(shù)據(jù)服務(wù)接口獲取動(dòng)態(tài)因子;將動(dòng)態(tài)因子和打印客戶端本地保存的票據(jù)模版數(shù)據(jù)版本號(hào)進(jìn)行加密,得到第一數(shù)據(jù)包并發(fā)送至服務(wù)器;在服務(wù)器端對(duì)第一數(shù)據(jù)包進(jìn)行解密,得到動(dòng)態(tài)因子、票據(jù)模版數(shù)據(jù)版本號(hào)和票據(jù)標(biāo)識(shí),對(duì)動(dòng)態(tài)因子進(jìn)行檢驗(yàn),根據(jù)票據(jù)標(biāo)識(shí)獲取票據(jù)的完整發(fā)票數(shù)據(jù);對(duì)打印客戶端標(biāo)識(shí)、動(dòng)態(tài)因子和票據(jù)的完整發(fā)票數(shù)據(jù)進(jìn)行加密,得到第二數(shù)據(jù)包,并將第二數(shù)據(jù)包發(fā)送至打印客戶端;在打印客戶端對(duì)第二數(shù)據(jù)包進(jìn)行解密,得到打印客戶端標(biāo)識(shí)、動(dòng)態(tài)因子和票據(jù)的完整發(fā)票數(shù)據(jù),并將票據(jù)的完整發(fā)票信息解析為可打印信息,進(jìn)行打印。
文檔編號(hào)G07G5/00GK102693597SQ20111007369
公開日2012年9月26日 申請(qǐng)日期2011年3月25日 優(yōu)先權(quán)日2011年3月25日
發(fā)明者單國(guó)軍, 灑西濤 申請(qǐng)人:航天信息股份有限公司