谈谈8583报文的使用及测试

转自:http://blog.sina.com.cn/s/blog_4c925dca010178pt.html

ISO8583报文在金融行业可谓是声名显赫,8583报文是一个国际标准的包格式,其重要性阿堂就不用多说了,网上有很多的介绍,不过对于一个从未接触过8383报文的新手来说,还是很有难度的。它主要是用来解决金融系统之间的报文交换的。本文适合有一定8583报文基础的网友阅读!阿堂目前对于8583报文也是略有认识,之所以写这篇文章,一来是为了作为学习笔记,二来是为了能给其它对8583报文的使用和测试想加深理解的网友提供一些帮助。
      下面,阿堂就主要分享“消费”类型报文的测试和组8583报文的过程,说明一下,我这里是针对我们日常使用POS机系统来说的,这里主要是模拟的POS终端发向POSP系统的8583报文。其基本业务流程图如下所示


 

下面,阿堂是用的发包工具模拟的pos终端发8583报文到posp终端的过程



 

 

 
ok,通过上面的图示,网友们应该有了一个直观的认识了,下面阿堂就来详解上面的报文是如何生成了

007b600016000060220000000002007020048020c08811165477666265921222000000000000014959555556022000375477666265921222d25085060000012600000033333333333333333232323232323232323232323232323135361000000000000000000822000001001500000100100000103133394343433842

第一步:先要查看中国银联8583规范文档,确定消费类需要哪些域组成的



 

根据文档我们可以轻易的得到需要的域为2,3,4,11,22,25,35,41,42,49,53,60,64域

第二步:根据位图工具,得到相应域的位图,此位图数字在下面会用到



 

第三步根据 字节长度+TPDU+报文头+报文数据  这样的规则即可得到完整的 报文数据了

(说明,下述内容的取值长度及规则,请参考中国银联pos终端规范文档,网上有很多的文档可以自行下载)

(1)     字节长度

报文长度007b

如下是246个字节->123个字符->长度是123(10进制)->7b(16进制)->占用两个字节007b

600016000060220000000002007020048020c08811165477666265921222000000000000014959555556022000375477666265921222d25085060000012600000033333333333333333232323232323232323232323232323135361000000000000000000822000001001500000100100000103133394343433842

 

(2)     TPDU(每个银行,对应的TPDU值各不相同,接入银行时,相应的银行会提供相应值的)

6000160000

(3)     报文头(12)

60 22 0 0 000000

 

 

磁条卡金融支付类应用为:60
软件版本号              22
终端状态                0(正常交易状态)
处理要求                0(无处理要求)
保留使用                000000



(4)     消息类型

0200 (消费类型,0800是签到类型)

(5)     位图

7020048020C08811



 

(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

B648个字节的定长域

3133394343433842

猜你喜欢

转载自zw1127.iteye.com/blog/1921281