能卡貼近手機終端時,展示的頁面上的選項“查看余額”對應的智能卡讀寫指令即可為getData:0,1024(具體的指令定義規范可由平臺應用開發人員進行語法定義)。
[0099]步驟S208:獲取在頁面的功能菜單中觸發的選項,獲取觸發的選項對應的控制指令集中的智能卡控制指令,根據所述智能卡控制指令調用相應的接口函數對所述智能卡進行讀寫。
[0100]如前所述,若用戶觸發的選項為“查看余額”,則若貼近手機終端的智能卡為第一個食堂應用的智能卡,則獲取到的智能卡讀寫指令即可為getData:1024,2048,終端可調用標準函數庫中的getData函數,并將1024和2048作為參數傳入,即可執行該函數,調用平臺應用的客戶端程序中包含的智能卡讀寫驅動程序,通過NFC信號向智能卡發送讀取數據的APDU,然后接收智能卡同樣通過NFC信號返回的包含有余額的APDU,從而得到飯卡的余額并展示在頁面上。
[0101]若用戶觸發的選項為“查看余額”,則若貼近手機終端的智能卡為第二個食堂應用的智能卡,則獲取到的智能卡讀寫指令即可為getData:0,1024,終端可調用標準函數庫中的getData函數,并將0和1024作為參數傳入,即可執行該函數,調用平臺應用的客戶端程序中包含的智能卡讀寫驅動程序,通過NFC信號向智能卡發送讀取數據的APDU,然后接收智能卡同樣通過NFC信號返回的包含有余額的APDU,從而得到飯卡的余額并展示在頁面上。
[0102]具體的,智能卡、終端、平臺應用服務器和第三方應用服務器的交互過程可如圖5所示。
[0103]上述第一種和第二種讀寫智能卡的方法中,終端上的平臺應用的客戶端程序均需包含對智能卡讀寫的標準函數庫或者標準指令庫,不管智能卡的應用類型為何,均通過調用平臺應用的客戶端程序中包含的標準函數庫或者標準指令庫中的函數進行讀寫。
[0104]第一種與第二種讀寫智能卡的方法不同點在于,為了適配不同的第三方應用的智能卡的設計規范,第一種讀寫智能卡的方法公開的內容為標準化的指令腳本庫,第三方應用開發人員可根據第三方應用的業務自行設計頁面,也需要根據業務在平臺應用公開的標準腳本集中選擇相應的指令腳本并添加與業務適配的參數。
[0105]而第二種讀寫智能卡的方法公開的內容為標準化的函數庫或指令庫,頁面由平臺應用的開發人員定義,但第三方應用需要根據頁面中的功能菜單的選項對應的具體業務在標準函數庫或標準指令庫中選擇適當的函數并添加與該業務適配的參數。
[0106]但從整體來看,上述第一種與第二種讀寫智能卡的方法均需要終端上的平臺應用的客戶端程序包含對智能卡讀寫的標準函數庫或者標準指令庫,均需要向第三方應用開發者公開標準函數庫或者標準指令庫的操作方式(第一種通過指令腳本,第二種直接公開),并由第三方應用開發者根據業務邏輯為頁面中的選項定義適配的智能卡讀寫指令,因此,第一種與第二種讀寫智能卡的方法基于同一發明創造。
[0107]同時,上述第一種與第二種讀寫智能卡的方法對于平臺應用上新擴展的第三方應用而言,該新擴展的第三方應用的開發者并不需要根據第三方應用的業務規范自行開發一套相應的智能卡驅動的程序包,而是利用平臺應用已經提供的標準腳本庫或者標準函數庫,在此基礎上通過自定義頁面以及配置指令腳本或者根據標準頁面設定標準函數庫中的函數的參數來將不同的業務與最終平臺應用的客戶端程序可識別的智能卡讀寫指令聯系起來,因此,終端上并不需要安裝新擴展的第三方應用的相關的智能卡驅動的程序包,既節約了終端的存儲空間,消除了冗余驅動包的存儲,又方便新應用進行擴展(在平臺應用服務器注冊即可),從而提高了平臺應用的擴展性。
[0108]為解決上述提到的傳統技術中的集成多種智能卡讀寫功能的平臺應用的讀寫智能卡的方式存在的擴展性較低的技術問題,在一個實施例中,如圖6所示,特提供了一種與前述第一種讀寫智能卡的方法對應的讀寫智能卡的裝置,包括第一智能卡檢測模塊102、第三方應用頁面展示模塊104、觸發選項獲取模塊106和第一智能卡讀寫模塊108,其中:
[0109]第一智能卡檢測模塊102,用于感應智能卡的接觸事件,獲取接觸事件對應的應用標識Ο
[0110]第三方應用頁面展示模塊104,用于查找所述應用標識對應的第三方應用鏈接,抓取所述第三方應用鏈接對應的網頁并展示,所述第三方應用鏈接對應網頁中包含有功能菜單,所述第三方應用鏈接對應網頁中包含有與功能菜單中的選項對應的指令腳本,所述指令腳本為第三方應用預先在預設的標準腳本庫中選取的與所述功能菜單的選項對應的指令腳本。
[0111]觸發選項獲取模塊106,用于獲取在所述第三方應用鏈接對應的網頁的所述功能菜單中觸發的選項,通過執行所述觸發的選項對應的指令腳本向平臺應用服務器發送智能卡控制請求。
[0112]第一智能卡讀寫模塊108,用于接收平臺應用服務器返回的與所述智能卡控制請求對應的智能卡控制指令,根據所述智能卡控制指令調用相應的接口函數對所述智能卡進行讀寫。
[0113]在本實施例中,第一智能卡檢測模塊102還用于感應近場通信信號,根據所述近場通信信號獲取智能卡的接觸事件。
[0114]在本實施例中,第三方應用頁面展示模塊104還用于獲取應用映射表,所述應用映射表中存儲有應用標識以及與應用標識對應的第三方應用鏈接;根據所述應用映射表查找所述應用標識對應的第三方應用鏈接;
[0115]在本實施例中,如圖6所示,該讀寫智能卡的裝置還包括應用映射表更新模塊110,用于定期更新所述應用映射表。
[0116]在本實施例中,第三方應用頁面展示模塊104還用于檢測所述第三方應用鏈接對應的網頁的加載完成事件獲取所述加載完成事件的事件處理函數調用的指令腳本,通過執行所述事件處理函數調用的指令腳本向平臺應用服務器發送智能卡控制請求,調用所述第一智能卡讀寫模塊。
[0117]為解決上述提到的傳統技術中的集成多種智能卡讀寫功能的平臺應用的讀寫智能卡的方式存在的擴展性較低的技術問題,在一個實施例中,如圖7所示,特提供了一種與前述第二種讀寫智能卡的方法對應的讀寫智能卡的裝置,包括第二智能卡檢測模塊202、平臺應用頁面展示模塊204、控制指令集獲取模塊206和第二智能卡讀寫模塊208,其中:
[0118]第二智能卡檢測模塊202,用于感應智能卡的接觸事件,獲取接觸事件對應的應用標識Ο
[0119]平臺應用頁面展示模塊204,用于展示與所述應用標識對應的頁面,所述頁面中包含有預定義的功能菜單。
[0120]控制指令集獲取模塊206,用于獲取所述應用標識對應的控制指令集,所述控制指令集為第三方應用預先在預設的標準指令集中選取的與所述應用標識對應的頁面中的功能菜單的選項對應的智能卡控制指令的集合。
[0121]第二智能卡讀寫模塊208,用于獲取在所述頁面的功能菜單中觸發的選項,獲取所述觸發的選項對應的所述控制指令集中的智能卡控制指令,根據所述智能卡控制指令調用相應的接口函數對所述智能卡進行讀寫。
[0122]在一個實施例中,控制指令集獲取模塊206用于將所述應用標識上傳至所述平臺應用服務器,所述平臺應用服務器獲取所述應用標識對應的第三方應用鏈接,根據所述第三方應用鏈接抓取與所述功能菜單中的選項對應的智能卡控制指令的控制指令集。
[0123]控制指令集獲取模塊206還用于接收所述平臺應用服務器返回的與所述功能菜單中的選項對應的智能卡控制指令的控制指令集。
[0124]實施本發明實施例,將具有如下有益效果:
[0125]上述第一種與第二種讀寫智能卡的方法對于平臺應用上新擴展的第三方應用而言,該新擴展的第三方應用的開發者并不需要根據第三方應用的業務規范自行開發一套相應的智能卡驅動的程序包,而是利用平臺應用已經提供的標準腳本庫或者標準函數庫,在此基礎上通過自定義頁面以及配置指令腳本或者根據標準頁面設定標準函數庫中的函數的參數來將不同的業務與最終平臺應用的客戶端程序可識別的智能卡讀寫指令聯系起來,因此,終端上并不需要安裝新擴展的第三方應用的相關的智能卡驅動的程序包,既節約了終端的存儲空間,消除了冗余驅動包的存儲,又方便新應用進行擴展(在平臺應用服務器注冊即可),從而提高了平臺應用的擴展性。
[0126]在一個實施例中,如圖8所示,圖8展示了一種運行上述第一種或第二種讀寫智能卡的方法的基于馮諾依曼...