簡體   English   中英

LLLLVAR 不適用於 j8583 庫使用

[英]LLLLVAR not working on j8583 library usage

我正在使用 j8583 庫(v1.17.0)實現 iso 消息以與銀行集成,在文檔中說可以使用 IsoType.LLLLVAR 格式創建字段:

在此處輸入圖像描述

我在字段 60 上的 xml 配置是 0800 消息的下一個

<?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 文件:

this.messageFactory = ConfigParser.createFromClasspathConfig("j8583-config.xml");

我創建了一個 0800 消息 iso

final IsoMessage req = this.messageFactory.newMessage(NET_INFO_REQUEST.getValue());

我的調試字符串打印:

600005000008002220010000C00010990000081221183100000111237323330303336353933303VERSION_SOFT

在不打印長度的消息中,我知道它應該在字段 60 上具有以下格式:

0012VERSION_SOFT

但只打印:

VERSION_SOFT

有趣的是,如果使用 IsoType.LLLVAR 在字段 60 上工作正常:

600005000008002220010000C00010990000081221494800000111237323330303336353933303012VERSION_SOFT

看:

012VERSION_SOFT

任何想法?

謝謝!

我發現了錯誤,iso 消息工作正常,我的錯誤是 debugString 方法,我調用了 IsoMessage.debugString 的 IsoMessageFieldUtils 實例

問候!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM