中國移動TSM平臺接入開發(fā)指引_第1頁
中國移動TSM平臺接入開發(fā)指引_第2頁
中國移動TSM平臺接入開發(fā)指引_第3頁
中國移動TSM平臺接入開發(fā)指引_第4頁
中國移動TSM平臺接入開發(fā)指引_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、多應用開放平臺應用接入開發(fā)指引修改歷史姓名版本完成時間備注許旭2014-5-7初次建立該文檔目錄1術語52平臺概況52.1平臺概述53開發(fā)范圍53.1應用模式53.2應用客戶端63.3NFC-SIM卡應用63.4業(yè)務平臺64開發(fā)流程65流程說明75.1應用流程7下載7刪除9應用更新106卡應用開發(fā)指南116.1卡應用開發(fā)模式116.2卡應用開發(fā)要求126.3密鑰交換流程126.4卡應用開發(fā)126.5卡應用發(fā)布更新127客戶端開發(fā)指南127.1應用客戶端開發(fā)要求127.2客戶端開發(fā)準備127.3設置開發(fā)環(huán)境137.4客戶端開發(fā)16創(chuàng)建工程16編寫AndroidManifest.xml文件16手機

2、客戶端開發(fā)編碼17代碼示例183.1客戶端發(fā)布更新184業(yè)務平臺開發(fā)指南184.1接口描述18WebService名字空間18接口列表18數(shù)據(jù)類型說明19數(shù)據(jù)域說明19消息類型描述215.5.1. CreateSSDReq255.5.2. CreateSSDReqResponse255.5.3. DeleteSSDReq255.5.4. DeleteSSDReqResponse265.5.5. UpdateDomainKeyReq265.5.6. UpdateDomainKeyReqResponse265.5.7. DownloadApplicationReq275.5.8. Download

3、ApplicationReqResponse275.5.9. ApplicationAPDUReq275.5.10. ApplicationAPDUReqResponse285.5.11. DeleteApplicationReq285.5.12. DeleteApplicationReqResponse295.5.13. LockApplicationReq295.5.14. LockApplicationReqResponse295.5.15. AcquireTokenReq295.5.16. AcquireTokenReqResponse305常見問題301 術語術語解釋BOSSBusi

4、ness Operation Support System 業(yè)務運營支撐系統(tǒng)2 平臺概況2.1 平臺概述NFC手機錢包是中國移動向各個應用合作方開放的一套完整的NFC業(yè)務端到端的解決方案,可以向應用合作方開放NFC手機終端非接式卡模擬能力、多應用管理平臺(TSM)業(yè)務接口、NFC-SIM上的安全存儲空間、和包客戶端集成接口等NFC應用各個環(huán)節(jié)上所需的資源,幫助各個應用合作方根據(jù)自身業(yè)務流程開發(fā)出支持不同業(yè)務的NFC應用,并集成在中國移動NFC手機錢包這個大的業(yè)務平臺中,統(tǒng)一向所有中國移動的用戶進行推廣。 本文檔是用于對各應用合作方開發(fā)各自的NFC應用進行一個基礎性的技術指引,明確產(chǎn)品開發(fā)的一個

5、基本流程,提供開發(fā)過程中可能需要用到的各類技術文檔的索引,并對開發(fā)過程中可能遇到的技術問題進行解答。 本文檔適用于NFC手機錢包應用產(chǎn)品開發(fā)技術人員閱讀3 開發(fā)范圍3.1 應用模式NFC應用包含幾下幾種模式,每次模式對應的開發(fā)范圍也是不一樣的,幾種應用模式開發(fā)范圍如下:1、 純客戶端模式應用所有功能均直接由應用客戶端實現(xiàn),應用的相關數(shù)據(jù)沒有安全存儲要求,均可隨客戶端一起直接存儲于手機的存儲空間中。典型應用有:NFC名片應用。2、 客戶端結(jié)合卡應用模式應用的業(yè)務功能由應用客戶端與NFC-SIM卡應用交互完成,應用中涉及用戶敏感數(shù)據(jù),需要將其存儲在NFC-SIM的安全存儲空間中,確保數(shù)據(jù)安全。典型

6、應用有:簡單公交卡應用(不支持空中開卡、空中充值)、旅游卡、電子門票等。3、 客戶端、卡應用加業(yè)務平臺模式應用的業(yè)務功能由應用客戶端與NFC-SIM卡應用、業(yè)務平臺交互完成,客戶端本地與NFC-SIM交互,實現(xiàn)應用數(shù)據(jù)在SIM卡上的安全存儲,客戶端遠端通過移動互聯(lián)網(wǎng)與業(yè)務平臺交互,實現(xiàn)相應的業(yè)務功能。典型應用有:金融PBOC應用、公交卡應用(支持空中開卡、空中充值)。3.2 應用客戶端 應用客戶端開發(fā)包含應用客戶端的界面交互設計、客戶端業(yè)務處理邏輯以及對NFC-SIM卡的訪問邏輯。3.3 NFC-SIM卡應用 NFC-SIM卡上應用處理邏輯,包括卡應用文件結(jié)構(gòu)定義與實現(xiàn)、卡應用與客戶端交互指令

7、的定義與實現(xiàn)、卡應用與非接受理機具交互指令的定義與實現(xiàn)。3.4 業(yè)務平臺 實現(xiàn)NFC應用業(yè)務平臺側(cè)的相關處理功能,通過與TSM平臺對接,可以由業(yè)務平臺側(cè)獲取到用戶手機號狀態(tài)變更、業(yè)務訂購關系變化等通知信息,以便進行相應的業(yè)務處理。4 開發(fā)流程5 流程說明5.1 應用流程5.1.1 下載正常流程:1、 用戶在和包客戶端卡應用超市點擊應用下載。2、 和包客戶端向多應用開放平臺發(fā)送應用下載請求。3、 多應用開放平臺向業(yè)務平臺發(fā)起“預操作請求”(SessionType為1)。4、 業(yè)務平臺審核用戶下載請求,如果審核通過返回0000;否則返回錯誤碼和錯誤信息,預處理響應中ProviderSessionI

8、D字段不能為空,該值由業(yè)務平臺生成并保證唯一性。5、 多應用開放平臺向和包客戶端返回寫卡指令。6、 和包客戶端和多應用開放平臺多次交互完成輔助安全域創(chuàng)建、輔助安全域初始密鑰加載、SE應用下載、安裝。7、 多應用開放平臺向業(yè)務平臺發(fā)起“SE操作反饋請求”,SessionID與“預操作響應”的ProviderSessionID一致。8、 業(yè)務平臺返回結(jié)果。9、 下載應用客戶端插件。10、 和包客戶端主界面顯示新下載的應用圖片。11、 用戶點擊卡片圖片啟動客戶端插件。12、 用戶在客戶端插件中申請卡片。13、 客戶端插件向銀行后臺發(fā)送用戶申請請求。14、 通知用戶申請通過。15、 用戶再次進入客戶端

9、插件。16、 客戶端插件從銀行獲取個人化數(shù)據(jù)對應用進行個人化。17、 完成應用下載。說明:1、 如果輔助安全域在SIM卡上已經(jīng)存在,不會重復創(chuàng)建輔助安全域5.1.2 刪除1、 用戶在客戶端插件中發(fā)起注銷卡請求。2、 銀行業(yè)務平臺處理用戶注銷卡請求,并通過客戶端插件處理卡上余額。3、 用戶在和包客戶端應用管理界面請求刪除應用。4、 和包客戶端向多應用開放平臺發(fā)送應用刪除請求。5、 多應用開放平臺向業(yè)務平臺發(fā)起“預操作請求”(SessionType為2,SessionID為新生成)。6、 業(yè)務平臺審核用戶下載請求,如果審核通過返回0000;否則返回錯誤碼和錯誤信息,預處理響應中ProviderSe

10、ssionID字段不能為空,該值由業(yè)務平臺生成并保證唯一性。7、 多應用開放平臺向和包客戶端返回寫卡指令。8、 和包客戶端和多應用開放平臺多次交互完成SE應用刪除。9、 多應用開放平臺向業(yè)務平臺發(fā)起“SE操作反饋請求”,SessionID與“預操作響應”的ProviderSessionID一致。10、 業(yè)務平臺返回結(jié)果11、 和包客戶端刪除應用的客戶端12、 應用刪除完成說明:1、 用戶卡片個人化后未進行注銷操作,銀行業(yè)務平臺應該在“預操作請求”時返回錯誤信息提示用戶先進行注銷,避免卡上有余額造成用戶損失。2、 完成應用刪除后如果輔助安全域中沒有其他應用,將會刪除該輔助安全域。5.1.3 應用

11、更新1、 用戶在手機錢包客戶端主界面請求更新應用。2、 手機錢包客戶端向多應用開放平臺發(fā)送應用更新請求。3、 多應用開放平臺向業(yè)務平臺發(fā)起“預操作請求”(SessionType為3,SessionID為新生成)。4、 業(yè)務平臺審核用戶下載請求,如果審核通過返回0000;否則返回錯誤碼和錯誤信息,預處理響應中ProviderSessionID字段不能為空,該值由業(yè)務平臺生成并保證唯一性。5、 多應用開放平臺向手機錢包客戶端返回寫卡指令。6、 手機錢包客戶端和多應用開放平臺多次交互完成SE應用更新。7、 多應用開放平臺向業(yè)務平臺發(fā)起“SE操作反饋請求”,SessionID與“預操作響應”的Prov

12、iderSessionID一致。8、 業(yè)務平臺返回結(jié)果,如果需要進行個人化,響應報文中含個人化數(shù)據(jù)9、 如果業(yè)務平臺響應報文中不含個人化數(shù)據(jù),跳到15,否則。10、 多應用開放平臺向手機錢包客戶端返回個人化指令。11、 手機錢包客戶端依次向SE發(fā)送個人化APDU指令,直到所有APDU執(zhí)行完畢,或卡片返回錯誤(SW不為9000)。12、 手機錢包客戶端向多應用開放平臺返回最后一條APDU執(zhí)行結(jié)果。13、 多應用開放平臺向業(yè)務平臺發(fā)起“SE操作反饋請求”,SessionID與“預操作請求”時一直,通過CardPOR發(fā)送最后一條APDU執(zhí)行結(jié)果。14、 重復9到13步直到個人化過程完成。15、 多應

13、用開放平臺向手機錢包客戶端返回結(jié)果。16、 應用更新完成。異常處理1、 第4步時,業(yè)務平臺對本次更新請求審核不通過,向用戶提示業(yè)務平臺返回的錯誤信息,流程結(jié)束。2、 第5-6步過程中出現(xiàn)異常,用戶可以在手機錢包主界面重新請求更新應用,重新更新應用時會再次向業(yè)務平臺發(fā)起“預操作請求”。3、 卡片執(zhí)行個人化指令時,指令執(zhí)行的結(jié)果通過“SE操作反饋請求”發(fā)送給業(yè)務平臺,由業(yè)務平臺判斷當指令執(zhí)行狀態(tài)字(SW)不為9000時是否繼續(xù)執(zhí)行。4、 第7-14步過程中發(fā)生錯誤,用戶可以在手機錢包主界面對該應用進行刪除操作,或在應用超市界面重新下載該應用。用戶在應用超市重新下載改應用時,多應用平臺會重新發(fā)起預處

14、理請求,然后刪除實例并重新創(chuàng)建,再重新執(zhí)行7-14步的流程。6 卡應用開發(fā)指南6.1 卡應用開發(fā)模式l 移植模式如果卡應用之前已經(jīng)在IC卡上實現(xiàn),那么只需要將原卡應用的文件結(jié)構(gòu),指令定義提交給NFC-SIM卡的卡商,便可由卡商協(xié)助完成卡應用的移植工作。l 委托開發(fā)模式如果卡應用需全新開發(fā),可以將卡應用的需求描述清楚,委托NFC-SIM卡的卡商進行開發(fā)。因為卡應用開發(fā)需要對卡片有一定了解,具有較強的專業(yè)性,建議采用委托卡商開發(fā)的模式來完成卡應用開發(fā)。現(xiàn)階段,各家卡商為了推廣卡片,提升市場占有率,一般會比較積極的接收開發(fā)需求。6.2 卡應用開發(fā)要求1、 空間要求:金融類卡應用對RAM空間占用不超過

15、1.5K,其他卡應用對RAM空間占用不超0.5K。2、 卡應用返回碼要求:除61xx - 6Fxx & 9xxx外的返回碼都是非法的狀態(tài)字,可能會對卡片產(chǎn)生影響,卡應用需嚴格控制。6.3 密鑰交換流程如果卡應用有申請獨立的輔助安全域,則需要對輔助安全域的初始密鑰者約定,密鑰約定有兩種操作模式,一種是由應用合作方提供初始密鑰,將密鑰碼單通過密碼信封提供給電子商務基地,另一種是電子商務基地生成初始密鑰,并將密鑰碼單通過密碼信封提供給應用合作方。6.4 卡應用開發(fā)一個典型的Java Card設備有一個8或16位的運行在3.7MHz的中央處理器,帶有1K的RAM和多于16K的非易失性存儲器(可

16、編程只讀存儲器或者閃存)。高性能的智能卡帶有單獨的處理器和加密芯片,以及用于加密的內(nèi)存,并且有一些還帶有32位的中央處理器。Java Card技術規(guī)范目前是2.2版,由三部分組成:1. Java Card虛擬機規(guī)范,定義了用于智能卡的Java程序語言的一個子集和虛擬機。2. Java Card運行時環(huán)境規(guī)范,進一步定義了用于基于Java的智能卡的運行期行為。3. Java Card應用編程接口規(guī)范,定義了用于智能卡應用程序核心框架和擴展Java程序包和類。6.4.1 JavaCard開發(fā)教程之程序元素完整的Java Card應用程序由一個后端應用程序和系統(tǒng)、一個主機(卡外)應用程序、一個接口設

17、備(讀卡器)和卡上小應用程序、用戶證書和支持軟件組成。所有的這些元素共同組成一個安全的端到端應用程序:一個典型的Java Card應用程序不是孤立的,而是包含卡端、讀取端和后端元素。讓我們更詳細的講述一下每個元素。 后端應用程序和系統(tǒng)后端應用程序提供了支持卡上Java小應用程序的服務。 例如,一個后端應用程序可以提供到安全系統(tǒng)和卡上的證書的連接,提供強大的安全性。在一個電子付款系統(tǒng)中,后端應用程序可以提供到信用卡及其他付款信息的訪問。讀取端主應用程序主應用程序存在于一個例如個人計算機這樣的臺式機或者終端、電子付款終端、手機或者一個安全子系統(tǒng)中。主應用程序處理用戶、Java Card小應用程序和

18、供應商的后端應用程序之間的通訊。讀取端卡片接受設備卡片接受設備(CAD)是處于主應用程序和Java Card設備之間的接口設備。一個CAD為卡片提供電力,以及與之進行電子或者射頻通信。一個CAD可能是一個使用串行端口附于臺式計算機的讀卡器,或者可能被整合到終端內(nèi),例如飯店或者加油站內(nèi)的電子付款終端。接口設備從主應用程序到卡片轉(zhuǎn)送應用程序協(xié)議數(shù)據(jù)單元( Application Protocol Data Unit,簡稱APDU)命令(在后面討論),并且從卡片向主應用程序轉(zhuǎn)送響應。一些CAD有用于輸入個人識別號碼的鍵盤,有的可能還有顯示屏??ㄆ诵贸绦蚝铜h(huán)境Java Card平臺是一個多應用程

19、序環(huán)境??ㄆ峡赡艽嬖谝粋€或多個Java Card小應用程序,還有支持軟件-卡片的操作系統(tǒng)和Java Card運行時環(huán)境(JCRE)一起。JCRE由Java Card虛擬機、Java Card Framework和應用程序編程接口以及一些擴展應用程序編程接口組成。所有的Java Card小應用程序擴展Applet基本類,并且必須實現(xiàn)install()和process()方法;JCRE在安裝小應用程序的時候調(diào)用install(),并且在每次有一個進入的用于小應用程序的APDU的時候調(diào)用process()。Java Card小應用程序在被裝載的時候?qū)嵗?,并且在斷電的時候保持運行。Java Car

20、d小應用程序起一個服務器的作用,并且是無源的。在一張卡片被加電以后,每個小應用程序都保持非運行的狀態(tài)直到它被選擇,在此時可能會做初始化。小應用程序只有在一個APDU被發(fā)送給它以后才被激活。與Java Card小應用程序通訊(訪問智能卡)可以使用兩種模型中的任何一種來在一個主應用程序和一個Java Card小應用程序之間通信。第一個模型是基本消息傳送模型,第二種是基于Java Card遠程方法調(diào)用(JCRMI),這是J2SE RMI分布式對象模型的一個子集。此外,SATSA通過一個基于更加抽象的應用編程接口的普通連接框架(Generic Connection Framework,簡稱GCF)應用

21、編程接口,讓你要么使用消息傳遞要么使用JCRMI來訪問智能卡。6.5 卡應用發(fā)布更新1 準備客戶端信息實例如果有多個,則需要填寫多個實例信息,模塊AID,實例AID安裝參數(shù)也需要一并提供a) 應用AIDb) cap包數(shù)量c) 文件下載順序d) 文件刪除順序e) 填寫應用名稱f) 文件AIDg) 文件加載參數(shù)h) 實例數(shù)量i) 實例1i. 模塊AIDii. 實例AIDiii. 安裝參數(shù)j) k) 實例N2 填寫TSM應用發(fā)布提交物列表。3 提交到中國移動電子商務有限公司等待發(fā)布7 客戶端開發(fā)指南7.1 應用客戶端開發(fā)要求應用客戶端必須集成于和包客戶端啟動運行,要求不能有獨立的啟動入口,需對安裝過

22、程中的打開按鈕進行屏蔽,并且不能生成桌面圖標。和包客戶端在啟動應用客戶端時,會為應用客戶端提供手機號、SEID等信息,以更應用客戶端進行相應的業(yè)務處理。7.2 客戶端開發(fā)準備l 首先開發(fā)者要有必須的Java開發(fā)基礎,如果需要相關的知識,可以參考一下Java Tutor:l 配置Eclipse集成開發(fā)環(huán)境,如果沒有Eclipse的話,到Eclipse的官方網(wǎng)站上去下載l 安裝了Eclipse后,還要在Eclipse下安裝ADT插件。如果沒有ADT插件,下載地址為:l 開發(fā)者必須要具有Android應用的開發(fā)經(jīng)驗。 想獲取更多的Android開發(fā)知識,請參考:l 開發(fā)用的設備必須支持Open Mo

23、bile API,是否支持這個API跟Android系統(tǒng)的版本和編譯情況有關系。目前支持NFC功能的終端設備,多數(shù)都支持此API。比如三星S3、S4、Note3;HTC M7;小米3等等l SIM卡的支持,在手機上開發(fā)和錢包的應用客戶端,需要跟SIM卡的安全模塊通信,所以需要辦理支持NFC功能的SWP-SIM。具體辦理方式可以咨詢10086,測試SIM卡的辦理,可以聯(lián)系移動電子商務基地。7.3 設置開發(fā)環(huán)境l Eclipse的開發(fā)環(huán)境需要配置一下,以便能夠使用Google官方最新的SDK版本。開發(fā)者安裝ADT的過程如下:n 點擊Help菜單,選擇Install New Softwaren 在I

24、nstall的對話框里,選擇Add Repository,點Archive,選中你已經(jīng)下載好的ADT插件,根據(jù)Wizard的提示,完成安裝工作l 然后可以通過SDK Manager去下載相應的SDK版本,手機錢包客戶端要求Android的版本不低于2.2,API Level最低為8:l 運行SDK Manager,選中要安裝的SDK即可,這些SDK必須要支持Open Mobile API。具體操作方法如下:n 運行Android SDK Managern 點擊 Tools -> Manage Add-on Sites.n 選擇User Defined Sit

25、es 點擊New,添加,關閉對話框n 不同的Android版本,對應著不同的API levels:u 15-u 16-未發(fā)布u 15-n 重新加載Package列表:在菜單上選擇: Packages -> Reloadn Package列表刷新后,選擇 Open Mobile API under Android 4.2.2 并且安裝這個add-on packagen 通過SDK Manager安裝Open Mobile API addon package,接下來就可以開發(fā)安全模塊(Secure Element)相關的應用程序了.n Open Mobile API的相關文檔參見下面附件:l

26、 完成安裝后,重啟Eclipse,就可以使用下載好的SDK了。l 注意:如果下載的Android SDK中沒有Open Mobile API的Addon,可以直接以第三方jar包的方式引入openMobileAPI.jar文件。需要注意的是在編譯apk的時候,不要把此jar文件打入到apk中。l 具體的做法是:在工程的Java Build Path中,創(chuàng)建一個User Library,在此Library中添加openMobileApi.jar,做法如下圖,這樣在導出的apk中就不包含openMobileApi.jar的內(nèi)容了。在此處該jar只做編譯用,運行時調(diào)用手機系統(tǒng)自己的相關類文件。l 在

27、Order and Export設置中,選擇不導出包含OpenMobileAPI的的lib。具體做法如下圖:l Open Mobile API的jar文件只做編譯用,文件如下:7.4 客戶端開發(fā)下面簡單介紹和包客戶端開發(fā)過程。7.4.1 創(chuàng)建工程1. 使用Eclipse的wizard, 創(chuàng)建新的Android工程,選擇Android Application Project,點擊 Next之后,填充工程的基本屬性。2. 選擇Create Activity -> BlankActivity 點擊Next。3. 輸入activity名稱: MainActivity 點擊完成,創(chuàng)建新的工程。7.

28、4.2 編寫AndroidManifest.xml文件1 在Android應用程序中,使用Manifest.xml文件來描述應用程序的基本屬性。在編寫Manifest的時候應該注意兩點個需要聲明uses-permission,獲得smarcard操作的相關權(quán)限。如果用的NFC相關的API,還需要聲明NFC相關的權(quán)限。2 另外一個就是聲明uses-library,使用系統(tǒng)的Open Mobile API相關的lib。這個地方required為true和false都行。這個標簽主要用于應用市場過濾應用程序。如果為true,則對不支持Open Mobile API的手機屏蔽此應用。3 關于Andro

29、id Manifest聲明的相關方法,請參考uses-library element 的官方文檔,地址為: 7.4.3 手機客戶端開發(fā)編碼編碼還需要實現(xiàn)具體業(yè)務的APPLICATION類與工具類APPLICATION類實現(xiàn)1. DEMO中創(chuàng)建了SlaveApp類,主要目的是為整個應用提供一個重要的全局變量:SlaveClient類變量。在該類中,先定義了一個成員變量。2. 在Application的onCreate函數(shù)中對這個成員變量初始化。其中ConnectService函數(shù)完成對手機錢包服務的通信連接。3. 在完成初始化之后,對外提供函數(shù),以便使用SlaveClient變量。4. 在使用完

30、SlaveClient后,需要釋放資源。所以在Application的提供了exitApp() 函數(shù)。此函數(shù)中,調(diào)用SlaveClient的shutDown函數(shù)。5. 實現(xiàn)這個三個主要函數(shù)后,SlaveApp的功能就基本實現(xiàn)了。工具類的實現(xiàn)1. 整個Demo中,最重要的部分就是這個工具類,即SIMCardUtil類。首先看該類的實現(xiàn)方式:由于該類時用于打開邏輯通道,跟安全模塊進行通信的,所以該類設計為單實例的。2. 在此類中,定義了三個成員變量:a) private SEService mSEService;b) private Session mSession;c) private Stri

31、ng errMsg;3. mSEService是創(chuàng)建的服務,mSession是對當前會話的緩存。errMsg是用來記錄上次打開邏輯通道時的錯誤信息。整個程序的初始化流程大致如下:u 創(chuàng)建SEServiceu 獲取Readeru 選取SIM相關的Readeru 獲取Sessionu 打開邏輯通道4. 因此,在獲取到SIMCardUtil實例之后,要調(diào)用其init函數(shù)進行初始化。該函數(shù)主要功能是創(chuàng)建了SEService。5. 在創(chuàng)建SEService的時候,有兩個參數(shù),一個是Context,通常用當前Activity作為參數(shù);另外一個是SEService.CallBack接口,這個參數(shù)非常重要。6

32、. 當SIM卡的安全模塊如果連接成功,采用異步回調(diào)的方式來通知應用程序。也就是當Service連接成功, SEService.Callback的函數(shù)serviceConnected()將會被調(diào)用。在這個工程里面,內(nèi)嵌類SEServiceCallbackImpl實現(xiàn)了SEService.CallBack接口,因此它的serviceConnected將會被調(diào)用7. 在進行回到的時候,先對mSEService進行賦值,然后對Session進行了初始化,也就是調(diào)用了initSession函數(shù)。也就是說只有確定SEService連接成功,才能進行Session的初始化,只有Session初始化完成,才能

33、打開邏輯通道,這個操作時序不能錯。8. 在初始化Session的時候,會對mSEService的值進行判斷是否為null。然后獲取Reader。如果設備終端上只有一個安全模塊,Reader就只有一個。當然也可能存在多個的情況。所以需要對Reader進行選擇,選中名稱中含有SIM或者UICC字段的Reader。這個Reader是對應SIM卡的。9. 當Session初始化完成之后,就可以在需要的情況下打開邏輯通道,打開邏輯通道的關鍵代碼只有一句,就是調(diào)用Session的openChannel函數(shù),但是由于執(zhí)行此函數(shù)可能會報錯的情形比較多,所以要對其異常情況進行處理,加以區(qū)分不同類型的異常,方便錯

34、誤的排查。10. 當該類使用完畢之后,注意關閉Session,釋放資源,下次使用是,再重新初始化。7.4.4 代碼示例具體示例代碼及DEMO參考3.1 客戶端發(fā)布更新1. 準備客戶端信息a) apk文件b) 客戶端名稱c) 啟動包名d) 啟動類名e) 版本編號f) 版本名稱g) 客戶端截圖2. 填寫TSM應用發(fā)布提交物列表。3. 提交到中國移動電子商務有限公司等待發(fā)布8 業(yè)務平臺開發(fā)指南8.1 多應用平臺與業(yè)務平臺接口描述8.1.1 WebService名字空間名稱uriSOAP-ENVsimota8.1.2 接口列表接口名稱消息類型(請求/響應)消息方向(發(fā)起方/被調(diào)用方)預操作請求PreO

35、perationsReq/PreOperationsReqResponse多應用開放平臺->業(yè)務平臺SE操作反饋OperationResultNotify/OperationResultNotifyResponse多應用開放平臺->業(yè)務平臺用戶狀態(tài)變更TsmNotifyReq/TsmNotifyReqResponse多應用開放平臺->業(yè)務平臺業(yè)務事件通知EventNotifyReq /EventNotifyReqResponse業(yè)務平臺->多應用開放平臺創(chuàng)建安全域CreateSSDReq/CreateSSDReqResponse 業(yè)務平臺->多應用開放平臺安全域刪

36、除DeleteSSDReq/DeleteSSDReqResponse業(yè)務平臺->多應用開放平臺安全域密鑰更新UpdateDomainKeyReq/UpdateDomainKeyReqResponse業(yè)務平臺->多應用開放平臺應用下載DownloadApplicationReq/DownloadApplicationReqResponse業(yè)務平臺->多應用開放平臺個人化管理ApplicationAPDUReq/ApplicationAPDUReqResponse業(yè)務平臺->多應用開放平臺應用刪除DeleteApplicationReq/DeleteApplicationR

37、eqResponse業(yè)務平臺->多應用開放平臺應用鎖定/解鎖LockApplicationReq/LockApplicationReqResponse業(yè)務平臺->多應用開放平臺獲取TokenAcquireTokenReqLock/AcquireTokenReqResponse業(yè)務平臺->多應用開放平臺8.1.3 數(shù)據(jù)類型說明類型說明DEC10進制數(shù)字HEX16進制字符串,長度必須是2的倍數(shù)STRING字符串8.1.4 數(shù)據(jù)域說明數(shù)據(jù)域數(shù)據(jù)類型備注最大長度simota:SynTypeDEC應用、安全域同步類型1:增加2:修改3:刪除.1simota:AppAIDHEX應用AID

38、及實例AID16simota:SEIDHEXSEID10simota:FileNameSTRING如果是應用、安全域同步,F(xiàn)ileName為AppAIDsimota:FileContentHEX個人化數(shù)據(jù)64Ksimota:DomainAIDHEX安全域AID16simota:AppNameSTRING應用名稱100simota:StatusCodeSTRING狀態(tài)碼4simota:StatusDescriptionSTRING狀態(tài)描述60simota:SeqNumSTRINGyyyyMMdd24hmmssxxxxxx,xxxxxx為6位流水號 SeqNum與業(yè)務無關,應保證每個請求數(shù)據(jù)包中S

39、eqNum的唯一性20simota:CommTypeDEC承載方式1:SMS/BIP(后臺客服人員WEB管理界面發(fā)起,終端用戶短信、STK、WEB或WAP發(fā)起);2:應用管理器,3:終端客戶端1simota:MsisdnSTRING手機號碼20simota:OrgMsisdnSTRING原手機號碼20simota:KeyVersionHEX密鑰版本1simota:DomainKey節(jié)點安全域密鑰simota:KeyIDHEX密鑰ID2simota:KeyTypeHEX密鑰類型2simota:KeyValueHEX密鑰值32simota:KeyCheckHEX密鑰校驗碼6simota:LockF

40、lagDEC鎖定標志0:解鎖;1:鎖定。1simota:ResultCodeSTRING卡端操作結(jié)果通知的返回代碼 0x00,成功;其他失敗。4simota:ResultMsgSTRINGSE操作結(jié)果通知的返回信息。60simota:TimeStampSTRING時間戳14simota:ImsiSTRINGIMSI15simota:Application節(jié)點應用simota:SecurityDomain節(jié)點安全域simota:OriginalCommandHEX源發(fā)起請求的命令字2simota:OriginalSeqNumDEC源請求包流水號20simota:SessionIDSTRING會話

41、ID,即業(yè)務平臺生成的業(yè)務會話ID,格式為 ZZZZZZZZZyyyyMMdd24hmmssxxxxxx,其中的ZZZZZZZZZ為9位的應用提供商編號,xxxxxx為6位流水號同一業(yè)務的數(shù)據(jù)包應使用相同的SessionID26simota:ProviderSessionIdSTRING發(fā)起方調(diào)用時傳遞的SessionID26simota:SessionTypeDEC1:應用下載/業(yè)務訂購,2:應用刪除/業(yè)務退訂,3:應用更新/業(yè)務更新,4:業(yè)務遷移,5:應用鎖定,6:應用解鎖,7:安全域創(chuàng)建,8:安全域刪除,9:安全域密鑰更新,10:個人化數(shù)據(jù)管理,11:BOSS換號simota:TARHE

42、X應用或安全域的TAR3simota:IsDeleteCAPFileDEC是否刪除CAP文件0:不刪除;1:刪除1simota:CmdTypePersoTypeDEC0:方式一,讀寫個人化數(shù)據(jù)2:方式二,應用調(diào)用安全域個人化3:方式三,安全域調(diào)用應用個人化1simota:EndflagDEC0:未完1:結(jié)束1simota:APDUSumHEX已執(zhí)行APDU指令數(shù)1simota:LastAPDUSWHEX最后一條APDU執(zhí)行結(jié)果SW2simota:LastDataHEX最后一條指令的執(zhí)行返回數(shù)據(jù)256simota:ModuleInfo節(jié)點Module信息simota:CardPOR節(jié)點卡片返回信

43、息simota:ProvnCodeSTRING省份代碼4simota:IfContinueOptDEC是否還有后續(xù)操作0:無1:有后續(xù)操作simota:AppProviderCodeSTRING應用提供商代碼6simota:TokenHEX完成簽名的Token數(shù)據(jù)simota:HashValueHEX待簽名的哈希數(shù)據(jù)simota:EventIDDEC1、用戶退網(wǎng)2、業(yè)務退訂3、業(yè)務訂購4、SE掛失simota:UserStatusDEC用戶狀態(tài)1、預銷戶退訂2、銷戶退訂3、過戶退訂4、改號退訂5、欠費停機6、用戶掛失停機7、用戶主動停機8、續(xù)費恢復9、解掛后恢復10、主動停機后復機11、業(yè)務開

44、通確認simota:Personalization節(jié)點個人化數(shù)據(jù)8.1.5 消息類型描述PreOperationsReq父元素名稱元素名稱約束備注SOAP-ENV:Body simota:PreOperationsReq1simota:PreOperationsReqsimota:SeqNum1simota:PreOperationsReqsimota:SessionID1simota:PreOperationsReqsimota:SessionType1simota:PreOperationsReqsimota:TimeStamp1simota:PreOperationsReqsimota:

45、CommType1simota:PreOperationsReqsimota:Msisdn1simota:PreOperationsReqsimota:SEID1simota:PreOperationsReqimota:IMEI 1simota:PreOperationsReqsimota:AppAID1simota:PreOperationsReqsimota:OrgMsisdn0.1在BOSS換號時設置PreOperationsReqResponse父元素名稱元素名稱約束備注SOAP-ENV:Body simota:PreOperationsReqResponse1simota: PreO

46、perationsReqResponsesimota:SeqNum1simota: PreOperationsReqResponsesimota:TimeStamp1simota: PreOperationsReqResponsesimota:Status1simota: Statussimota:StatusCode1為0000時,表示業(yè)務平臺通過審核,繼續(xù)后續(xù)請求操作。返回其他狀態(tài)時,操作終止。simota: Statussimota:StatusDescription1simota: PreOperationsReqResponsesimota:ProviderSessionId1業(yè)務平

47、臺調(diào)用操作時生成的SessionIDsimota: PreOperationsReqResponsesimota:DomainAID0.1simota: PreOperationsReqResponsesimota:SSDDapSign0.1simota: PreOperationsReqResponsesimota:DomainKey0.n請求安全域密鑰更新時,需設置一組或多組可選項DomainKeysimota:DomainKeysimota:KeyID1simota:DomainKeysimota:KeyType1simota:DomainKeysimota:KeyValue1simot

48、a:DomainKeysimota:KeyCheck1simota: PreOperationsReqResponsesimota:Personalization0.n請求應用個人化時,需設置一組或多組Personalization數(shù)據(jù)simota:Personalizationsimota:AppAID1當應用操作時,為應用AID,安全域操作時,為安全域AID。simota:Personalizationsimota:FileContent1simota: PreOperationsReqResponsesimota:PersoType0.1請求應用個人化時,需設置個人化方式Operatio

49、nResultNotify父元素名稱元素名稱約束備注SOAP-ENV:Body simota:OperationResultNotify1simota:OperationResultNotifysimota:SeqNum1simota:OperationResultNotifysimota:SessionID1simota:OperationResultNotifysimota:SessionType1simota:OperationResultNotifysimota:TimeStamp1simota:OperationResultNotifysimota:OriginalSeqNum1源請

50、求包交易序號simota:OperationResultNotifysimota:Msisdn1simota:OperationResultNotifysimota:SEID1simota:OperationResultNotifyimota:AppAID0.1simota:OperationResultNotifysimota:ResultCode1simota:OperationResultNotifysimota:ResultMsg1simota:OperationResultNotifysimota:Imsi0.1simota:OperationResultNotifysimota:C

51、ardPOR1simota:CardPORsimota: APDUSum1simota:CardPORsimota: LastAPDUSW1simota:CardPORsimota: LastData1simota:CardPORsimota:LastApdu1OperationResultNotifyResponse父元素名稱元素名稱約束備注SOAP-ENV:Body simota:OperationResultNotifyResponse1simota:OperationResultNotifyResponsesimota:SeqNum1simota:OperationResultNoti

52、fyResponsesimota:TimeStamp1simota:OperationResultNotifyResponsesimota:Status1simota: Statussimota:StatusCode1為0000時,表示業(yè)務平臺通過審核,繼續(xù)后續(xù)請求操作。返回其他狀態(tài)時,操作終止。simota: Statussimota:StatusDescription1simota:OperationResultNotifyResponsesimota:IfContinueOpt1simota:OperationResultNotifyResponsesimota:KeyVersion0.

53、1simota:OperationResultNotifyResponsesimota:DomainKey0.1當創(chuàng)建委托方式輔助安全域后通知業(yè)務平臺,業(yè)務平臺可返回一組或多組安全域密鑰,通知多應用開發(fā)平臺進行密鑰更新。simota:DomainKeysimota:KeyID1simota:DomainKeysimota:KeyType1simota:DomainKeysimota:KeyValue1simota:DomainKeysimota:KeyCheck1simota:OperationResultNotifyResponsesimota:PersoType0.1當完成應用下載后通知業(yè)務平臺,若應用需個人化時,需設置個人化方式simota:OperationResultNotifyResponsesimota:Personalization 0.n當

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論