All the standareds of 8583 is configured in packet8583.xml
Configure packet8583.xml parameter
<?xml
version="1.0" encoding="UTF-8"?> <root> <!--
任何属性在不影响解析的情况下都可以不写 --> <!--
划分为BINARY,CHAR,NUMERIC,LLVAR,LLLVAR,LLVAR_NUMERIC,LLLVAR_NUMERIC,LLBINARY,LLLBINARY这几种格式
BINARY采用二进制编码(8位二进制数编码为一个字节)
LLBINARY域前加一个字节的字节长度(采用bcd编码)
LLLBINARY域前加两个字节的长度(注:字节长度,如0x00
0x20就取后面20个字节长度数据)(采用bcd编码)
CHAR,LLVAR,LLLVAR为ASC(即正常的getBytes(Encoding))编码
LLVAR域前加一个字节的字节长度(采用bcd编码),LLLVAR域前加两个字节的字节长度(采用bcd编码),
NUMERIC,LLVAR_NUMERIC,LLLVAR_NUMERIC采用BCD(半个字节表示一个10进制数,
每两位编码为一个字节)编码,
LLVAR_NUMERIC域前加一个字节的字节长度(采用bcd编码),
LLLVAR_NUMERIC域前加两个字节的长度(注:非字节长度,而是数字的长度,即字节长度的两倍)(采用bcd编码)
CHAR、BINARY、NUMERIC都需要指定长度,默认CHAR类型左对齐、右补空格,NUMERIC右对齐、左补零,有特殊,就需要 增加align屬性,
lengthType指明变长字段长度表示的方法,bcd表示十进制压缩码,hex表示十六进制数据,正常不需要设置,只有非常特殊的情况
代码中会在IsoField setValue时进行格式化,组装报文时计算LLVAR等域长 --> <!--
compress=true默认压缩, type为NUMERIC的域都为BCD类型,变长域长度也要压缩成BCD码 --> <ISO8583Config
compress="true"> <field
id="tpdu" type="NUMERIC" length="5" />
<!-- tpdu,一般都会有值 --> <field
id="header" type="NUMERIC" length="6" /> <!-- msgid之前的报文头部分,一般都会有值,在这边设置好可以,bcd压缩格式,长度不限制 --> <field
id="msgid" type="NUMERIC" length="2" /> <!-- msgid--> <field
id="bitmap" type="NUMERIC" length="8" /> <!-- 第1域 bitmap必须使用这个 --> <field
id="2" type="LLVAR_NUMERIC" /> <field
id="3" type="NUMERIC" length="3" /> <field
id="4" type="NUMERIC" length="6" /> <field
id="8" type="CHAR" length="11" /> <field
id="11" type="NUMERIC" length="3" /> <field
id="12" type="NUMERIC" length="3" /> <field
id="13" type="NUMERIC" length="2" /> <field
id="14" type="NUMERIC" length="2" /> <field
id="15" type="NUMERIC" length="2" /> <field
id="22" type="NUMERIC" length="2" align="left" /> <field id="23" type="NUMERIC" length="2" align="right" /> <field id="24" type="NUMERIC" length="2" /> <field id="25" type="NUMERIC" length="1" /> <field id="26" type="NUMERIC" length="1" /> <field id="32" type="LLVAR_NUMERIC" /> <field id="35" type="LLVAR_NUMERIC" /> <field id="36" type="LLLVAR_NUMERIC" /> <field id="37" type="CHAR" length="12" /> <field id="38" type="CHAR" length="6" /> <field id="39" type="CHAR" length="2" /> <field id="41" type="CHAR" length="8" /> <field id="42" type="CHAR" length="15" /> <field id="44" type="LLVAR" /> <field id="48" type="LLLVAR_NUMERIC" /> <field id="49" type="CHAR" length="3" /> <field id="52" type="BINARY" length="8" /> <field id="53" type="NUMERIC" length="8" /> <field id="54" type="LLLVAR" /> <field id="55" type="LLLBINARY" /> <field id="58" type="LLLVAR" /> <field id="60" type="LLLVAR_NUMERIC" /> <field id="61" type="LLLVAR_NUMERIC" /> <field id="62" type="LLLTRACK" /> <field id="63" type="LLLVAR" /> <field id="64" type="BINARY" length="8" /> </ISO8583Config> <!--第二个8583配置,多个可以在下面添加 --> <ISO8583Config-config compress="true"> <field id="tpdu" type="NUMERIC" length="5" /> <!--
tpdu,一般都会有值
--> <field id="header" type="NUMERIC" length="6" /> <!--
msgid之前的报文头部分,一般都会有值,在这边设置好可以,bcd压缩格式,长度不限制 --> <field id="msgid" type="NUMERIC" length="2" />
<!--
msgid--> <field id="bitmap" type="NUMERIC" length="8" /> <!-- 第1域 bitmap必须使用这个 --> <field id="2" type="LLVAR_NUMERIC" /> <field id="3" type="NUMERIC" length="3" /> <field id="4" type="NUMERIC" length="6" /> <field id="8" type="CHAR" length="11" /> <field id="11" type="NUMERIC" length="3" /> <field id="12" type="NUMERIC" length="3" /> <field id="13" type="NUMERIC" length="2" /> <field id="14" type="NUMERIC" length="2" /> <field id="15" type="NUMERIC" length="2" /> <field id="22" type="NUMERIC" length="2" align="left" /> <field id="23" type="NUMERIC" length="2" align="right" /> <field id="24" type="NUMERIC" length="2" /> <field id="25" type="NUMERIC" length="1" /> <field id="26" type="NUMERIC" length="1" /> <field id="32" type="LLVAR_NUMERIC" /> <field id="35" type="LLVAR_NUMERIC" /> <field id="36" type="LLLVAR_NUMERIC" /> <field id="37" type="CHAR" length="12" /> <field id="38" type="CHAR" length="6" /> <field id="39" type="CHAR" length="2" /> <field id="41" type="CHAR" length="8" /> <field id="42" type="CHAR" length="15" /> <field id="44" type="LLVAR" /> <field id="48" type="LLLVAR_NUMERIC" /> <field id="49" type="CHAR" length="3" /> <field id="52" type="BINARY" length="8" /> <field id="53" type="NUMERIC" length="8" /> <field id="54" type="LLLVAR" /> <field id="55" type="LLLBINARY" /> <field id="58" type="LLLVAR" /> <field id="60" type="LLLVAR_NUMERIC" /> <field id="61" type="LLLVAR_NUMERIC" /> <field id="62" type="LLLTRACK" /> <field id="63" type="LLLVAR" /> <field id="64" type="BINARY" length="8" /> </ISO8583Config-config> </root> |
Normally 8583 only need a configuration file ISO8583Config. If there are multiple 8583 configurations needed to be
called, ISO8583Config-config
should
be loaded by using new Iso8583Manager(this).Load8583XMLconfigByTag
("ISO8583Config-config")