JPOS解压缩运行示例

时间:2016-10-17 09:21:05

标签: iso8583 jpos

我正在尝试使用JPOS库打包/解压缩ISO8583-1987消息。

我的格式有问题,我在互联网上找不到任何正在运行的例子。

有人能给我一个解压缩十六进制消息的运行示例,因为有很多带有ASCII消息的例子,但这不是我需要的。

谢谢大家的时间和时间。关注

于连

1 个答案:

答案 0 :(得分:2)

我假设您有一个十六进制字符串表示String中的消息,在这种情况下,您必须将其转换为字节数组。

例如,假设您将字符串作为主要参数。无论如何,您必须知道该十六进制表示中包含的is​​o消息的格式。例如,如果消息是二进制,则必须选择ISO87BPackager,如果是ascii,则必须选择ISO87APackager。

import org.jpos.iso.packager.ISO87BPackager;
import org.jpos.iso.ISOException;
import org.jpos.iso.ISOMsg;
import org.jpos.iso.ISOUtil;

public class ParseISOMsg {
    public static void main(String[] args) throws ISOException {
        String hexmsg = args[0];
        // convert hex string to byte array
        byte[] bmsg =ISOUtil.hex2byte(hexmsg);
        ISOMsg m = new ISOMsg();
        // set packager, change ISO87BPackager for the matching one.
        m.setPackager(new ISO87BPackager());
        //unpack the message using the packager
        m.unpack(bmsg);
        //dump the message to standar output
        m.dump(System.out, "");
    }
}

例如,如果您致电java -cp .:jpos.jar ParseISOMsg 080000200000008000001234563132333435363738,则应打印:

<isomsg>
    <!-- org.jpos.iso.packager.ISO87BPackager -->
    <field id="0" value="0800"/>
    <field id="11" value="123456"/>
    <field id="41" value="12345678"/>
</isomsg>