全面掌握?qǐng)?bào)文協(xié)議_第1頁(yè)
全面掌握?qǐng)?bào)文協(xié)議_第2頁(yè)
全面掌握?qǐng)?bào)文協(xié)議_第3頁(yè)
全面掌握?qǐng)?bào)文協(xié)議_第4頁(yè)
全面掌握?qǐng)?bào)文協(xié)議_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、全面掌握?qǐng)?bào)文協(xié)議全面掌握ISO8583報(bào)文協(xié)議我剛進(jìn)入金融行業(yè)時(shí),就知道了 IS08583報(bào) 文協(xié)議,我想可能我還沒(méi)進(jìn)入這個(gè)行業(yè)都已經(jīng)聽(tīng) 過(guò)了,可知ISO8583的影響力有多大了。最初 剛接觸它時(shí),確實(shí)對(duì)其中的一些細(xì)節(jié)概念不是很 清晰,對(duì)有些地方比較迷惑。鑒于此,我想很多 同行也必然會(huì)經(jīng)歷同樣得階段,所以我寫下本 文,以便大家能夠少走一些彎路。同時(shí),我在網(wǎng) 上寫下我要寫“全面掌握ISO8583報(bào)文”和“符合CEN/XFS (即WOSA/XFS)規(guī)范的SP編寫”兩 篇文章時(shí),很多人都詢問(wèn)我什么時(shí)候能夠?qū)懗?來(lái),可知許多人是需要了解這方面的知識(shí)的,即 使我時(shí)間不是很多,也得盡量將這兩篇文章寫出 來(lái)

2、,給需要的人提供一些參考。如果單純的講IS08583那些字段的定義,我 覺(jué)得沒(méi)有什么意思,標(biāo)準(zhǔn)中已經(jīng)對(duì)每個(gè)字段解釋 的非常詳細(xì)了,如果你覺(jué)得理解英文版的ISO8583規(guī)范有些困難,網(wǎng)上也有同行為我們:譯好的中文版ISO8583規(guī)范,所以我的目的是 達(dá)到閱讀本文后能夠?qū)SO8583知其然,亦知 其所以然,使以前基本沒(méi)有接觸它的人也能夠達(dá) 到掌握ISO8583報(bào)文規(guī)范。好了,我們?cè)撧D(zhuǎn)入正題了。liiJ:開(kāi)始時(shí),金融系統(tǒng)只有IBM這些大的公司 來(lái)提供設(shè)備,象各種主機(jī)與終端等。在各個(gè)計(jì)算 機(jī)設(shè)備之間,需要交換數(shù)據(jù)。我們知道數(shù)據(jù)是通 過(guò)網(wǎng)絡(luò)來(lái)傳送的,而在網(wǎng)絡(luò)上傳送的數(shù)據(jù)都是基 于0或1這樣的二進(jìn)制數(shù)據(jù)

3、,如果沒(méi)有對(duì)數(shù)據(jù)進(jìn) 行編碼,則這些數(shù)據(jù)沒(méi)有人能夠理解,屬于沒(méi)有 用的數(shù)據(jù)。起初的X.25、SDLC以及現(xiàn)在流行的 TCP/IP網(wǎng)絡(luò)協(xié)議都提供底層的通訊編碼協(xié)議, 它們解決了最底層的通訊問(wèn)題,能夠?qū)⒁淮址?從一個(gè)地方傳送到另一個(gè)地方。但是,僅僅傳送 字符串是沒(méi)有太大意義的,怎樣來(lái)解析字符串代 表什么內(nèi)容是非常重要的,否則傳送一些 “0123abcd的字符串也是無(wú)用的亂碼。讓我們隨著時(shí)光回到幾十年前的某個(gè)時(shí)刻,假設(shè)我們被推到歷史的舞臺(tái)上,由我們來(lái)設(shè)計(jì)個(gè)通用報(bào)文協(xié)議,來(lái)解決金融系統(tǒng)之間的報(bào)文交liiJ換,暫且稱該協(xié)議叫做ISO8583協(xié)議。此時(shí), 技術(shù)是在不斷的前行,當(dāng)初IBM 一支獨(dú)秀的局 面好

4、像已經(jīng)不妙了,各種大小不一的公司都進(jìn)入 金融行業(yè)以求能有所斬獲,呈一片百花齊放的局 面。我們?cè)鯓觼?lái)設(shè)計(jì)一個(gè)報(bào)文協(xié)議,能夠?qū)⑦@些 如雨后春筍般出現(xiàn)的所有公司都納入進(jìn)來(lái),其實(shí) 也不是一件很簡(jiǎn)單的事。我們還是先一步步的來(lái)考慮吧。金融行業(yè)其 實(shí)涉及到的數(shù)據(jù)內(nèi)容并不是成千上萬(wàn),無(wú)法統(tǒng) 計(jì)恰恰相反,是比較少的。我們都可以在心底 數(shù)得過(guò)來(lái),象交易類型、帳號(hào)、帳戶類型、密碼、 交易金額、交易手續(xù)費(fèi)、日期時(shí)間、商戶代碼、 2磁3磁數(shù)據(jù)、交易序列號(hào)等,把所有能夠總結(jié) 出來(lái)的都總結(jié)起來(lái)不過(guò)100個(gè)左右的數(shù)據(jù)。那我 們可以首先簡(jiǎn)單的設(shè)計(jì)ISO8583,定義128個(gè)字 段,將所有能夠考慮到的類似上面提到的“帳號(hào)” 等金

5、融數(shù)據(jù)類型,按照一個(gè)順序排起來(lái),分別對(duì) 應(yīng)128個(gè)字段中的一個(gè)字段。每個(gè)數(shù)據(jù)類型占固 定的長(zhǎng)度,這個(gè)順序和長(zhǎng)度我們都事先定義好。這樣就簡(jiǎn)單了,要發(fā)送一個(gè)報(bào)文時(shí),就將128個(gè) 字段按照順序接起來(lái),然后將接起來(lái)的整串?dāng)?shù)據(jù) 包發(fā)送出去。任何金融軟件收到ISO8583包后,直接按照 我們定義的規(guī)范解包即可,因?yàn)檎麄€(gè)報(bào)文的128 個(gè)字段從哪一位到哪一位代表什么,大家都知 道,只要知道你的數(shù)據(jù)包是ISO8583包即可, 我們都已經(jīng)定義好了。比如第1個(gè)字段是“交易 類型”,長(zhǎng)度為4位,第2個(gè)字段位是“帳號(hào)”, 為19位等等。接收方就可以先取4位,再取接 著的19位,依次類推,直到整個(gè)數(shù)據(jù)包128個(gè) 字段都解

6、完為止。其實(shí)這種做法真是簡(jiǎn)單直接,基本上就可以 滿足需要了。不過(guò)我們有幾個(gè)問(wèn)題要思考下:1、我怎么知道每個(gè)字段的數(shù)據(jù)類型呢,是數(shù)字 還是字符?2、每個(gè)傳送的報(bào)文都把128個(gè)字段都傳過(guò)去, 那網(wǎng)絡(luò)帶寬能夠承受得了,有時(shí)候我可能只需要 其中5個(gè)字段,結(jié)果多收到了 123個(gè)無(wú)用的字段。3、如果我某些字段的長(zhǎng)度不固定,屬于變長(zhǎng)怎么辦,因?yàn)槟悻F(xiàn)在解包是當(dāng)作數(shù)據(jù)包每個(gè)字段都 是固定的,用C語(yǔ)言解包時(shí)直接依靠指針取固 定長(zhǎng)度的一串字符做為一個(gè)字段。我們來(lái)一一解決這些問(wèn)題。第一個(gè)問(wèn)題簡(jiǎn)單,我在定義ISO8583時(shí)除了 定義每個(gè)字段表示什么,還規(guī)定其內(nèi)容是數(shù)字或 是字符等即可??紤]可能出現(xiàn)的類型不過(guò)有以下 幾種

7、:字母、數(shù)字、特殊字符、年月日等時(shí)間、 二進(jìn)制數(shù)據(jù)。比如我對(duì)128個(gè)字段中的“商戶類 型”字段定義其長(zhǎng)度是15,同時(shí)定義其類型為字 母。再精細(xì)點(diǎn),如果“商戶類型”里面的數(shù)據(jù)同時(shí) 包括數(shù)字和字母呢?那我們就定義其類型為字 母也可,為數(shù)字也可,即一個(gè)字段可以同時(shí)屬于 多個(gè)類型。第二個(gè)問(wèn)題稍微復(fù)雜點(diǎn)。其本質(zhì)就是如果我 只傳128個(gè)字段的5個(gè)字段,接收方怎么知道我 傳了哪幾個(gè)字段給它了。要是我們把剩下的123 全部填成0或其他特殊標(biāo)識(shí),標(biāo)明該字段不需要 使用?這種處理方法沒(méi)有半點(diǎn)用處,沒(méi)有解決網(wǎng)絡(luò)帶寬的本質(zhì)問(wèn)題,還是要傳128個(gè)字段。2 4 16 2 8 256換個(gè)思路,我在報(bào)文前面加上個(gè)包頭,包頭 里面包含的信息能夠讓別人知道只傳了 5個(gè)字 段。怎樣設(shè)計(jì)這個(gè)包頭,可以這樣,我們用16 個(gè)字節(jié),即128個(gè)bit (一個(gè)字節(jié)等于8bit)來(lái) 表示128個(gè)字段中的某個(gè)字段是否存在。每個(gè) bit在計(jì)算機(jī)的二進(jìn)制里面不是1就是0,如果是 1就表示對(duì)應(yīng)的字段在本次報(bào)文中存在,如果是 0就是不存在。這樣好了,如果別人接收到了ISO8583報(bào)文,可以先根據(jù)最前面的報(bào)文頭,就 知道緊接著報(bào)文頭后面的報(bào)文有哪些字段,沒(méi)有哪些字段了。比如,我要發(fā)送5個(gè)字段,分別屬 于128個(gè)字段中的第2、3、6、8、9字段,我就 可以將 12

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論