关于ISO8583
1.ISO8583簡(jiǎn)介
8583協(xié)議是基于ISO8583報(bào)文國(guó)際標(biāo)準(zhǔn)的包格式的通訊協(xié)議,8583包最多由128個(gè)字段域組成,每個(gè)域都有統(tǒng)一的規(guī)定,并有定長(zhǎng)與變長(zhǎng)之分。8583包前面一段為位圖,用來(lái)確定包的字段域組成情況。其中位圖是8583包的靈魂,它是打包解包確定字段域的關(guān)鍵, 而了解每個(gè)字段域的屬性則是填寫(xiě)數(shù)據(jù)的基礎(chǔ)。8583協(xié)議多在POS機(jī)的開(kāi)發(fā)上使用,例如回頭客會(huì)員管理系統(tǒng)在POS機(jī)上的應(yīng)用就是采用8583報(bào)文。
——摘自百度百科
2.ISO8583結(jié)構(gòu)
ISO8583一般由三部分構(gòu)成:頭部+BitMap+域。
上一個(gè)ISOUtil報(bào)文解組包工具的解碼圖:
其中,長(zhǎng)度是由頭部信息決定,頭部制定長(zhǎng)度用16進(jìn)制表示,解碼的長(zhǎng)度轉(zhuǎn)成10進(jìn)制表示。例如,頭部制定長(zhǎng)度:006C,則長(zhǎng)度為108.
TPDU內(nèi)有10位數(shù)字,即5個(gè)字節(jié),以圖中 “60 0145 0000”為例,60是一個(gè)ID標(biāo)識(shí)符,0145一般對(duì)應(yīng)24域的值(NII即Network International ID),0000為目的地址。決定目的地址發(fā)到銀行去后,則銀行返回:“60 0000 0145”,會(huì)將后面兩個(gè)做一個(gè)位置交換。
MTI的值表示一種交易類(lèi)型。
BitMap(比特地圖)里的值,決定了解析出的域Field[ ]里的值。
解析方法:將值中每一個(gè)數(shù)化成4位二進(jìn)制,從左往右數(shù),“1”在第幾位,則域的[ ]填幾。
eg:
報(bào)文中有的是字符串,有的是二進(jìn)制,有的是ASCII碼。field所對(duì)應(yīng)的value值主要通過(guò)ASCII碼轉(zhuǎn)換,也根據(jù)文檔注釋決定域值轉(zhuǎn)化。
3.8583發(fā)送方式
通過(guò)使用socket將報(bào)文發(fā)送到目標(biāo)服務(wù)器。
新手入門(mén),歡迎指正~
總結(jié)
- 上一篇: 阿里范皓宇:互联网汽车会为汽车行业带来全
- 下一篇: Cy5 COOH非活性染料溶于有机溶剂1