首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不使用j8583库的LLLLVAR

不使用j8583库的LLLLVAR
EN

Stack Overflow用户
提问于 2022-08-12 21:30:23
回答 1查看 78关注 0票数 0

为了与银行集成,我正在用j8583库(v1.17.0)实现iso消息,文档中说有可能创建IsoType.LLLLVAR格式的字段:

字段60上的xml配置是0800消息的下一个

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE j8583-config PUBLIC "-//J8583//DTD CONFIG 1.0//EN" "j8583.dtd">
<j8583-config>

    <!-- These are the ISO headers to be prepended to the message types specified -->
    <header type="0100">6000050000</header>
    <header type="0110" ref="0100"></header>
    <header type="0200" ref="0100"></header>
    <header type="0210" ref="0100"></header>
    <header type="0220" ref="0100"></header>
    <header type="0230" ref="0100"></header>
    <header type="0500" ref="0100"></header>
    <header type="0510" ref="0100"></header>
    <header type="0400" ref="0100"></header>
    <header type="0410" ref="0100"></header>
    <header type="0800" ref="0100"></header>
    <header type="0810" ref="0100"></header>

    <template type="0800">
            <field num="3" type="NUMERIC" length="6">990000</field>
            <field num="7" type="DATE10">0812215323</field>
            <field num="11" type="NUMERIC" length="6">000001</field>
            <field num="24" type="NUMERIC" length="3">112</field>
            <field num="41" type="ALPHA" length="8">37323330</field>
            <field num="42" type="ALPHA" length="15">303336353933303</field>
            <field num="60" type="LLLLVAR" >VERSION_SOFT</field>
    </template>
    <parse type="0800">
        <field num="3" type="NUMERIC" length="6" />
        <field num="7" type="DATE10" />
        <field num="11" type="NUMERIC" length="6" />
        <field num="24" type="NUMERIC" length="3" />
        <field num="41" type="ALPHA" length="8" />
        <field num="42" type="ALPHA" length="15" />
        <field num="60" type="LLLLVAR" length="999" />
    </parse>
</j8583-config>

我的工厂从资源中加载xml文件:

代码语言:javascript
复制
this.messageFactory = ConfigParser.createFromClasspathConfig("j8583-config.xml");

我创建了一条0800消息

代码语言:javascript
复制
final IsoMessage req = this.messageFactory.newMessage(NET_INFO_REQUEST.getValue());

我的debugString打印:

代码语言:javascript
复制
600005000008002220010000C00010990000081221183100000111237323330303336353933303VERSION_SOFT

在没有打印长度的消息中,我理解它应该在字段60上具有以下格式:

代码语言:javascript
复制
0012VERSION_SOFT

但只有印刷品:

代码语言:javascript
复制
VERSION_SOFT

一个有趣的问题是,如果使用IsoType.LLLVAR在字段60上工作得很好:

代码语言:javascript
复制
600005000008002220010000C00010990000081221494800000111237323330303336353933303012VERSION_SOFT

请参见:

代码语言:javascript
复制
012VERSION_SOFT

有什么想法吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-17 17:04:08

我发现了错误,iso消息运行良好,我的错误是debugString方法,我调用了IsoMessage.debugString的一个IsoMessageFieldUtils实例

你好!!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73339960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档