1. 程式人生 > >8583報文的使用和解析

8583報文的使用和解析

消費類 靈魂 金融 終端 賬號 map 2個 mac 保留

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

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

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

“消費”類型報文的測試和組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

8583報文的使用和解析