第一章 銀聯8583報文解析

1報文格式定義
POS終端上送POS中心的消息報文結構包括TPDU、報文頭和應用數據三部分:
這裏寫圖片描述
—— TPDU說明:長度爲10個字節, 壓縮時用BCD碼錶示爲5個字節長度的數值。
—— 報文頭說明:總長度爲12字節,壓縮時用BCD碼錶示爲6個字節長度的數值。
在POS上送的請求/通知報文中,該數值由POS終端應用程序在打包上送時根據POS終端參數和當前狀態填入應用類別、軟件總版本號、終端狀態和軟件分版本號(具體指各廠商的程序版本號),用於POS中心根據數值進行相應的處理。
在POS中心返回的應答報文中,由POS中心填入處理要求,其他域保持原值返回,POS將根據收到報文頭中的處理要求進行相應處理。

2 看懂8583報文需要知道的概念
BCD碼:用4位二進制數來表示1位十進制數中的0~9這10個數碼。舉個列子,’0x03 0x02’的BCD碼錶示爲0X32,將前一個的低四位轉移到後一個的高四位,具體實現會單獨開一章。這裏知道如何用即可。

3實例報文解析
這裏舉個簽到報文的例子。原始報文: 00 3B 60 00 06 00 00 60 22 00 00 00 00 08 00 00 20 00 00 00 C0 00 12 00 12 47 35 38 44 30 31 31 31 35 38 38 37 35 38 44 30 34 38 31 36 35 35 35 35 00 11 00 00 00 01 00 30 00 02 30 31
拿到原始報文後我們來拆分一下。根據上面的報文格式定義,我們先拆分出來TPDU和報文頭:TPDU佔5個字節,報文頭佔6個字節,還有報文的前兩個字節是報文長度,那麼:
報文長度:00 3B=59個字節
TPDU:60 00 06 00 00
Header:60 22 00 00 00 00

剩下的就是ISO8538的內容。看下籤到報文內容:
這裏寫圖片描述
重要的是找到位圖信息,
消息頭2個字節:08 00
位圖8個字節:00 20 00 00 00 C0 00 12
用位圖分析工具分析出域的信息:
這裏寫圖片描述

從圖上看域是11 41 42 60 63,到了這裏就去看下規範中的域信息定義。
11域:00 12 47
41域:35 38 44 30 31 31 31 35
42域:38 38 37 35 38 44 30 34 38 31 36 35 35 35 35
60域:00 11 00 00 00 01 00 30——長度是00 11 值是00 00 00 01 00 30
63域:00 02 30 31——長度是0002 值是30 31

如下圖:
這裏寫圖片描述

如有什麼地方不正確歡迎指出,共同學習

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章