java J8583将子字段设置为IsoMessage对象

xpszyzbs  于 2023-06-04  发布在  Java
关注(0)|答案(1)|浏览(129)

如何使用J8583库为IsoMessage对象设置子字段?我使用j8583库发送ISO8583消息,这些消息只需要整数数据元素索引,如字段7、11和12

public void createIsoMessage(){
        MessageFactory<IsoMessage> messageFactory = new MessageFactory<>();
        IsoMessage isoMessage = messageFactory.newMessage(0x800);
        isoMessage.setValue(7, "0601163045", IsoType.DATE10, 10);
        isoMessage.setValue(11, "163045", IsoType.DATE10, 6);
        isoMessage.setValue(12, "163045", IsoType.DATE10, 6);
    }

但是我需要发送具有子字段的数据元素,例如字段:127.2 127.3 127.12 127.25.3 127.25.4,但我只能使用setValue()函数设置整数数据元素索引
我需要能够设置具有子字段的数据元素,特别是数据元素127,以便能够发送支付处理器所需的ICCDATA。

toiithl6

toiithl61#

来自the j8583 doc
您还可以创建一个CompositeField,在其中存储几个子字段,并将其存储在IsoMessage中的任何字段中,指定与CustomField相同的示例:

CompositeField f = new CompositeField().addValue(new IsoValue<String>(IsoType.ALPHA, "one", 5))
    .addValue(new IsoValue<String>(IsoType.LLVAR, "two"))
    .addValue(new IsoValue<Long>(IsoType.NUMERIC, 123l, 6))
    .addValue(new IsoValue<String>(IsoType.ALPHA, "OK", 2));
message.setValue(125, f, f, IsoType.LLLVAR, 0);

相关问题