數(shù)據(jù)解析方法、裝置及系統(tǒng)的制作方法
【專利摘要】本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)解析方法、裝置及系統(tǒng)。一種方法包括:客戶端從NFC卡中讀取待解析的數(shù)據(jù);客戶端將待解析的數(shù)據(jù)發(fā)送給服務(wù)端,以供服務(wù)端將待解析的數(shù)據(jù)解析成客戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù)并返回;客戶端接收服務(wù)端返回的結(jié)構(gòu)化數(shù)據(jù)。本申請(qǐng)通過服務(wù)端來解析NFC卡中的數(shù)據(jù),可以做到及時(shí)解析NFC數(shù)據(jù)。
【專利說明】數(shù)據(jù)解析方法、裝置及系統(tǒng) 【技術(shù)領(lǐng)域】
[0001] 本申請(qǐng)涉及通信技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)解析方法、裝置及系統(tǒng)。 【【背景技術(shù)】】
[0002] 近距離無線通信(Near Field Communication,NFC)是一種短距離的高頻無線通 信技術(shù),允許電子設(shè)備之間進(jìn)行非接觸式點(diǎn)對(duì)點(diǎn)數(shù)據(jù)傳輸(在十厘米內(nèi))。NFC技術(shù)主要用 于手機(jī)、平板等手持設(shè)備中?;诮鼒?chǎng)通信的安全性和手持終端的普及,NFC技術(shù)具有很大 的應(yīng)用前景。
[0003] 隨著NFC技術(shù)的應(yīng)用,出現(xiàn)了各種與NFC有關(guān)的應(yīng)用(簡(jiǎn)稱為NFC應(yīng)用)。其中, NFC應(yīng)用的客戶端(簡(jiǎn)稱為客戶端)需要具備解析NFC數(shù)據(jù)的功能,即要能夠從NFC卡中讀 取NFC數(shù)據(jù)并將NFC數(shù)據(jù)解析成NFC應(yīng)用可識(shí)別的數(shù)據(jù)。
[0004] 由于NFC卡的種類越來越多,為了能夠?qū)Ω郚FC卡的數(shù)據(jù)進(jìn)行解析,客戶端需要 不斷的更新升級(jí)。由于客戶端升級(jí)通常比較耗時(shí)、繁瑣,所以很多用戶不會(huì)及時(shí)升級(jí)客戶 端,導(dǎo)致無法及時(shí)解析NFC數(shù)據(jù)。 【
【發(fā)明內(nèi)容】
】
[0005] 本申請(qǐng)的多個(gè)方面提供一種數(shù)據(jù)解析方法、裝置及系統(tǒng),用以及時(shí)解析NFC數(shù)據(jù)。
[0006] 本申請(qǐng)的一方面,提供一種數(shù)據(jù)解析方法,包括:
[0007] 客戶端從NFC卡中讀取待解析的數(shù)據(jù);
[0008] 所述客戶端將所述待解析的數(shù)據(jù)發(fā)送給服務(wù)端,以供所述服務(wù)端將所述待解析的 數(shù)據(jù)解析成所述客戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù)并返回;
[0009] 所述客戶端接收所述服務(wù)端返回的所述結(jié)構(gòu)化數(shù)據(jù)。
[0010] 本申請(qǐng)的另一方面,提供一種數(shù)據(jù)解析方法,包括:
[0011] 服務(wù)端接收客戶端發(fā)送的待解析的數(shù)據(jù),所述待解析的數(shù)據(jù)是所述客戶端從NFC 卡中讀取的;
[0012] 所述服務(wù)端對(duì)所述待解析的數(shù)據(jù)進(jìn)行解析,并將成功解析出的結(jié)果數(shù)據(jù)封裝成所 述客戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù);
[0013] 所述服務(wù)端將所述結(jié)構(gòu)化數(shù)據(jù)發(fā)送給所述客戶端。
[0014] 本申請(qǐng)的又一方面,提供一種客戶端,包括:
[0015] 讀取模塊,用于從NFC卡中讀取待解析的數(shù)據(jù);
[0016] 發(fā)送模塊,用于將所述待解析的數(shù)據(jù)發(fā)送給服務(wù)端,以供所述服務(wù)端將所述待解 析的數(shù)據(jù)解析成所述客戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù)并返回;
[0017] 第一接收模塊,用于接收所述服務(wù)端返回的所述結(jié)構(gòu)化數(shù)據(jù)。
[0018] 本申請(qǐng)的又一方面,提供一種服務(wù)端,包括:
[0019] 接收模塊,用于接收客戶端發(fā)送的待解析的數(shù)據(jù),所述待解析的數(shù)據(jù)是所述客戶 端從NFC卡中讀取的;
[0020] 解析模塊,用于對(duì)所述待解析的數(shù)據(jù)進(jìn)行解析,并將成功解析出的結(jié)果數(shù)據(jù)封裝 成所述客戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù);
[0021] 發(fā)送模塊,用于將所述結(jié)構(gòu)化數(shù)據(jù)發(fā)送給所述客戶端。
[0022] 本申請(qǐng)的又一方面,提供一種數(shù)據(jù)解析系統(tǒng),包括:客戶端和服務(wù)端;
[0023] 所述客戶端,用于從NFC卡中讀取待解析的數(shù)據(jù),將所述待解析的數(shù)據(jù)發(fā)送給所 述服務(wù)端,并接收所述服務(wù)端返回的所述客戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù);
[0024] 所述服務(wù)端,用于接收所述客戶端發(fā)送的待解析的數(shù)據(jù),對(duì)所述待解析的數(shù)據(jù)進(jìn) 行解析,并將成功解析出的結(jié)果數(shù)據(jù)封裝成所述結(jié)構(gòu)化數(shù)據(jù),將所述結(jié)構(gòu)化數(shù)據(jù)發(fā)送給所 述客戶端。
[0025] 在本申請(qǐng)中,客戶端從NFC中讀取待解析的數(shù)據(jù),將待解析的數(shù)據(jù)發(fā)送給服務(wù)端, 由服務(wù)端對(duì)待解析的數(shù)據(jù)進(jìn)行解析并生成客戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù)返回給客戶端,實(shí)現(xiàn) 對(duì)NFC數(shù)據(jù)的解析,同時(shí)由于該解析過程是由服務(wù)端完成的,無論需要解析數(shù)據(jù)的NFC卡是 新出現(xiàn)的還是已有的,均無需等待客戶端的更新升級(jí),可以更加及時(shí)的對(duì)各種NFC數(shù)據(jù)進(jìn) 行解析。 【【附圖說明】】
[0026] 為了更清楚地說明本申請(qǐng)實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述 中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本申請(qǐng)的一些實(shí) 施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附 圖獲得其他的附圖。
[0027] 圖1為本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)解析方法的流程示意圖;
[0028] 圖2為本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)讀取指令的數(shù)據(jù)結(jié)構(gòu)示意圖;
[0029] 圖3a為本申請(qǐng)另一實(shí)施例提供的數(shù)據(jù)解析方法的流程示意圖;
[0030] 圖3b為本申請(qǐng)一實(shí)施例提供的os生活服務(wù)向用戶展示的云卡片的結(jié)構(gòu)示意圖;
[0031] 圖4為本申請(qǐng)一實(shí)施例提供的客戶端的結(jié)構(gòu)示意圖;
[0032] 圖5為本申請(qǐng)另一實(shí)施例提供的客戶端的結(jié)構(gòu)示意圖;
[0033] 圖6為本申請(qǐng)一實(shí)施例提供的服務(wù)端的結(jié)構(gòu)示意圖;
[0034] 圖7為本申請(qǐng)另一實(shí)施例提供的服務(wù)端的結(jié)構(gòu)示意圖。 【【具體實(shí)施方式】】
[0035] 為使本申請(qǐng)實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本申請(qǐng)實(shí)施例 中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是 本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員 在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。
[0036] 圖1為本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)解析方法的流程示意圖。如圖1所示,該方法 包括:
[0037] 101、客戶端從NFC卡中讀取待解析的數(shù)據(jù)。
[0038] 102、客戶端將上述待解析的數(shù)據(jù)發(fā)送給服務(wù)端,以供服務(wù)端將待解析的數(shù)據(jù)解析 成客戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù)并返回。
[0039] 103、客戶端接收服務(wù)端返回的結(jié)構(gòu)化數(shù)據(jù)。
[0040] 本實(shí)施例提供一種數(shù)據(jù)解析方法,可由NFC應(yīng)用的客戶端(簡(jiǎn)稱為客戶端)來執(zhí) 行。本實(shí)施例提供的方法可用于各種基于NFC的應(yīng)用中;相應(yīng)的,本實(shí)施例的客戶端可以是 各種基于NFC的應(yīng)用的客戶端。
[0041] 舉例說明:本實(shí)施例的方法可應(yīng)用于基于NFC的支付應(yīng)用中,則客戶端是基于NFC 的支付類應(yīng)用的客戶端。
[0042] 本實(shí)施例的方法可應(yīng)用于基于NFC實(shí)現(xiàn)的各種信息卡(例如交通卡、門禁卡、車 票)的讀卡應(yīng)用中;則客戶端可以是基于NFC實(shí)現(xiàn)的各種信息卡對(duì)應(yīng)的讀卡應(yīng)用的客戶端。
[0043] 本實(shí)施例的方法可應(yīng)用于基于NFC的文件傳輸類應(yīng)用中;則客戶端可以是基于 NFC的文件傳輸類應(yīng)用的客戶端。
[0044] 本實(shí)施例的方法可應(yīng)用于基于NFC的電子信息交換類應(yīng)用中;則客戶端可以是基 于NFC的電子信息交換類應(yīng)用的客戶端。
[0045] 本實(shí)施例的方法可應(yīng)用于基于NFC的近距離聯(lián)機(jī)游戲類應(yīng)用中;則客戶端可以是 基于NFC的近距離聯(lián)機(jī)游戲類應(yīng)用的客戶端。
[0046] 在上述各種應(yīng)用場(chǎng)景中,客戶端都需要基于NFC卡中的數(shù)據(jù)執(zhí)行相應(yīng)操作。例如, 在支付應(yīng)用場(chǎng)景中,客戶端需要根據(jù)NFC卡中的數(shù)據(jù)完成支付操作。又例如,在文件傳輸應(yīng) 用場(chǎng)景中,客戶端需要根據(jù)NFC卡中的數(shù)據(jù)完成文件傳輸操作。
[0047] 通常,NFC卡使用的數(shù)據(jù)格式與客戶端所支持的數(shù)據(jù)格式?jīng)]有直接關(guān)系,意味著客 戶端可能無法直接識(shí)別從NFC卡讀取的數(shù)據(jù)。在現(xiàn)有技術(shù)中,客戶端具有對(duì)NFC卡中的數(shù) 據(jù)進(jìn)行解析的功能,客戶端可以將NFC卡中的數(shù)據(jù)解析成客戶端可識(shí)別的數(shù)據(jù),進(jìn)而基于 可識(shí)別的數(shù)據(jù)執(zhí)行相應(yīng)操作。但是,NFC卡的種類越來越多,客戶端可能隨時(shí)面對(duì)不同種類 的NFC卡,并且NFC卡采用的數(shù)據(jù)格式可能不同,意味著客戶端要能夠?qū)Ω鞣N數(shù)據(jù)格式的 NFC數(shù)據(jù)進(jìn)行解析,這就要求客戶端能夠隨著NFC卡種類的發(fā)展而不斷更新。但是,由于客 戶端升級(jí)通常比較耗時(shí)、繁瑣,所以很多用戶不會(huì)及時(shí)升級(jí)客戶端,即用戶轉(zhuǎn)化率無法達(dá)到 100 %,導(dǎo)致無法及時(shí)識(shí)別NFC數(shù)據(jù)。
[0048] 為解決上述問題,本實(shí)施例提供一種數(shù)據(jù)解析方法,將數(shù)據(jù)解析功能轉(zhuǎn)移到服務(wù) 端,將客戶端從數(shù)據(jù)解析中解放出來,使得NFC數(shù)據(jù)能夠及時(shí)被解析。具體的:
[0049] 客戶端從NFC卡中讀取待解析的數(shù)據(jù),將待解析的數(shù)據(jù)發(fā)送給服務(wù)端,由服務(wù)端 對(duì)待解析的數(shù)據(jù)進(jìn)行解析,將成功解析出的結(jié)果數(shù)據(jù)封裝成客戶端可以識(shí)別的結(jié)構(gòu)化數(shù)據(jù) 并返回給客戶端,客戶端接收服務(wù)端返回的結(jié)構(gòu)化數(shù)據(jù),進(jìn)而可以根據(jù)該結(jié)構(gòu)化數(shù)據(jù)執(zhí)行 相應(yīng)操作。
[0050] 可選的,客戶端在接收到服務(wù)端返回的結(jié)構(gòu)化數(shù)據(jù)之后,可以通過客戶端所在終 端展示給用戶,以便于用戶通過該結(jié)構(gòu)化數(shù)據(jù)了解相關(guān)信息。
[0051] 在一可選實(shí)施方式中,客戶端可以向NFC卡發(fā)送數(shù)據(jù)讀取指令;NFC卡接收客戶端 的數(shù)據(jù)讀取指令,并根據(jù)數(shù)據(jù)讀取指令讀取相應(yīng)數(shù)據(jù),將所讀取的數(shù)據(jù)返回給客戶端;客戶 端接收NFC卡返回的數(shù)據(jù),對(duì)NFC卡返回的數(shù)據(jù)進(jìn)行有效性驗(yàn)證,當(dāng)NFC卡返回的數(shù)據(jù)是有 效數(shù)據(jù)時(shí),將NFC卡返回的數(shù)據(jù)作為待解析的數(shù)據(jù)。
[0052] -般來說,在數(shù)據(jù)存儲(chǔ)和傳輸過程中,基于數(shù)據(jù)完整性或有效性等考慮,會(huì)在數(shù)據(jù) 字節(jié)中額外增加一個(gè)或幾個(gè)比特位作為校驗(yàn)位,以用來檢驗(yàn)數(shù)據(jù)是否完整或有效??蛇x的, 校驗(yàn)位的取值可以是預(yù)先設(shè)定的,例如0x900];或者,校驗(yàn)位的取值也可以是對(duì)數(shù)據(jù)值做 異或處理等方式計(jì)算出來的。對(duì)NFC數(shù)據(jù)來說,可以將最后兩字節(jié)作為校驗(yàn)位。基于此,客 戶端可以通過NFC卡返回的數(shù)據(jù)的最后兩字節(jié)來判斷該數(shù)據(jù)是否是有效數(shù)據(jù)。例如,若預(yù) 先設(shè)定校驗(yàn)位的取值為0x9000,則客戶端可以校驗(yàn)NFC卡返回的數(shù)據(jù)的最后兩字節(jié)是不是 0x9000,如果是,確定NFC卡返回的數(shù)據(jù)是有效數(shù)據(jù);如果否,確定NFC卡返回的數(shù)據(jù)是無效 數(shù)據(jù)。又例如,若校驗(yàn)位的取值是采用數(shù)據(jù)值做異或處理獲得的,則客戶端可以將NFC卡返 回的數(shù)據(jù)中的數(shù)據(jù)值做異或處理,獲得異或結(jié)果,將該異或結(jié)果與NFC卡返回的數(shù)據(jù)的最 后兩字節(jié)的取值進(jìn)行比較,若一致,則確定NFC卡返回的數(shù)據(jù)是有效數(shù)據(jù);若不一致,則確 定NFC卡返回的數(shù)據(jù)是無效數(shù)據(jù)。
[0053] 進(jìn)一步,雖然NFC卡的種類很多,所應(yīng)用的場(chǎng)景也很廣泛,但是可以按照不同標(biāo)準(zhǔn) 對(duì)NFC卡進(jìn)行分類,并從總體上分為幾大類別。例如,NFC卡可被分為IsoD印、NFCA、…、 NFCV等幾大類別。關(guān)于IsoD印、NFCA、"'NFCV可參見現(xiàn)有技術(shù)的描述。其中,每一大類 別又可以劃分為不同的小類別。例如,按照具體的傳輸協(xié)議劃分,IsoDep類別還可以分為 Iso7816和Isol4443。對(duì)于Iso7816和Isol4443來說,還可以進(jìn)一步細(xì)分。
[0054] 本實(shí)施例并不限定具體如何對(duì)NFC卡分類,但是對(duì)于同一類別的NFC卡來說,所使 用的指令類別以及指令碼等都相同。在本實(shí)施例中,指令類別用于指示不同類別的NFC卡 所使用的指令碼信息;每種類別的NFC所使用的指令碼信息包括讀取NFC卡各字段值(如 NFC卡的ID、NFC卡中的余額、NFC卡的發(fā)卡公司的名稱等)的指令碼,即不同字段對(duì)應(yīng)不同 指令碼。值得說明的,同一指令碼可能會(huì)對(duì)應(yīng)多個(gè)參數(shù),一個(gè)參數(shù)對(duì)應(yīng)該類別下一個(gè)具體的 NFC 卡。
[0055] 在一可選實(shí)施方式中,可以通過參數(shù)指令映射表來管理每類NFC卡下的指令碼和 指令碼對(duì)應(yīng)的參數(shù)。進(jìn)一步,客戶端可以將該參數(shù)映射表存儲(chǔ)在本地,有利于提高獲取指令 碼對(duì)應(yīng)的參數(shù)的效率,并且不需要每次都向服務(wù)端請(qǐng)求,有利于節(jié)約流量資源。
[0056] 進(jìn)一步可選的,客戶端可以對(duì)該參數(shù)指令映射表進(jìn)行更新,例如定時(shí)向服務(wù)端發(fā) 送更新請(qǐng)求,接收服務(wù)端發(fā)送的更新指令,根據(jù)更新指令,更新參數(shù)指令映射表?;蛘?,服務(wù) 端也可以主動(dòng)向客戶端發(fā)送更新指令,客戶端接收服務(wù)端發(fā)送的更新指令,根據(jù)更新指令, 更新參數(shù)指令映射表。
[0057] 值得說明的是,上述更新指令可以包括全部參數(shù)與指令碼的映射關(guān)系,則客戶端 可以直接用更新指令中的參數(shù)與指令碼的映射關(guān)系替換參數(shù)指令映射表中的參數(shù)與指令 碼的映射關(guān)系,實(shí)現(xiàn)全量更新?;蛘?,上述更新指令也可以僅包括發(fā)生變化的參數(shù)與指令碼 的映射關(guān)系,則客戶端可以直接將更新指令中的參數(shù)與指令碼的映射關(guān)系替換參數(shù)指令映 射表中相應(yīng)的參數(shù)與指令碼的映射關(guān)系,或者直接將更新指令中的參數(shù)與指令碼的映射關(guān) 系添加到參數(shù)指令映射表中,實(shí)現(xiàn)增量更新。
[0058] 基于上述,客戶端在向NFC卡發(fā)送數(shù)據(jù)讀取指令之前,可以按照以下方式生成數(shù) 據(jù)讀取指令:
[0059] 確定業(yè)務(wù)需求對(duì)應(yīng)的指令碼,在NFC應(yīng)用中,業(yè)務(wù)需求一般是指讀取NFC數(shù)據(jù)的需 求,預(yù)先定義了業(yè)務(wù)需求與讀取字段之間的映射關(guān)系,也就是說,業(yè)務(wù)需求一旦確定了,也 就知道需要讀取NFC數(shù)據(jù)的哪個(gè)字段。由上述可知,不同字段使用不同指令碼,因此可以直 接根據(jù)業(yè)務(wù)需求,確定所使用的指令碼;根據(jù)NFC卡所屬的類別下的參數(shù)指令映射表,確定 業(yè)務(wù)需求對(duì)應(yīng)的指令碼對(duì)應(yīng)的參數(shù);根據(jù)業(yè)務(wù)需求對(duì)應(yīng)的指令碼和該指令碼對(duì)應(yīng)的參數(shù), 生成數(shù)據(jù)讀取指令。
[0060] 上述數(shù)據(jù)讀取指令中的指令碼用于指示要讀取NFC數(shù)據(jù)的哪個(gè)字段;指令碼對(duì)應(yīng) 的參數(shù)用于指示要讀取哪張 NFC卡中的數(shù)據(jù)。
[0061] 值得說明的是,一個(gè)指令碼可能對(duì)應(yīng)多個(gè)參數(shù)。對(duì)于這種情況,客戶端可以采用窮 舉的方式,生成數(shù)據(jù)讀取指令以從NFC卡中讀取數(shù)據(jù)。簡(jiǎn)單來說,客戶端每次獲取指令碼對(duì) 應(yīng)的一個(gè)參數(shù),并根據(jù)該指令碼和該指令碼對(duì)應(yīng)的參數(shù)生成一個(gè)數(shù)據(jù)讀取指令,并發(fā)送給 NFC卡,當(dāng)接收到NFC卡返回的數(shù)據(jù)時(shí),通過對(duì)NFC卡返回的數(shù)據(jù)進(jìn)行校驗(yàn)來判斷NFC卡是 否返回了有效數(shù)據(jù),也意味著是否使用了正確的參數(shù);如果NFC卡返回的數(shù)據(jù)是有效數(shù)據(jù), 意味著使用的參數(shù)是正確的,則可以停止嘗試其他參數(shù);反之,繼續(xù)獲取指令碼對(duì)應(yīng)的下一 個(gè)參數(shù),并生成數(shù)據(jù)讀取指令發(fā)送給NFC卡繼續(xù)讀取NFC卡中的數(shù)據(jù)。
[0062] 以基于NFC的交通卡為例,按照地理位置進(jìn)一步劃分,則Iso7816和Isol4443中 每個(gè)類別下的交通卡包括:北京交通卡、上海交通卡、天津交通卡、深圳交通卡等等。對(duì)于每 張交通卡來說,可讀取的數(shù)據(jù)包括交通卡中的余額、公交公司的名稱、交通卡的ID、以及最 近交易記錄等字段值,不同字段對(duì)應(yīng)不同的指令碼。進(jìn)一步同一指令碼可能對(duì)應(yīng)不同地方 的交通卡,則可以通過指令碼對(duì)應(yīng)的參數(shù)來區(qū)分。
[0063] 對(duì)不同交通卡來說,客戶端所使用的數(shù)據(jù)讀取指令的格式和內(nèi)容都會(huì)有所不同。 例如,客戶端發(fā)送的數(shù)據(jù)讀取指令可以是應(yīng)用協(xié)議數(shù)據(jù)單元(Application Protocol Data Unit,APDU)請(qǐng)求。該APDU請(qǐng)求的格式如圖2所示,包括:頭部和主體部分。頭部包括CLA、 INS、P1和P2等幾個(gè)字段;CLA表示指令類別,INS表示指令碼;P1和P2是兩個(gè)參數(shù)。主體 部分包括:數(shù)據(jù)長(zhǎng)度L。字段、數(shù)據(jù)字段和響應(yīng)數(shù)據(jù)的長(zhǎng)度字段。
[0064] 一種客戶端從交通卡中讀取數(shù)據(jù)的代碼如下:
[0065]
[0066] 按照基本的行業(yè)間規(guī)定,INS是APDU命令協(xié)議中的一個(gè)字節(jié),定義該指令碼的操 作類型,INS的取值與操作類型的對(duì)應(yīng)關(guān)系如表1所示。
[0067] 表 1
[0068]
[0069]
[0070] 其中,INS為B0時(shí)可以讀取到二進(jìn)制(binary)的比特流,且sfi的取值不同,所 讀取到的數(shù)據(jù)也會(huì)不同。比如,若要讀取上海交通卡中的數(shù)據(jù),則需要傳入sfi值為21,若 要讀取北京交通卡中的數(shù)據(jù),則需要傳入的sfi值為4。對(duì)客戶端來說,由于無法直接識(shí)別 出是哪的公交卡,所以可以嘗試先向交通卡傳入值為21的sfi進(jìn)行數(shù)據(jù)讀取,如果讀取的 數(shù)據(jù)無法通過有效性驗(yàn)證,則繼續(xù)向交通卡傳入值為4的sfi進(jìn)行數(shù)據(jù)讀取,直到讀取到有 效數(shù)據(jù)為止。
[0071 ] 在一可選實(shí)施方式中,終端設(shè)備自身可以提供一 NFC系統(tǒng)框架,可稱為NFC卡識(shí)別 應(yīng)用,該NFC卡識(shí)別應(yīng)用可以在NFC卡貼近具有NFC功能的終端設(shè)備時(shí),自動(dòng)感應(yīng)到該NFC 卡的標(biāo)簽并識(shí)別出NFC卡所屬的類別,將這些信息提供給上述客戶端。
[0072] 對(duì)于NFC卡識(shí)別應(yīng)用來說,可以包括感應(yīng)單元、Activity、Activity Manager等。 感應(yīng)單元在NFC卡貼近具有NFC功能的終端設(shè)備時(shí),自動(dòng)感應(yīng)到該NFC卡的標(biāo)簽;Activity Manager用于管理已經(jīng)注冊(cè)的Activity ;Activity用于處理該Activity對(duì)應(yīng)的NFC標(biāo)簽, 主要是識(shí)別出NFC標(biāo)簽所標(biāo)識(shí)的NFC卡的類別屬性信息。當(dāng)Activity Manager存在已經(jīng) 注冊(cè)的Activity,并且可以處理感應(yīng)單元感應(yīng)到的NFC卡時(shí),Activity Manager識(shí)別出NFC 標(biāo)簽所標(biāo)識(shí)的NFC卡的類別屬性信息,將該類別屬性信息封裝到Intent里面?zhèn)鹘o相應(yīng)的 Activity ;Activity 將 Intent 發(fā)送給客戶端。
[0073] 上述Activity是安卓系統(tǒng)中常用組件,通常作為一個(gè)屏幕的載體。Intent是安卓 系統(tǒng)中不同組件之間相互導(dǎo)航的紐帶,封裝了互相查找的條件信息。
[0074] 基于上述,客戶端可以接收NFC卡識(shí)別應(yīng)用發(fā)送的NFC卡的類別屬性信息,該類別 屬性信息用于指示NFC卡所屬的類別。在獲得NFC卡所屬的類別的情況下,客戶端可以確 定向NFC卡發(fā)送數(shù)據(jù)讀取指令所使用的參數(shù)指令映射表。
[0075] 在一可選實(shí)施方式中,客戶端在將待解析的數(shù)據(jù)發(fā)送給服務(wù)端之前,可以對(duì)待解 析的數(shù)據(jù)進(jìn)行編碼處理,例如可以采用Base64編碼方式,將待解析的數(shù)據(jù)編碼成字節(jié)流, 以便于傳輸。其中,Base64是一種比特流轉(zhuǎn)化為字節(jié)流的一種編碼方式。進(jìn)一步,客戶端 通過HTTP方式將編碼成的字節(jié)流發(fā)送到服務(wù)端。對(duì)服務(wù)端來說,在接收到待解析的數(shù)據(jù)之 后,可以先對(duì)待解析的數(shù)據(jù)進(jìn)行解碼處理,再對(duì)解碼后的數(shù)據(jù)進(jìn)行解析處理。
[0076] 在一可選實(shí)施方式中,客戶端本身也具有解析NFC數(shù)據(jù)的功能。基于此,客戶端在 將待解析的數(shù)據(jù)發(fā)送給服務(wù)端之前,可以先判斷本地是否可以解析待解析的數(shù)據(jù);若本地 可以解析,則客戶端可以直接在本地對(duì)待解析的數(shù)據(jù)進(jìn)行解析處理,將其解析成客戶端可 識(shí)別的數(shù)據(jù)結(jié)構(gòu);若本地?zé)o法解析,則客戶端再將待解析的數(shù)據(jù)發(fā)送給服務(wù)端,以供服務(wù)端 將待解析的數(shù)據(jù)解析成客戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù)并返回。該實(shí)施方式優(yōu)先在客戶端本地 對(duì)待解析的數(shù)據(jù)進(jìn)行解析,一方面可以降低服務(wù)端的處理負(fù)擔(dān),另一方面有利于提高解析 效率。
[0077] 圖3a為本申請(qǐng)一實(shí)施例提供的數(shù)據(jù)解析方法的流程示意圖。如圖3a所示,該方 法包括:
[0078] 301、服務(wù)端接收客戶端發(fā)送的待解析的數(shù)據(jù),該待解析的數(shù)據(jù)是客戶端從NFC卡 中讀取的。
[0079] 302、服務(wù)端對(duì)上述待解析的數(shù)據(jù)進(jìn)行解析,并將成功解析出的結(jié)果數(shù)據(jù)封裝成客 戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù)。
[0080] 303、服務(wù)端將上述結(jié)構(gòu)化數(shù)據(jù)發(fā)送給客戶端。
[0081] 本實(shí)施例提供一種數(shù)據(jù)解析方法,可由NFC應(yīng)用的服務(wù)端(簡(jiǎn)稱為服務(wù)端)來執(zhí) 行。本實(shí)施例提供的方法可用于各種基于NFC的應(yīng)用中;相應(yīng)的,本實(shí)施例的客戶端可以是 各種基于NFC的應(yīng)用的客戶端;服務(wù)端可以是各種基于NFC的應(yīng)用的服務(wù)端。在本實(shí)施例 中,服務(wù)端具有解析各種NFC卡的能力。
[0082] 舉例說明:本實(shí)施例的方法可應(yīng)用于基于NFC的支付應(yīng)用中,則客戶端是基于NFC 的支付類應(yīng)用的客戶端;則服務(wù)端可以是基于NFC的支付應(yīng)用中服務(wù)端。
[0083] 本實(shí)施例的方法可應(yīng)用于基于NFC實(shí)現(xiàn)的各種信息卡(例如交通卡、門禁卡、車 票)的讀卡應(yīng)用中;則客戶端可以是基于NFC實(shí)現(xiàn)的各種信息卡對(duì)應(yīng)的讀卡應(yīng)用的客戶端; 則服務(wù)端可以是基于NFC實(shí)現(xiàn)的各種信息卡對(duì)應(yīng)的讀卡應(yīng)用的服務(wù)端。
[0084] 本實(shí)施例的方法可應(yīng)用于基于NFC的文件傳輸類應(yīng)用中;則客戶端可以是基于 NFC的文件傳輸類應(yīng)用的客戶端;則服務(wù)端可以是基于NFC的文件傳輸類應(yīng)用的服務(wù)端。
[0085] 本實(shí)施例的方法可應(yīng)用于基于NFC的電子信息交換類應(yīng)用中;則客戶端可以是基 于NFC的電子信息交換類應(yīng)用的客戶端;則服務(wù)端可以是基于NFC的電子信息交換類應(yīng)用 的服務(wù)端。
[0086] 本實(shí)施例的方法可應(yīng)用于基于NFC的近距離聯(lián)機(jī)游戲類應(yīng)用中;則客戶端可以是 基于NFC的近距離聯(lián)機(jī)游戲類應(yīng)用的客戶端;則服務(wù)端可以是基于NFC的近距離聯(lián)機(jī)游戲 類應(yīng)用的服務(wù)端。
[0087] 在上述各種應(yīng)用場(chǎng)景中,客戶端都需要基于NFC卡中的數(shù)據(jù)執(zhí)行相應(yīng)操作。例如, 在支付應(yīng)用場(chǎng)景中,客戶端需要根據(jù)NFC卡中的數(shù)據(jù)完成支付操作。又例如,在文件傳輸應(yīng) 用場(chǎng)景中,客戶端需要根據(jù)NFC卡中的數(shù)據(jù)完成文件傳輸操作。
[0088] 通常,NFC卡使用的數(shù)據(jù)格式與客戶端所支持的數(shù)據(jù)格式?jīng)]有直接關(guān)系,意味著客 戶端可能無法直接識(shí)別從NFC卡讀取的數(shù)據(jù)。在現(xiàn)有技術(shù)中,客戶端具有對(duì)NFC卡中的數(shù)據(jù) 進(jìn)行解析的功能,客戶端可以將NFC卡中的數(shù)據(jù)解析成客戶端可識(shí)別的數(shù)據(jù),進(jìn)而基于可 識(shí)別的數(shù)據(jù)執(zhí)行相應(yīng)操作。但是,NFC卡的種類越來越多,客戶端可能隨時(shí)面對(duì)不同種類的 NFC卡,并且NFC卡采用的數(shù)據(jù)格式可能不同,意味著客戶端要能夠?qū)Ω鞣N數(shù)據(jù)格式的NFC 數(shù)據(jù)進(jìn)行解析,這就要求客戶端能夠隨著NFC卡種類的發(fā)展而不斷更新。但是,由于客戶端 的升級(jí)包一般是由服務(wù)端按照一定頻率發(fā)布的,所以更新不是很及時(shí),導(dǎo)致無法及時(shí)識(shí)別 NFC數(shù)據(jù)。
[0089] 為解決上述問題,本實(shí)施例提供一種數(shù)據(jù)解析方法,將數(shù)據(jù)解析功能轉(zhuǎn)移到服務(wù) 端,將客戶端從數(shù)據(jù)解析中解放出來,使得NFC數(shù)據(jù)能夠及時(shí)被解析。具體的:
[0090] 客戶端從NFC卡中讀取待解析的數(shù)據(jù),將待解析的數(shù)據(jù)發(fā)送給服務(wù)端,服務(wù)端接 收客戶端發(fā)送的待解析的數(shù)據(jù);服務(wù)端對(duì)待解析的數(shù)據(jù)進(jìn)行解析,將成功解析出的結(jié)果數(shù) 據(jù)封裝成客戶端可以識(shí)別的結(jié)構(gòu)化數(shù)據(jù);之后,將結(jié)構(gòu)化數(shù)據(jù)發(fā)送給客戶端,使得客戶端可 以根據(jù)該結(jié)構(gòu)化數(shù)據(jù)執(zhí)行相應(yīng)操作。
[0091] 在一可選實(shí)施方式中,服務(wù)端預(yù)先存儲(chǔ)有客戶端及客戶端可識(shí)別的數(shù)據(jù)結(jié)構(gòu)之間 的映射關(guān)系?;诖耍蛻舳诉€可以將客戶端的標(biāo)識(shí)發(fā)送給服務(wù)端,服務(wù)端根據(jù)客戶端的標(biāo) 識(shí),查詢所存儲(chǔ)的客戶端及客戶端可識(shí)別的數(shù)據(jù)結(jié)構(gòu)之間的映射關(guān)系,獲知客戶端所支持 的數(shù)據(jù)結(jié)構(gòu),進(jìn)而將待解析的數(shù)據(jù)解析成客戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù)。
[0092] 在另一可選實(shí)施方式中,客戶端可以將客戶端可識(shí)別的數(shù)據(jù)結(jié)構(gòu)信息發(fā)送給服務(wù) 端。服務(wù)端接收客戶端發(fā)送的客戶端可識(shí)別的數(shù)據(jù)結(jié)構(gòu)信息,根據(jù)客戶端可識(shí)別的數(shù)據(jù)結(jié) 構(gòu)信息,將待解析的數(shù)據(jù)解析成客戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù)。
[0093] 在一可選實(shí)施方式中,服務(wù)端包括各種NFC卡對(duì)應(yīng)的解析算法,并且隨著NFC卡種 類的增多,服務(wù)端會(huì)及時(shí)增加相應(yīng)的解析算法。基于此,服務(wù)端對(duì)待解析的數(shù)據(jù)進(jìn)行解析的 一種實(shí)施方式包括:服務(wù)端確定NFC卡對(duì)應(yīng)的解析算法,采用所確定的解析算法對(duì)應(yīng)待解 析的數(shù)據(jù)進(jìn)行解析。
[0094] 其中,客戶端除了將待解析的數(shù)據(jù)發(fā)送給服務(wù)端之外,通常還會(huì)將NFC卡的類別 屬性信息發(fā)送給服務(wù)端;服務(wù)端可以根據(jù)NFC卡的類別屬性信息確定NFC卡所屬的類別,進(jìn) 而選擇該類別對(duì)應(yīng)的解析算法,使用該解析算法對(duì)待解析的數(shù)據(jù)進(jìn)行解析。進(jìn)一步,客戶端 還可以將讀取待解析的數(shù)據(jù)所使用的數(shù)據(jù)讀取指令發(fā)送給服務(wù)端,則服務(wù)端可以同時(shí)結(jié)合 NFC卡的類別屬性信息、讀取待解析的數(shù)據(jù)所使用的數(shù)據(jù)讀取指令、以及待解析的數(shù)據(jù)等信 息,來確定所使用的解析算法。
[0095] 值得說明的是,由于NFC卡的種類很多,相應(yīng)NFC卡的廠商也會(huì)很多。部分NFC卡 的廠商不是按照標(biāo)準(zhǔn)協(xié)議,所以服務(wù)端可以通過訪問廠商官方網(wǎng)站或者其他公關(guān)渠道來了 解具體協(xié)議文檔,進(jìn)而獲得解析該待解析的數(shù)據(jù)需要使用的解析算法。
[0096] 在一可選實(shí)施方式中,若客戶端對(duì)待解析的數(shù)據(jù)進(jìn)行了編碼處理,則服務(wù)端在對(duì) 待解析的數(shù)據(jù)進(jìn)行解析之前,需要先對(duì)待解析的數(shù)據(jù)進(jìn)行解碼處理。其中,客戶端和服務(wù)端 可以預(yù)先約定所使用的編解碼算法,例如可以是Base64算法,但不限于此。
[0097] 在一可選實(shí)施方式中,若待解析的數(shù)據(jù)來自于新的NFC卡,則服務(wù)端有可能還沒 有該NFC卡對(duì)應(yīng)的解析算法,則可能無法成功解析出結(jié)果數(shù)據(jù)。對(duì)無法成功解析出結(jié)果數(shù) 據(jù)的情況,服務(wù)端可以根據(jù)該解析的數(shù)據(jù)和待解析的數(shù)據(jù)的相關(guān)數(shù)據(jù),生成該NFC卡對(duì)應(yīng) 的解析算法。服務(wù)端可以存儲(chǔ)該解析算法,以便于對(duì)后續(xù)接收到的該NFC卡的數(shù)據(jù)進(jìn)行解 析。待解析的數(shù)據(jù)的相關(guān)數(shù)據(jù)包括但不限于:客戶端獲取待解析的數(shù)據(jù)所使用的數(shù)據(jù)讀取 指令、以及用戶輸入的關(guān)于該NFC卡的信息等。
[0098] 由于生成NFC卡對(duì)應(yīng)的解析算法的過程會(huì)因廠商的不同而有所不同,且整體流程 與現(xiàn)有技術(shù)相類似或相同,可參見現(xiàn)有技術(shù),本申請(qǐng)不再贅述。
[0099] 以云os生活服務(wù)為例,(但本申請(qǐng)不限于云os生活服務(wù)),云os生活服務(wù)根據(jù)業(yè) 務(wù)需求確定指令碼,并基于本地存儲(chǔ)的參數(shù)指令映射表,確定該指令碼對(duì)應(yīng)的參數(shù),根據(jù)該 指令碼和該指令碼對(duì)應(yīng)的參數(shù)生成APDU請(qǐng)求,將該APDU請(qǐng)求發(fā)送給NFC卡;接收NFC卡根 據(jù)該APDU請(qǐng)求返回的數(shù)據(jù);根據(jù)NFC卡返回的數(shù)據(jù)的最后兩字節(jié)的校驗(yàn)碼校驗(yàn)該數(shù)據(jù)是否 是有效數(shù)據(jù);如果不是,則繼續(xù)獲取指令碼對(duì)應(yīng)的下一個(gè)參數(shù),并根據(jù)該指令碼和該指令碼 對(duì)應(yīng)的一下個(gè)參數(shù)重新生成APDU請(qǐng)求發(fā)送給NFC卡,以重新從NFC卡中讀取數(shù)據(jù);如果判 斷結(jié)果為是,則采用Base64編碼方式將該數(shù)據(jù)編碼成字節(jié)流,再通過HTTP方式發(fā)送到服務(wù) 端;服務(wù)端對(duì)接收到的數(shù)據(jù)進(jìn)行解碼處理,并確定解析使用的解析算法,采用所確定的解析 算法對(duì)解碼后的數(shù)據(jù)進(jìn)行解析,若成功解析出結(jié)果數(shù)據(jù),將該結(jié)果數(shù)據(jù)封裝成云os生活服 務(wù)可識(shí)別的結(jié)構(gòu)化數(shù)據(jù),即云卡片(CloudCard)的形式返回給云os生活服務(wù);云os生活服 務(wù)以CloudCard形式將數(shù)據(jù)展現(xiàn)給用戶。
[0100] 因?yàn)樵譬杝生活服務(wù)一般內(nèi)嵌于云〇s系統(tǒng)桌面,與桌面其他應(yīng)用相比,云〇s生活 服務(wù)的更新頻率還是比較低的,對(duì)于這種情況,本申請(qǐng)?zhí)峁?shù)據(jù)解析方法將具有很明顯的 優(yōu)勢(shì),用戶可以不用升級(jí)整個(gè)云os生活服務(wù),即可及時(shí)解析出各種NFC卡中的數(shù)據(jù),進(jìn)而將 NFC卡中的數(shù)據(jù)封裝成云os生活服務(wù)里的CloudCard形式展現(xiàn)給用戶。進(jìn)一步,如圖3b 所示,云os生活服務(wù)還可以通過連接該生活服務(wù)的關(guān)聯(lián)服務(wù)系統(tǒng)精準(zhǔn)推送相應(yīng)的智能化 的關(guān)聯(lián)服務(wù),例如基于用戶的NFC卡的商戶信息、余額信息等,可以向用戶推送附近公交車 站、充值中心等關(guān)聯(lián)服務(wù),有利于擴(kuò)展生活服務(wù)的業(yè)務(wù)和提高用戶體驗(yàn)。
[0101] 需要說明的是,對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列 的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請(qǐng)并不受所描述的動(dòng)作順序的限制,因?yàn)?依據(jù)本申請(qǐng),某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知 悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本申請(qǐng) 所必須的。
[0102] 在上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部 分,可以參見其他實(shí)施例的相關(guān)描述。
[0103] 圖4為本申請(qǐng)一實(shí)施例提供的客戶端的結(jié)構(gòu)示意圖。如圖4所示,該客戶端包括: 讀取模塊41、發(fā)送模塊42和第一接收模塊43。
[0104] 讀取模塊41,用于從NFC卡中讀取待解析的數(shù)據(jù)。
[0105] 發(fā)送模塊42,用于將讀取模塊41讀取的待解析的數(shù)據(jù)發(fā)送給服務(wù)端,以供服務(wù)端 將待解析的數(shù)據(jù)解析成客戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù)并返回。
[0106] 第一接收模塊43,用于接收服務(wù)端返回的結(jié)構(gòu)化數(shù)據(jù)。
[0107] 在一可選實(shí)施方式中,讀取模塊41具體用于:
[0108] 向NFC卡發(fā)送數(shù)據(jù)讀取指令;
[0109] 接收NFC卡根據(jù)數(shù)據(jù)讀取指令返回的數(shù)據(jù);
[0110] 對(duì)NFC卡返回的數(shù)據(jù)進(jìn)行有效性驗(yàn)證,當(dāng)NFC卡返回的數(shù)據(jù)是有效數(shù)據(jù)時(shí),將NFC 卡返回的數(shù)據(jù)作為待解析的數(shù)據(jù)。
[0111] 在一可選實(shí)施方式中,如圖5所示,該客戶端還包括:確定模塊44和生成模塊45。
[0112] 確定模塊44,用于確定業(yè)務(wù)需求對(duì)應(yīng)的指令碼,并根據(jù)NFC卡所屬的類別下的參 數(shù)指令映射表,確定指令碼對(duì)應(yīng)的參數(shù)。
[0113] 生成模塊45,用于根據(jù)確定模塊44確定的指令碼和指令碼對(duì)應(yīng)的參數(shù),生成數(shù)據(jù) 讀取指令。
[0114] 在一可選實(shí)施方式中,如圖5所示,該客戶端還包括:第二接收模塊46,用于在確 定模塊44根據(jù)NFC卡所屬的類別下的參數(shù)指令映射表,確定指令碼對(duì)應(yīng)的參數(shù)之前,接收 NFC卡識(shí)別應(yīng)用發(fā)送的NFC卡的類別屬性信息,類別屬性信息用于指示NFC卡所屬的類別。
[0115] 在一可選實(shí)施方式中,如圖5所示,該客戶端還包括:第三接收模塊47和更新模塊 48 〇
[0116] 第三接收模塊47,用于接收服務(wù)端發(fā)送的更新指令;
[0117] 更新模塊48,用于根據(jù)第三接收模塊47接收的更新指令,更新參數(shù)指令映射表。 更新模塊48用于向確定模塊44提供更新后的參數(shù)指令映射表。
[0118] 在一可選實(shí)施方式中,如圖5所示,該客戶端還包括:編碼模塊49,用于在發(fā)送模 塊42將待解析的數(shù)據(jù)發(fā)送給服務(wù)端之前,對(duì)待解析的數(shù)據(jù)進(jìn)行編碼處理。
[0119] 在一可選實(shí)施方式中,如圖5所示,該客戶端還包括:判斷模塊50。
[0120] 判斷模塊50,用于判斷本地是否可以解析所述待解析的數(shù)據(jù),并在判斷結(jié)果為否 時(shí),觸發(fā)發(fā)送模塊42執(zhí)行將所述待解析的數(shù)據(jù)發(fā)送給服務(wù)端,以供所述服務(wù)端將所述待解 析的數(shù)據(jù)解析成所述客戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù)并返回的操作。
[0121] 在一可選實(shí)施方式中,如圖5所示,該客戶端還包括:展示模塊51。
[0122] 展示模塊51,用于通過客戶端所在終端將第一接收模塊43接收的結(jié)構(gòu)化數(shù)據(jù)展 示給用戶。
[0123] 本實(shí)施例提供的客戶端,從NFC中讀取待解析的數(shù)據(jù),將待解析的數(shù)據(jù)發(fā)送給服 務(wù)端,由服務(wù)端對(duì)待解析的數(shù)據(jù)進(jìn)行解析并生成客戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù)返回給客戶 端,實(shí)現(xiàn)對(duì)NFC數(shù)據(jù)的解析,同時(shí)由于該解析過程是由服務(wù)端完成的,不用等待對(duì)客戶端的 更新升級(jí),可以更加及時(shí)的對(duì)各種NFC數(shù)據(jù)進(jìn)行解析。
[0124] 圖6為本申請(qǐng)一實(shí)施例提供的服務(wù)端的結(jié)構(gòu)示意圖。如圖6所示,該服務(wù)端包括: 接收模塊61、解析模塊62和發(fā)送模塊63。
[0125] 接收模塊61,用于接收客戶端發(fā)送的待解析的數(shù)據(jù),待解析的數(shù)據(jù)是客戶端從 NFC卡中讀取的。
[0126] 解析模塊62,用于對(duì)接收模塊61接收的待解析的數(shù)據(jù)進(jìn)行解析,并將成功解析出 的結(jié)果數(shù)據(jù)封裝成客戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù)。
[0127] 發(fā)送模塊63,用于將解析模塊62解析出的結(jié)構(gòu)化數(shù)據(jù)發(fā)送給客戶端。
[0128] 在一可選實(shí)施方式中,解析模塊62具體用于:
[0129] 確定NFC卡對(duì)應(yīng)的解析算法;
[0130] 采用解析算法對(duì)待解析的數(shù)據(jù)進(jìn)行解析;
[0131] 將成功解析出的結(jié)果數(shù)據(jù)封裝成客戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù)。
[0132] 在一可選實(shí)施方式中,如圖7所示,該服務(wù)端還包括:生成模塊64。
[0133] 生成模塊64,用于在解析模塊62無法成功解析出結(jié)果數(shù)據(jù)時(shí),根據(jù)待解析的數(shù)據(jù) 和待解析的數(shù)據(jù)的相關(guān)數(shù)據(jù),生成NFC卡對(duì)應(yīng)的解析算法。
[0134] 在一可選實(shí)施方式中,如圖7所示,該服務(wù)端還包括:解碼模塊。
[0135] 解碼模塊65,用于在解析模塊62對(duì)待解析的數(shù)據(jù)進(jìn)行解析之前,對(duì)待解析的數(shù)據(jù) 進(jìn)行解碼處理。
[0136] 本實(shí)施例提供的服務(wù)端,與上述實(shí)施例提供的客戶端相配合,接收客戶端發(fā)送的 從NFC卡中讀取的待解析的數(shù)據(jù),對(duì)待解析的數(shù)據(jù)進(jìn)行解析并生成客戶端可識(shí)別的結(jié)構(gòu)化 數(shù)據(jù)返回給客戶端,實(shí)現(xiàn)對(duì)NFC數(shù)據(jù)的解析,同時(shí)由于該解析過程是由本實(shí)施例的服務(wù)端 完成的,不用等待對(duì)客戶端的更新升級(jí),可以更加及時(shí)的對(duì)各種NFC數(shù)據(jù)進(jìn)行解析。
[0137] 本申請(qǐng)一實(shí)施例還提供一種數(shù)據(jù)解析系統(tǒng),包括:客戶端和服務(wù)端。
[0138] 其中,客戶端,用于從NFC卡中讀取待解析的數(shù)據(jù),將待解析的數(shù)據(jù)發(fā)送給服務(wù) 端,并接收服務(wù)端返回的客戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù);
[0139] 服務(wù)端,用于接收客戶端發(fā)送的待解析的數(shù)據(jù),對(duì)待解析的數(shù)據(jù)進(jìn)行解析,并將成 功解析出的結(jié)果數(shù)據(jù)封裝成結(jié)構(gòu)化數(shù)據(jù),將結(jié)構(gòu)化數(shù)據(jù)發(fā)送給客戶端。
[0140] 關(guān)于客戶端的其他功能以及客戶端的實(shí)現(xiàn)結(jié)構(gòu)可參見前述相應(yīng)實(shí)施例,在此不再 贅述。同理,關(guān)于服務(wù)端的其他功能以及服務(wù)端的實(shí)現(xiàn)結(jié)構(gòu)可參見前述相應(yīng)實(shí)施例,在此不 再贅述。
[0141] 在本實(shí)施例提供的數(shù)據(jù)解析系統(tǒng)中,服務(wù)端與客戶端相配合,接收客戶端發(fā)送的 從NFC卡中讀取的待解析的數(shù)據(jù),對(duì)待解析的數(shù)據(jù)進(jìn)行解析并生成客戶端可識(shí)別的結(jié)構(gòu)化 數(shù)據(jù)返回給客戶端,實(shí)現(xiàn)對(duì)NFC數(shù)據(jù)的解析,同時(shí)由于該解析過程是由本實(shí)施例的服務(wù)端 完成的,不用等待對(duì)客戶端的更新升級(jí),可以更加及時(shí)的對(duì)各種NFC數(shù)據(jù)進(jìn)行解析。
[0142] 所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng), 裝置和單元的具體工作過程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過程,在此不再贅述。
[0143] 在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以 通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的 劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件 可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或 討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦 合或通信連接,可以是電性,機(jī)械或其它的形式。
[0144] 所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯 示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè) 網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目 的。
[0145] 另外,在本申請(qǐng)各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以 是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單 元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
[0146] 上述以軟件功能單元的形式實(shí)現(xiàn)的集成的單元,可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存 儲(chǔ)介質(zhì)中。上述軟件功能單元存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算 機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本申 請(qǐng)各個(gè)實(shí)施例所述方法的部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器 (Read-Only Memory,ROM)、隨機(jī)存取存儲(chǔ)器(Random Access Memory,RAM)、磁碟或者光盤 等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0147] 最后應(yīng)說明的是:以上實(shí)施例僅用以說明本申請(qǐng)的技術(shù)方案,而非對(duì)其限制;盡 管參照前述實(shí)施例對(duì)本申請(qǐng)進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然 可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替 換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本申請(qǐng)各實(shí)施例技術(shù)方案的精 神和范圍。
【主權(quán)項(xiàng)】
1. 一種數(shù)據(jù)解析方法,其特征在于,包括: 客戶端從NFC卡中讀取待解析的數(shù)據(jù); 所述客戶端將所述待解析的數(shù)據(jù)發(fā)送給服務(wù)端,以供所述服務(wù)端將所述待解析的數(shù)據(jù) 解析成所述客戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù)并返回; 所述客戶端接收所述服務(wù)端返回的所述結(jié)構(gòu)化數(shù)據(jù)。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述客戶端從NFC卡中讀取待解析的數(shù) 據(jù),包括: 所述客戶端向所述NFC卡發(fā)送數(shù)據(jù)讀取指令; 所述客戶端接收所述NFC卡根據(jù)所述數(shù)據(jù)讀取指令返回的數(shù)據(jù); 所述客戶端對(duì)所述NFC卡返回的數(shù)據(jù)進(jìn)行有效性驗(yàn)證,當(dāng)所述NFC卡返回的數(shù)據(jù)是有 效數(shù)據(jù)時(shí),將所述NFC卡返回的數(shù)據(jù)作為所述待解析的數(shù)據(jù)。3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述客戶端向所述NFC卡發(fā)送數(shù)據(jù)讀取指 令之前,還包括: 所述客戶端確定業(yè)務(wù)需求對(duì)應(yīng)的指令碼; 所述客戶端根據(jù)所述NFC卡所屬的類別下的參數(shù)指令映射表,確定所述指令碼對(duì)應(yīng)的 參數(shù); 所述客戶端根據(jù)所述指令碼和所述指令碼對(duì)應(yīng)的參數(shù),生成所述數(shù)據(jù)讀取指令。4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述客戶端根據(jù)所述NFC卡所屬的類別下 的參數(shù)指令映射表,確定所述指令碼對(duì)應(yīng)的參數(shù)之前,還包括: 所述客戶端接收NFC卡識(shí)別應(yīng)用發(fā)送的所述NFC卡的類別屬性信息,所述類別屬性信 息用于指示所述NFC卡所屬的類別。5. 根據(jù)權(quán)利要求3所述的方法,其特征在于,還包括: 所述客戶端接收所述服務(wù)端發(fā)送的更新指令; 所述客戶端根據(jù)所述更新指令,更新所述參數(shù)指令映射表。6. 根據(jù)權(quán)利要求1-5任一項(xiàng)所述的方法,其特征在于,所述客戶端將所述待解析的數(shù) 據(jù)發(fā)送給服務(wù)端之前,還包括: 所述客戶端對(duì)所述待解析的數(shù)據(jù)進(jìn)行編碼處理。7. 根據(jù)權(quán)利要求1-5任一項(xiàng)所述的方法,其特征在于,所述客戶端將所述待解析的數(shù) 據(jù)發(fā)送給服務(wù)端,以供所述服務(wù)端將所述待解析的數(shù)據(jù)解析成所述客戶端可識(shí)別的結(jié)構(gòu)化 數(shù)據(jù)并返回之前,還包括: 所述客戶端判斷本地是否可以解析所述待解析的數(shù)據(jù); 若判斷結(jié)果為否,則執(zhí)行將所述待解析的數(shù)據(jù)發(fā)送給服務(wù)端,以供所述服務(wù)端將所述 待解析的數(shù)據(jù)解析成所述客戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù)并返回的操作。8. 根據(jù)權(quán)利要求1-5任一項(xiàng)所述的方法,其特征在于,所述客戶端接收所述服務(wù)端返 回的所述結(jié)構(gòu)化數(shù)據(jù)之后,還包括: 所述客戶端通過所述客戶端所在終端將所述結(jié)構(gòu)化數(shù)據(jù)展示給用戶。9. 一種數(shù)據(jù)解析方法,其特征在于,包括: 服務(wù)端接收客戶端發(fā)送的待解析的數(shù)據(jù),所述待解析的數(shù)據(jù)是所述客戶端從NFC卡中 讀取的; 所述服務(wù)端對(duì)所述待解析的數(shù)據(jù)進(jìn)行解析,并將成功解析出的結(jié)果數(shù)據(jù)封裝成所述客 戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù); 所述服務(wù)端將所述結(jié)構(gòu)化數(shù)據(jù)發(fā)送給所述客戶端。10. 根據(jù)權(quán)利要求9所述的方法,其特征在于,所述服務(wù)端對(duì)所述待解析的數(shù)據(jù)進(jìn)行解 析,包括: 所述服務(wù)端確定所述NFC卡對(duì)應(yīng)的解析算法; 所述服務(wù)端采用所述解析算法對(duì)所述待解析的數(shù)據(jù)進(jìn)行解析。11. 根據(jù)權(quán)利要求10所述的方法,其特征在于,還包括: 若無法成功解析出所述結(jié)果數(shù)據(jù),所述服務(wù)端根據(jù)所述待解析的數(shù)據(jù)和所述待解析的 數(shù)據(jù)的相關(guān)數(shù)據(jù),生成所述NFC卡對(duì)應(yīng)的解析算法。12. 根據(jù)權(quán)利要求9-11任一項(xiàng)所述的方法,其特征在于,所述服務(wù)端對(duì)所述待解析的 數(shù)據(jù)進(jìn)行解析之前,還包括: 對(duì)所述待解析的數(shù)據(jù)進(jìn)行解碼處理。13. -種客戶端,其特征在于,包括: 讀取模塊,用于從NFC卡中讀取待解析的數(shù)據(jù); 發(fā)送模塊,用于將所述待解析的數(shù)據(jù)發(fā)送給服務(wù)端,以供所述服務(wù)端將所述待解析的 數(shù)據(jù)解析成所述客戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù)并返回; 第一接收模塊,用于接收所述服務(wù)端返回的所述結(jié)構(gòu)化數(shù)據(jù)。14. 根據(jù)權(quán)利要求13所述的客戶端,其特征在于,所述讀取模塊具體用于: 向所述NFC卡發(fā)送數(shù)據(jù)讀取指令; 接收所述NFC卡根據(jù)所述數(shù)據(jù)讀取指令返回的數(shù)據(jù); 對(duì)所述NFC卡返回的數(shù)據(jù)進(jìn)行有效性驗(yàn)證,當(dāng)所述NFC卡返回的數(shù)據(jù)是有效數(shù)據(jù)時(shí),將 所述NFC卡返回的數(shù)據(jù)作為所述待解析的數(shù)據(jù)。15. 根據(jù)權(quán)利要求14所述的客戶端,其特征在于,還包括: 確定模塊,用于確定業(yè)務(wù)需求對(duì)應(yīng)的指令碼,并根據(jù)所述NFC卡所屬的類別下的參數(shù) 指令映射表,確定所述指令碼對(duì)應(yīng)的參數(shù); 生成模塊,用于根據(jù)所述指令碼和所述指令碼對(duì)應(yīng)的參數(shù),生成所述數(shù)據(jù)讀取指令。16. 根據(jù)權(quán)利要求15所述的客戶端,其特征在于,還包括: 第二接收模塊,用于接收NFC卡識(shí)別應(yīng)用發(fā)送的所述NFC卡的類別屬性信息,所述類別 屬性信息用于指示所述NFC卡所屬的類別。17. 根據(jù)權(quán)利要求15所述的客戶端,其特征在于,還包括: 第三接收模塊,用于接收所述服務(wù)端發(fā)送的更新指令; 更新模塊,用于根據(jù)所述更新指令,更新所述參數(shù)指令映射表。18. 根據(jù)權(quán)利要求13-17任一項(xiàng)所述的客戶端,其特征在于,還包括: 編碼模塊,用于對(duì)所述待解析的數(shù)據(jù)進(jìn)行編碼處理。19. 根據(jù)權(quán)利要求13-17任一項(xiàng)所述的客戶端,其特征在于,還包括: 判斷模塊,用于判斷本地是否可以解析所述待解析的數(shù)據(jù),并在判斷結(jié)果為否時(shí),觸發(fā) 所述發(fā)送模塊執(zhí)行將所述待解析的數(shù)據(jù)發(fā)送給服務(wù)端,以供所述服務(wù)端將所述待解析的數(shù) 據(jù)解析成所述客戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù)并返回的操作。20. 根據(jù)權(quán)利要求13-17任一項(xiàng)所述的客戶端,其特征在于,還包括: 展示模塊,用于通過所述客戶端所在終端將所述結(jié)構(gòu)化數(shù)據(jù)展示給用戶。21. -種服務(wù)端,其特征在于,包括: 接收模塊,用于接收客戶端發(fā)送的待解析的數(shù)據(jù),所述待解析的數(shù)據(jù)是所述客戶端從 NFC卡中讀取的; 解析模塊,用于對(duì)所述待解析的數(shù)據(jù)進(jìn)行解析,并將成功解析出的結(jié)果數(shù)據(jù)封裝成所 述客戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù); 發(fā)送模塊,用于將所述結(jié)構(gòu)化數(shù)據(jù)發(fā)送給所述客戶端。22. 根據(jù)權(quán)利要求21所述的服務(wù)端,其特征在于,所述解析模塊具體用于: 確定所述NFC卡對(duì)應(yīng)的解析算法; 采用所述解析算法對(duì)所述待解析的數(shù)據(jù)進(jìn)行解析; 將成功解析出的結(jié)果數(shù)據(jù)封裝成所述客戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù)。23. 根據(jù)權(quán)利要求22所述的服務(wù)端,其特征在于,還包括: 生成模塊,用于在所述解析模塊無法成功解析出所述結(jié)果數(shù)據(jù)時(shí),根據(jù)所述待解析的 數(shù)據(jù)和所述待解析的數(shù)據(jù)的相關(guān)數(shù)據(jù),生成所述NFC卡對(duì)應(yīng)的解析算法。24. 根據(jù)權(quán)利要求21-23任一項(xiàng)所述的服務(wù)端,其特征在于,還包括: 解碼模塊,用于對(duì)所述待解析的數(shù)據(jù)進(jìn)行解碼處理。25. -種數(shù)據(jù)解析系統(tǒng),其特征在于,包括:客戶端和服務(wù)端; 所述客戶端,用于從NFC卡中讀取待解析的數(shù)據(jù),將所述待解析的數(shù)據(jù)發(fā)送給所述服 務(wù)端,并接收所述服務(wù)端返回的所述客戶端可識(shí)別的結(jié)構(gòu)化數(shù)據(jù); 所述服務(wù)端,用于接收所述客戶端發(fā)送的待解析的數(shù)據(jù),對(duì)所述待解析的數(shù)據(jù)進(jìn)行解 析,并將成功解析出的結(jié)果數(shù)據(jù)封裝成所述結(jié)構(gòu)化數(shù)據(jù),將所述結(jié)構(gòu)化數(shù)據(jù)發(fā)送給所述客 戶端。
【文檔編號(hào)】G06K17/00GK106033551SQ201510115672
【公開日】2016年10月19日
【申請(qǐng)日】2015年3月17日
【發(fā)明人】安光霖
【申請(qǐng)人】阿里巴巴集團(tuán)控股有限公司