ISO-8583协议的简要说明
(2013-01-05 12:13:11)
标签:
iso8583isomessage杂谈 |
消息格式
字段类型
从第二场的最后一个,该消息包含唯一的“正常”的字段,它可以有以下的数据类型:
阿尔法:
数字
LLVAR
LLLVAR
日期/时间
量
最常见的消息类型是:
0200请求付款,信用卡收费等
0210响应支付,信用卡费,等等。
0400请求逆转支付,信用卡收费等
0410响应逆转支付,信用卡费,等等。
0600查询
0610响应查询
0800 Echo请求
0810 ECHO响应
编码
ISO8583消息可以被编码为ASCII或二进制,ASCII是比较常见的。在这种格式中,消息类型是4个字节长,因为它发送的字符文本,即。 “0200”。消息类型是二进制编码,2个字节长,例如信息类型0200被编码为字节0x02和0x00写入。
在ASCII编码,位图是使用十六进制编码发送,所以它是16个字符长,也就是说,每4位十六进制数字。例如,如果该消息包括场1和3,但不为2或4,则第4位是1010,这是是0xA。位二进制编码,发送8个字节,不以任何方式编码。
数字和字母领域的ASCII具有相同的长度(以字节为单位),因为他们在字符或数字以文本形式发送数值型字段,例如“000012”。
二进制编码,编码采用BCD(二进制编码的数字),这意味着2位数编码为十六进制,即12号被编码为0x12中数值型字段,这样,一个字节可以包含2位。与奇数个数字的编号(如为LLLVAR字段的长度头)将具有一个零到左边,例如128被编码为两个字节:0x1和为0x28。
ASCII编码的LLVAR和LLLVAR领域将有2个或3个字符的标题。
二进制编码LLVAR,LLLVAR的字段将具有1或2个字节的头部; LLVAR字段具有它们的头作为一个1 - 字节的BCD数字,例如,如果在标头的0x57表示该字段是57个字节长。 LLLVAR字段具有2个字节的BCD头,但第一位数是始终为0,例如,如果标题是量0x128这意味着的字段的内容是128字节长。
日期和金额字段,数字,编码为任何其他数值型字段。例如,一个完整的日期字段将是10个字符的ASCII编码,但只有5个字节的二进制编码。
ISO头
在一些实施方式中,消息必须包括报头的消息类型之前。这是特定于实现的标题通常只通过消息类型而异。
此外,它是很常见的,包括一个头的长度的消息,当在网络上发送ISO8583。标头通常是2字节长,与完整的消息的长度是一个二进制的无符号整数,从而使另一侧上的读数更容易,因为这个过程包括读取2个字节,将它们解释为一个长度,然后读取该多少个字节。字节顺序通常是最显著的字节,但它可以改变在某些实现。
有时也有一个消息终止子,它可以被包括在的长度,或不依赖于实现。消息终止符,通常只有1个字节长。
实例
ISO8583消息下面是一些例子,与XML定义解析它们与j8583框架一起。 ASCII编码被用于这些。
ISO015000050
ISO015000055
ISO015000050
ISO015000055
ISO015000015
ISO015000015
<="" font="" style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; ">
Example 1
Request:
ISO0150000500200B23A8001
Field
ISO header
Message type
Primary bitmap
Secondary bitmap
3 (proc code)
4 (amount)
7 (date)
11 (trace)
12 (time)
13 (date issued)
15 (limit date)
17 (expiration date)
32
35
37 (reference)
41 (term id)
43
48
49 (currency)
60

加载中…