加载中…
个人资料
喜欢就告诉她
喜欢就告诉她
  • 博客等级:
  • 博客积分:0
  • 博客访问:0
  • 关注人气:0
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

ISO-8583协议的简要说明

(2013-01-05 12:13:11)
标签:

iso8583

isomessage

杂谈


    此协议的目的是支付处理的信息通过网络传输,通常使用TCP / IP套接字。 ISO8583消息可以最多有63或127字段和被处理在一个线性的方法,那就是,该消息可以被处理,因为它是被读出。
消息格式
    一个简单的ISO8583包括以下内容:
    消息类型:表示如果消息是一个请求或响应,它是什么类型的事务。
    位图:位图显示在消息中包含的字段。它是一个二进制串的64比特,其中每个位对应于一个字段,指示消息中包含哪些字段。
    字段:字段后的位图。有不同的字段类型,该消息不表示的字段的类型,这具有先前定义的规范(一些常见的字段是有一定的标准,但一些实施方式中不遵循它,所以它是非常重要的总是审查的具体实施工作)的规范。
    第一个字段是一个特殊的字段,并包含一个辅助位图。如果主点阵图的第一比特上,然后后的位图的第一个字段是另一个位图,64位长,表示从65至128的附加字段。
字段类型
从第二场的最后一个,该消息包含唯一的“正常”的字段,它可以有以下的数据类型:
阿尔法:
    可以包含固定数量的字符和数字的。长度previouly建立在规范中的特定实现。如果内容是小于字段的长度,它必须填写空格右侧。
数字
    只能包含具有固定长度的数字。的长度被预先建立在规范中的特定实现。如果数目是小于的字段长度,它必须是零填充到左边。
LLVAR
    这是一个可变长度的字母数字字段。它具有一个2位数的字段标题的开头,表示的字段的其余部分的长度,它可以是0至99。
LLLVAR
    另外一个字母数字字段的长度可变,但字段标题是3个数字长,所以其余的领域可以是0到999个字符长。
日期/时间
    有三种不同的日期格式:A 10-数字格式MMDDHHmmss的,一个4位数字的格式YYMM(可用于信用卡的到期日期),另外4位数字的格式MMDD。 hhmmss格式指定的时间为6位数字。

    这是一个12位的数字字段,表示货币量美分。例如:$15.00可表示为000000001500。
    
    消息类型

最常见的消息类型是:
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编码被用于这些。



        "http://j8583.sourceforge.net/j8583.dtd">



ISO015000050
ISO015000055
ISO015000050
ISO015000055
ISO015000015
ISO015000015



        650000
        456
        4591700012340000=
        SOLABTEST             TEST-3       DF MX<="" font="">
        484
        B456PRO1+000
                1234P
        999
        ABCD
        Fixed data from template
        ABC
        Field of length 42
        Fixed field
        Another fixed field
        ...and yet another fixed field.
<="" font="" style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; line-height: normal; ">
Example 1

Request:
ISO0150000500200B23A800128A180180000000014000000650000000000002050042813271000057813271004280428042803456174591700012340000=000000230579A1B2C3D4E5 SOLABTEST TEST-3 DF MX010abcdefghij484012B456PRO1+000013 1234P0399904ABCD
Field     Value
ISO header     ISO015000050
Message type     0200
Primary bitmap     B23A800128A18018
Secondary bitmap     0000000014000000
3 (proc code)     650000
4 (amount)     000000002050 ($20.50)
7 (date)     0428132710 (Abril 28 13:27:10)
11 (trace)     000578
12 (time)     132710 (13:27:10)
13 (date issued)     0428 (28 de abril)
15 (limit date)     0428 (28 de abril)
17 (expiration date)     0804 (Abril 2008)
32     456
35     4591700012340000=
37 (reference)     000000230579
41 (term id)     A1B2C3D4E5
43     SOLABTEST TEST-3 DF MX
48     abcdefghij
49 (currency)     484
60     B456PRO1+000
61     1234P
100     999
102     ABCD

Response:
ISO0150000550210B23A80012EA180180400004014000004650000000000002050042813271000057813271004280428060403456174591700012340000=00000023057923104300A1B2C3D4E5 SOLABTEST TEST-3 DF MX010abcdefghij484012B456PRO1+000054Dynamic data generated at Mon Apr 28 13:27:11 CDT 2008ABCField of length 42 0399904ABCD031...and yet another fixed field.
Field     Value
ISO header     ISO015000055
Message type     0210
Primary bitmap     B23A80012EA18018
Secondary bitmap     0400004014000004
3 (proc code)     650000
4 (amount)     000000002050 ($20.50)
7 (transaction date)     0428132710 (Abril 28 13:27:10)
11 (trace)     000578
12 (time)     132710 (13:27:10)
13 (date issued)     0428 (28 de abril)
15 (limit date)     0428 (28 de abril)
17 (expiration date)     0804 (Abril 2008)
32     456
35     4591700012340000=
37 (reference)     000000230579
38 (confirmation number)     231043
39 (result code)     00
41 (term id)     A1B2C3D4E5
43     SOLABTEST TEST-3 DF MX
48     abcdefghij
49 (currency)     484
60     B456PRO1+000
61     Dynamic data generated at Mon Apr 28 13:27:11 CDT 2008
70     ABC
90     Field of length 42
100     999
102     ABCD
126     ...and yet another fixed field.

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有