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