8583協議理解


ISO8583報文(簡稱8583包)又稱8583報文是一個國際標准的包格式,最多由128個字段域組成,每個域都有統一的規定,並有定長與變長之分。

8583包前面一段為位圖,用來確定包的字段域組成情況。參考文檔

其中位圖是8583包的靈魂,它是打包解包確定字段域的關鍵,而了解每個字段域的屬性則是填寫數據的基礎。在POS機的開發上時經常要用到,例如回頭客會員管理系統在POS機上的應用就是采用8583報文。

報文的類型有很多種,比如:sale,reversal,settlement等等,不同的類型組包也是不一樣的, 下面是“消費”類型報文的測試和組8583報文的過程,針對我們日常使用POS機系統來說的,這里主要是模擬的POS終端發向POSP系統的8583報文。其基本業務流程圖如下所示

基礎知識:

1byte = 8bit

1byte = 2個16進制數

2個字節=1個字符

BCD碼:用4位二進制數來表示1位十進制數中的0~9這10個數碼,即1bcd碼=4bit

報文結構:

TPDU頭 =  ID(60H) + 目的地址(N4) + 源地址(N4),長度為10字節,壓縮時用BCD碼表示為5個字節長度的數值。

 

報文頭 = 應用類別定義(N2 )+軟件總版本號(N2) + 終端狀態(N1) + 處理要求 (N1)+ 軟件分版本號(N6),總長度為12字節,壓縮時用BCD碼表示為6個字節長度的數值。

報文長度(2字節)+TPDU(5字節)+報文頭(6字節)+域數據(指令碼(0域 2字節 消息類型)+位圖(8字節)+其他域數據

POS終端上送POS中心的消息報文結構包括TPDU、報文頭和應用數據三部分:

16進制報文:

007b 6000160000 602200000000 0200 7020048020c08811

600016000060220000000002007020048020c08811165477666265921222000000000000014959555556022000375477666265921222d25085060000012600000033333333333333333232323232323232323232323232323135361000000000000000000822000001001500000100100000103133394343433842

 

青色背景:報文長度 007b  如上是246個字節->123個字符->長度是123(10進制)->7b(16進制)->占用兩個字節007b

 

黃色背景:TUDU頭 6000160000

 

紅色背景:報文頭 602200000000

磁條卡金融支付類應用為:60

軟件版本號              22

終端狀態                0(正常交易狀態)

處理要求                0(無處理要求)

保留使用                000000

 

灰色背景:消息類型 0200

 

綠色背景:bitmap位圖,轉成bit顯示, 7020048020c08811

根據文檔我們可以輕易的得到需要的域為2,3,4,11,22,25,35,41,42,49,53,60,64域

 

(6)     2域

 

165477666265921222(16個字節,最大是19個字節) 主賬號

 

N..19(LLVAR),2個字節的長度值+最大19個字節的主賬號,

壓縮時用BCD碼表示的1個字節的長度值+用左靠BCD碼表示的最大10個字節的主賬號。

 

(7)     3域

 

000000 交易處理碼

 

(8)     4域

 

000000014959 (149.59CNY 49域可以看出來)

 

(9)     11域

 

555556 (系統跟蹤號 定長3個字節)

 

(10) 22域

 

0220 (服務點輸入方式碼 刷卡無PIN)

 

(11) 25域

 

00 (服務點條件碼 00正常提交)

 

(12) 35域

 

375477666265921222d250850600000126000000

 

    2磁道數據(Track 2 Data)

 

2個字節的長度值+最大37個字節的第二磁道數據(數字和分隔符)

 

壓縮時用BCD碼表示的1個字節的長度值+用左靠BCD碼表示的最大19個字節的第二磁道數據

 

 

 

(13) 41域

 

受卡機終端標識碼

 

3333333333333333  (33333333 BCD碼)

 

 

 

(14) 42域

 

受卡方標識碼

 

323232323232323232323232323232 (222222222222222 BCD碼)

 

 

(ANS15,15個字節的定長域)

 

(15) 49域

 

交易貨幣代碼

 

313536(AN3)     (156 BCD碼)

 

(16) 53域

 

安全控制信息

 

1000000000000000 (16 BCD個字節)

 

(17) 60域

 

60.1交易類型碼  22:消費類型

 

60.2批次號         000001

 

長度:8個字節

 

000822000001

 

壓縮時用右靠BCD碼表示的2個字節的長度值+用左靠BCD碼表示的最大7個字節的數據

 

(18) 64域

 

報文鑒別碼(Message Authentication Code) MAC

 

B64,8個字節的定長域

 

3133394343433842


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM