8583报文手动组包——详细分析每个示范域

8583报文作为一种应用较广的报文,有它独特的格式。

网上有关8583报文的说明很多。但涉及到每个域的详细例子就较少了。这里列出各个域的详细例子,供参考。

8583报文:

报文组成:

报文头【长度(2字节)+TPDU(5字节)+报文版本号(2字节)】+信息类型+位图+数据
TPDU: 6000100000
报文版本号:0100
信息类型:0080 
报文长度:整体报文长度 -报文头中的2字节长度。如8583整体报文长度为100,那么报文长度为98.用两字节的BCD码表示(16进制)为0062。

报文中容易出错的在于银联规范中的各种数据格式,定长、变长、ASCII变长、以及TLV格式等。在组包或者解包前,仔细看规范是十分重要的。
以下主要是针对各个域单独组包和多个域组包的情况举例。

多域组包

手动组装的8583报文:
0072600010000001000800203801000404000880000000000110101112240009303030313531000800350004343136310009303030303031303031

分析组包过程:
0072(长度)
6000100000(TPDU)
0100(版本号)
0800(信息类型)
2038010004040008(64位图)
8000 00(3域)
000001(11域)
101011(12域)
1224(13域)
0009(24域)
303030313531(38域)
00080035000434313631(46域)
0009303030303031303031(61域)
按顺序拼接起来即可。
详细的分析,在单独域组包中可以看到。

单独域组包

2域单独组包:

格式:变长,LLVAR

类型:N..19,压缩时使用1字节BCD表示的长度 + 用右靠BCD码表示最大10个字节的变长域。

二进制:0100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
十六进制(BCD码>1001加6):4000000000000000
2域内容:6333021402021781,按规范转为: 166333021402021781
计算报文长度:0034
组装8583报文:00346000100000010000804000000000000000166333021402021781


3域单独组包:

格式:定长

类型:N6,压缩时用BCD码表示的3个字节的定长域。

二进制:0010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
十六进制(BCD码>1001加6):2000000000000000
3域内容:800000 ,按规范转为:800000
报文长度:0028
组装8583报文:00286000100000010000802000000000000000800000


4域单独组包:

格式:定长

类型:N12压缩时用BCD码表示的6个字节的定长域。

二进制:0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
十六进制(BCD码>1001加6):1000000000000000
4域内容:1.01,按规范转为:000000000101
报文长度:002E
组装8583报文:002E6000100000010000801000000000000000000000000101

7域单独组包:

n1010位定长数字字符

格式: MMDDhhmmss
二进制:0000 0010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
十六进制(BCD码>1001加6):0200000000000000
7域内容:0228102030,按规范转为:0228102030
报文长度:002C
组装8583报文:002C60001000000100008002000000000000000228102030

11域单独组包:

格式:定长

类型:N6压缩时用BCD码表示的3个字节的定长域。

二进制:0000 0000 0010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
十六进制(BCD码>1001加6):0020000000000000
11域内容:000001,按规范转为:000001
报文长度:0028
组装8583报文:00286000100000010000800020000000000000000001

12域单独组包:

格式:定长,HHmmss

类型:N6压缩时用BCD码表示的3个字节的定长域

二进制:0000 0000 0001 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
十六进制(BCD码>1001加6):0010000000000000
12域内容:203012,按规范转为:203012
报文长度:0028
组装8583报文:00286000100000010000800010000000000000203012

13域单独组包:

格式:定长,MMDD

类型:N4压缩时用BCD码表示的2个字节的定长域。

描述:交易在终端上发生的时间。

二进制:0000 0000 0000 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
十六进制(BCD码>1001加6):0008000000000000
13域内容:0430,按规范转为:0430
报文长度:0024
组装8583报文:002460001000000100008000080000000000000430

14域单独组包:

格式:定长,MMYY

类型:N4压缩时用BCD码表示的2个字节的定长域。

描述:卡的有效期,月月年年

二进制:0000 0000 0000 0100 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
十六进制(BCD码>1001加6):0004000000000000
14域内容:0415,按规范转为:0415
报文长度:0024
组装8583报文:002460001000000100008000040000000000000415

15域单独组包:

格式:定长, MMDD

类型:N4压缩时用BCD码表示的2个字节的定长域。

描述:清算日期(Date Of Settlement),月月日日
二进制:0000 0000 0000 0010 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
十六进制(BCD码>1001加6):0002000000000000
15域内容:1229,按规范转为:1229
报文长度:0024
组装8583报文:002460001000000100008000020000000000001229

32域单独组包:

格式:变长,LLNUM

类型:N..11,压缩时使用1字节BCD表示的长度 + 用右靠BCD码表示最大11个字节的变长域。

描述:受理机构标识码。该代理机构应是已被批准入网,能为商户提供收单服务的入网机构。

二进制:0000 0000 0000 0000 0000 0000 0000 0001 0000 0000 0000 0000 0000 0000 0000 0000
十六进制(BCD码>1001加6):0000000100000000
32域内容:2001,按规范转为:042001
报文长度:0028
组装8583报文:00286000100000010000800000000100000000042001

34域单独组包:

格式:变长,LLVAR

类型:N..281个字节BCD长度值 + 最大28个字节的变长ASCII

描述:扩展主账号信息域

二进制:0000 0000 0000 0000 0000 0000 0000 0000 0100 0000 0000 0000 0000 0000 0000 0000
十六进制(BCD码>1001加6):0000000040000000
34域内容:198809,按规范转为:06313938383039
报文长度:0030
组装8583报文:0030600010000001000080000000004000000006313938383039

35域单组组包:

格式:变长,LLVAR

类型:Z..48(加密后)1个字节BCD长度值 + 用右靠BCD码表示的最大24个字节的第二磁道数据。

描述:写在卡二磁道的数据。
二进制:0000 0000 0000 0000 0000 0000 0000 0000 0010 0000 0000 0000 0000 0000 0000 0000
十六进制(BCD码>1001加6):0000000020000000
35域内容: EB5B9DB3618B836C1E334C8EBD8AAFA0C0777471F9F41B19,按规范转为:24 EB5B9DB3618B836C1E334C8EBD8AAFA0C0777471F9F41B19
报文长度:0054
组装8583报文:0054600010000001000080000000002000000024EB5B9DB3618B836C1E334C8EBD8AAFA0C0777471F9F41B19

36域单独组包:

格式:变长,LLLVAR

类型:Z...112(加密后)2个字节BCD长度值 + 用右靠BCD码表示的最大56个字节的第三磁道数据。

描述:写在卡三磁道的数据。
二进制:0000 0000 0000 0000 0000 0000 0000 0000 0001 0000 0000 0000 0000 0000 0000 0000
十六进制(BCD码>1001加6):0000000010000000
36域内容: EB5B9DB3618B836C1E334C8EBD8AAFA0C0777471F9F41B19,按规范转为:0024 EB5B9DB3618B836C1E334C8EBD8AAFA0C0777471F9F41B19
报文长度:0056
组装8583报文:005660001000000100008000000000100000000024EB5B9DB3618B836C1E334C8EBD8AAFA0C0777471F9F41B19

37域单独组包:

格式:定长

类型:AN1212个字节的定长ASCII

二进制:0000 0000 0000 0000 0000 0000 0000 0000 0000 1000 0000 0000 0000 0000 0000 0000
十六进制(BCD码>1001加6):0000000008000000
37域内容: 11112233,按规范转为:303030303 131313132323333
报文长度:003A
组装8583报文:003A6000100000010000800000000008000000303030303 131313132323333

41域单独组包:

格式:定长

类型:N88个字节的定长ASCII

描述:定义在收单单位中定义一个服务终端的标识码
二进制:0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1000 0000 0000 0000 0000 0000
十六进制(BCD码>1001加6):0000000000800000
41域内容: 12345678,按规范转为:3132333435363738
报文长度:0032
组装8583报文:003260001000000100008000000000008000003132333435363738

42域单独组包:

格式:定长

类型:ANS1515个字节的定长ASCII

描述:在本地和网络中定义交易单位(商户)的编码
二进制:0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0100 0000 0000 0000 0000 0000
十六进制(BCD码>1001加6):0000000000400000
41域内容:8210245 12345678,按规范转为:38323130323435 3132333435363738
报文长度:0040
组装8583报文:0040600010000001000080000000000040000038323130323435 3132333435363738

46域单独组包:

格式:变长,LLLVAR

类型:ANS..2552个字节BCD长度值 + 最大128个字节的ASCII

描述:该域用于处理TLV数据

二进制:0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0100 0000 0000 0000 0000
十六进制(BCD码>1001加6):0000000000040000
46域内容:0000#trans_type#99,按规范转为:0006000000023939
报文长度:0032
组装8583报文:003260001000000100008000000000000400000006000000023939

52域单独组包:

格式:定长

类型:B648个字节的定长二进制数

描述:用户在服务终端上交易用于识别用户合法性的一些数字
二进制:0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 0000 0000 0000
十六进制(BCD码>1001加6):0000000000001000
52域内容: 5EF0F6C66C3ED34E,按规范转为: 5EF0F6C66C3ED34E
报文长度:0032
组装8583报文:00326000100000010000800000000000001000 5EF0F6C66C3ED34E

55域单独组包:

格式:变长,LLLVAR

类型:ANS..255, 2个字节BCD长度值 + 最大128个字节的BCD数据

描述:本域为IC卡交易使用
二进制:0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0010 0000 0000
十六进制(BCD码>1001加6):0000000000000200
52域内容: 9F260879CC8EC5A09FB9479F2701809F100807010199A0B806019F3704000000009F360201C2950500001800009A031205089C01609F02060000000000005F2A02015682027D009F1A0201569F03060000000000009F3303E0F0F09F34036003029F3501119F1E0832303033313233318405FFFFFFFFFF9F090220069F4104000000019F74064543433030319F631030313032303030308030303030303030,按规范转为:0318 9F260879CC8EC5A09FB9479F2701809F100807010199A0B806019F3704000000009F360201C2950500001800009A031205089C01609F02060000000000005F2A02015682027D009F1A0201569F03060000000000009F3303E0F0F09F34036003029F3501119F1E0832303033313233318405FFFFFFFFFF9F090220069F4104000000019F74064543433030319F631030313032303030308030303030303030
报文长度:0164
组装8583报文:016460001000000100008000000000000002000159 9F260879CC8EC5A09FB9479F2701809F100807010199A0B806019F3704000000009F360201C2950500001800009A031205089C01609F02060000000000005F2A02015682027D009F1A0201569F03060000000000009F3303E0F0F09F34036003029F3501119F1E0832303033313233318405FFFFFFFFFF9F090220069F4104000000019F74064543433030319F631030313032303030308030303030303030

61域单独组包:

bitmap(64位图):
二进制:0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1000
十六进制(BCD码>1001加6):0000000000000008
61域内容:  000001001,按规范转换为:0009303030303031303031
计算报文长度:0038
组装8583报文:003860001000000100008000000000000000080009303030303031303031 



  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值