使用 jpos api 打包 SUBFIELDS

2024-04-16

我正在尝试编写一个主要的包和解压包ISO消息 using 初级职位框架.

问题是我的消息包含一些子字段,例如field 48,并且我一直将其视为空值。

下面是我的配置+主程序

Packager

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE isopackager PUBLIC
        "-//jPOS/jPOS Generic Packager DTD 1.0//EN"
        "http://jpos.org/dtd/generic-packager-1.0.dtd">
<!-- ISO 8583:1993 (ASCII) field descriptions for GenericPackager -->

<isopackager>

    <isofield id="0" length="4" name="Message Type Indicator"
        class="org.jpos.iso.IFA_NUMERIC" />

    <isofield id="1" length="64" name="Bitmap" class="org.jpos.iso.IFA_BITMAP" />

    <isofield id="2" length="19" name="PRIMARY ACCOUNT NUMBER"
        class="org.jpos.iso.IFA_LLNUM" />

    <isofield id="3" length="6" name="PROCESSING CODE" class="org.jpos.iso.IFA_NUMERIC" />

    <isofield id="4" length="12" name="AMOUNT, TRANSACTION" class="org.jpos.iso.IFA_NUMERIC" />

    <isofield id="7" length="10" name="DATE AND TIME, TRANSMISSION"
        class="org.jpos.iso.IFA_NUMERIC" />

    <isofield id="11" length="6" name="Systems trace audit number"
        class="org.jpos.iso.IFA_NUMERIC" />

    <isofield id="12" length="6" name="Time, Local transaction"
        class="org.jpos.iso.IFA_NUMERIC" />

    <isofield id="13" length="4" name="Date, Local transaction"
        class="org.jpos.iso.IFA_NUMERIC" />

    <isofield id="14" length="4" name="Date, Expiration" class="org.jpos.iso.IFA_NUMERIC" />

    <isofield id="18" length="4" name="Merchant type" class="org.jpos.iso.IFA_NUMERIC" />

    <isofield id="22" length="4" name="Point of service entry mode code"
        class="org.jpos.iso.IFA_NUMERIC" />

    <isofield id="25" length="2" name="POS Condition code" class="org.jpos.iso.IFA_NUMERIC" ></isofield>

    <isofield id="41" length="8"
        name="Card acceptor terminal identification" class="org.jpos.iso.IF_CHAR" ></isofield>

    <isofield id="42" length="15" name="Card acceptor identification code"
        class="org.jpos.iso.IF_CHAR" />

    <isofieldpackager id="48"
        length="255"
        name="Additional private data"
        class="org.jpos.iso.IFA_LLLNUM"
        emitBitmap="false"
        packager="org.jpos.iso.packager.GenericSubFieldPackager">
      <isofield   
          id="1"
          length="8"
          name="PSP Identifier"
          class="org.jpos.iso.IFA_NUMERIC"/>
      <isofield
          id="2"
          length="8"
          name="Ecommerce Acquirer Identifier"
          class="org.jpos.iso.IFA_NUMERIC"/>
    </isofieldpackager>

    <isofield id="49" length="3" name="Currency Code, Transaction"
        class="org.jpos.iso.IFA_NUMERIC" />

</isopackager>

main.java

      public static void main(String[] args) throws ISOException {
                IServicesUtils service = new ServiceUtilsImpl();
                String filePackager = (String) service
                        .getValuesFromPropertiesFile(new String[] { IConstants.DEMO_PACKAGER_LOCATION },
                                "parameters.properties")
                        .get(IConstants.DEMO_PACKAGER_LOCATION);
                GenericPackager packager = new GenericPackager(filePackager);

                ISOMsg isoMsg = new ISOMsg();
                isoMsg.setPackager(packager);
                isoMsg.setMTI("1100");
                isoMsg.set("2", "1111110000000010");
                isoMsg.set("3", "000000");
                isoMsg.set("4", StringUtils.leftPad("116.0", 12, "0"));
                isoMsg.set("7", DateUtils.getTransmissionDate(new Date()));
                isoMsg.set("11", service.generateSTAN());
                isoMsg.set("12", DateUtils.getField12Iso("1207"));
                isoMsg.set("13", DateUtils.getField13Iso("1105"));
                isoMsg.set("14", "0808");
                isoMsg.set("18", "3306");
                isoMsg.set("22", "....");
                isoMsg.set("25", "59");
                isoMsg.set("41", "59002300");
                isoMsg.set("42", "111110000012345");
                isoMsg.set("48", "111110000077658");
                isoMsg.set("48.1", "00221166");
                isoMsg.set("49", "804");

                logISOMsg(isoMsg);

                byte[] data = isoMsg.pack();

                logger.info("RESULT : " + new String(data));
            }


      private static void logISOMsg(ISOMsg msg) {
            System.out.println("----ISO MESSAGE-----");
            try {
                System.out.println("  MTI : " + msg.getMTI());
                for (int i = 1; i <= msg.getMaxField(); i++) {
                    if (msg.hasField(i)) {
                        logger.info("    Field-" + i + " : " + msg.getString(i));
                    }
                }
            } catch (ISOException e) {
                e.printStackTrace();
            } finally {
                System.out.println("--------------------");
            }
        }

这个 main 打印除了字段 48 之外的所有字段,它返回null价值。不知道为什么,是包装层面有问题,还是其他什么问题。


字段 48 的外部打包程序必须是二进制类,即 IFA_LLLBINARY 或 IFB_LLLBINARY,具体取决于您的规格。您可能需要添加firstField属性,如果没有字段 0,则将其设置为 1。作为替代方案,您可以将字段 0 定义为IF_NOP(无操作)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 jpos api 打包 SUBFIELDS 的相关文章

  • 如何指定嵌套属性的默认值?

    当我没有指定值时 以下代码会抛出 NPEacme security roles ConstructorBinding ConfigurationProperties acme public class AcmeProperties priv
  • 如果 Java 中的字符串中有多个空格,如何将它们压缩为单词之间的单个空格?

    如果字符串的单词之间有多个空格 The cat sat on the mat 如何将其变成一个单独的空间 The cat sat on the mat 我尝试了这个但没有成功 myText myText trim replace 用正则表达
  • 桌面应用程序的对象持久化策略

    我正在开发一个基于 Java 的桌面应用程序 我需要保留一些从应用程序对象模型生成的数据 最好保存到文件中 还需要保护持久文件 以便其他人无法从数据中获取对象模型详细信息 执行这些操作的最佳策略是什么 我的印象是这些要求对于桌面应用程序来说
  • 如何编写允许特殊字符 DOT 的正则表达式?

    如何编写允许用户名中包含字符 DOT 的正则表达式 例如 R Robert X A Pauline 用反斜杠转义点
  • 桌面 webkit 相当于 Android 的 addJavascriptInterface()?

    在研究 Android UI 可能性时 我发现了一种名为 addJavascriptInterface 的方法的文档 该方法允许您将 Android Java 对象上的方法公开给 UI 的 WebView 组件中的 Javascript 这
  • XMLEncoder 和 XStream 的相对优势是什么?

    假设我想用XML存储许多小的配置对象 并且我不太关心格式 这XML解码器 http java sun com j2se 1 5 0 docs api java beans XMLDecoder htmlJDK 中内置的类可以工作 据我所知
  • Java Web 启动和安全性

    刚刚有人向我指出 我的博客中的 Java Web Start 应用程序 例如我的按键绑定 http tips4java wordpress com 2008 10 10 key bindings 条目 由于以下安全错误而不再起作用 经过一些
  • 如何获取 Android 中其他应用程序的屏幕时间?

    我想达到在 Android 系统上运行的每个应用程序的屏幕时间 例如 Facebook 工作时间为 3 小时 但屏幕时间为 1 2 小时 我怎么才能得到它 android app usage 使用情况统计 public final clas
  • 如何更改Spring-WS的“SOAP-ENV”默认前缀

    我使用 Spring WS 创建了一个 Web 服务 为了保持与旧系统的兼容性 我需要将命名空间前缀从SOAP ENV to soap 我知道SOAP ENV and soap只是命名空间前缀 只要它们引用正确的命名空间 http sche
  • Java正则表达式以数字和固定长度开头的字符串

    我制作了一个正则表达式来检查 String 的长度 所有字符都是数字并以数字开头 例如 123 以下是我的表情 REGEX 123 d 9 但它无法检查字符串的长度 它仅验证那些长度为 9 并以 123 开头的字符串 但如果我传递字符串 1
  • 使用 Scanner 类输入

    我从过去的经历中了解到的是nextInt or nextDouble 将继续搜索 直到在同一行或下一行中找到整数或双精度数 这并不重要 同时通过扫描器类读取字符串作为输入next 考虑空格之前的那些字符串并将光标保持在同一行 其中nextL
  • 如何通过 Selenium 通过 XPath 访问 WebElement?

    我需要访问该网站上搜索结果的链接 并将它们放入WebElement 但我无法按班级或任何其他方式找到它们 使用时xpath MyWebDriver findElement By xpath div class inner results f
  • 如何使用 Jericho HTML 解析器获取特定标签之间的文本和其他标签?

    我有一个包含特定标签的 HTML 文件 例如 table cellspacing 0 结束标签是 table 现在我想获取这些标签之间的所有内容 我正在 Java 中使用 Jericho HTML 解析器来解析 HTML 是否可以获取 Je
  • Java 应用程序中 PKIX 路径构建失败

    将应用程序从 Windows 2000 迁移到 Windows 2008 R2 Server 后 我花了将近一周的时间才让我的应用程序正常运行 步骤 安装Java JDK 1 7 0 25 设置系统环境变量JAVA HOME to C Pr
  • 使用外部属性文件执行 jar

    我有一个带有主类的 jar 可以像这样执行 java jar test jar 罐子里有类似的东西 public static void main String args throws IOException InputStream is
  • TextField“更改”事件仅在模糊时触发

    通常 Change 事件将在 TextField 失去焦点 模糊 后触发 但我需要它在字段值发生变化时立即触发 而不需要失去对该字段的关注 KeyListener 不会删除它 因为该值可能来自条形码扫描仪等 有什么办法可以做到这一点吗 提前
  • GSON 解析空日期字段时抛出异常

    我正在使用 GSON 反序列化一些 JSON JSON 是 employee id 297 surname Maynard givenname Ron lastlogin 员工对象有一个日期字段lastlogin public class
  • Java 中客户端/服务器传输的压缩字符串

    我使用专有的客户端 服务器消息格式来限制我可以通过网络发送的内容 我无法发送序列化对象 我必须将消息中的数据存储为字符串 我发送的数据是大的逗号分隔值 我想在将数据作为字符串打包到消息中之前对其进行压缩 我尝试使用 Deflater Inf
  • 创建 JSON 对象并将其转换为 Java 中的 String

    我需要通过 http post 发送一个相当长的 JSON 标头 在Python中是这样的 self body header client self client name clientRevision self client versio
  • java.library.path 中没有字体管理器

    以下代码在我的桌面上运行得很好 BufferedImage image new BufferedImage width height BufferedImage TYPE INT RGB Graphics g image getGraphi

随机推荐

  • 如何向变量添加条件 - GAMS

    在我尝试构建的模型中 我有一个变量定义为 Variables x i j number of motors produced in month i to be delivered in month j 在该变量中 j 必须始终等于或大于 i
  • 无法读取更新的 AnyLogic DB 值

    我目前正在使用 AnyLogic 数据库来存储已用停车容量 我编写了一个函数来读取数据库并为每个存储的集装箱或拖车分配一个 id 然后 使用 UPDATE 查询来更新数组 数据库读取是使用数据库查询工具指定的 selectfrom 执行的
  • 如何将类添加到开槽元素?

    In my my dropdown模板中的组件 我有这个
  • Rails 中的奇怪错误 - 缺少助手

    我不确定 但这可能与崩溃的计算机有关 重新启动后 崩溃后 我收到丢失助手错误 其中助手名称错误 切换分支对结果没有影响 错误是 缺少帮助程序文件 helpers users xxxx sites xxxx app helpers accou
  • 如何在关闭 rowselect 的情况下为 DBGrid 中的整行着色?

    RowSelect 破坏了 OnCellClick 的功能 因此我需要关闭 RowSelect 那么如何通过突出显示当前行的所有单元格来模拟行选择的外观呢 这对我有用 dgRowSelect False and dgMultiSelect
  • 带有 Joomla 的 Intranet 网站?

    我的公司想在局域网上建立一个小型的内联网门户 我们最多大约有 100 个用户 我正在考虑在带有 XAMPP 的 Windows 服务器环境上使用 Joomla 为了安全起见 XAMPP 为大约 50 到 100 个用户提供服务是否有效 它有
  • 从视频获取MediaStreamTrack(音频)

    我想在从画布录制的同时从视频元素录制音频 我有 var stream canvas captureStream 29 现在我将视频的audioTrack 添加到流中 var vStream video captureStream strea
  • Flask 函数 url_for 不适用于 Bluehost 上的子域部署

    我在 Bluehost 根目录下的子目录中部署了一个非常简单的 Flask 应用程序 名为 app 希望 example com 指向主页 example com app 指向我的 Flask 应用程序 实际上 当脚本 index py 如
  • 使用 POST 从 iOS 将数组传递给 PHP

    因此 我浏览了无数类似的问题 但没有一个回答我正在寻找的问题或以完整的方式回答它 所以希望你们都能帮助我 我需要使用 POST 或任何可以正常工作的方式将 RestaurantID 数组从 iOS 传递到 PHP 文件 我知道 ASIHTT
  • android studio 无法构建

    失败 构建失败并出现异常 出了什么问题 任务 app preDexDebug 执行失败 java io IOException Cannot run program C Users SETIAWAN AppData Local Androi
  • Flask(数据库)数据库迁移中枚举类型的 psycopg2.ProgrammingError

    在 Flask 应用程序的 postgres 数据库上运行迁移时 我在 Enum 类型上收到以下 psycopg2 错误 INFO alembic runtime migration Context impl PostgresqlImpl
  • 如何在 Java 项目的 VS Code 中悬停时显示 Javadoc?

    在我的 Mac OS 10 14 中 我有 VS Code 1 47 3 昨天安装了 Java Extension Pack 0 9 1 我能够运行 Java 项目 Maven 但我在悬停功能上看不到任何 javadoc 例如 当鼠标指针悬
  • session和cookie是同一个东西吗?

    既然session和cookie都是用来存储临时数据的 那么它们有什么区别呢 至于可能的知识 如果您将变量设置为 cookies 那么您的用户将不必在每次进入您的社区时登录 Cookie 将保留在用户浏览器中 直到被用户删除 但会话被广泛使
  • CSS 中的正向前瞻

    我知道 Perl 正则表达式中积极前瞻的概念 即q u 匹配后跟 u 的 q 但不使 u 成为匹配的一部分 我正在寻找类似的CSS 我想匹配div 后面跟着一个兄弟姐妹div specialClass div div div class s
  • MethodExpression 未在 HtmlCommandLink 中触发

    我有一个动态生成的数据表 像这样 DataTable dataTable new DataTable dataTable setValue relatorioVOList dataTable setVar rVO Column checkB
  • 使用 Visual Studio 调试时看不到 boost::可选内容

    如果我尝试直接查看变量 我会看到一个 符号 如果我创建一个手表调用is initialized函数 我收到以下错误 CXX0033 错误 OMF 类型信息错误 我没有找到太多与使用 Google Boost 相关的错误信息 还有其他人经历过
  • 一旦用户切换相机隐私设置,防止 AVCaptureSession 崩溃

    一直使用AVCaptureSession来记录条形码 效果很好 我还遵循了有关堆栈溢出的建议 如何正确释放AVCaptureSession https stackoverflow com questions 3741121 how to p
  • 如何在 create-react-app 中以开发模式启用 Service Worker?

    我知道我们可以在生产模式下测试我们的 Service Worker 但是重新构建和部署的过程非常烦人 有什么方法可以在开发模式下启用服务工作者吗 改变这个 window addEventListener load gt const swUr
  • 拖动滑块时更新标签

    我正在使用一个Slider在我的 javaFX 项目中 我有一个Label当我移动滑块时它会更新 我想要Label在我拖动时进行更新Slider不仅是当阻力被放下时 这是我的代码 betSlider valueChangingPropert
  • 使用 jpos api 打包 SUBFIELDS

    我正在尝试编写一个主要的包和解压包ISO消息 using 初级职位框架 问题是我的消息包含一些子字段 例如field 48 并且我一直将其视为空值 下面是我的配置 主程序 Packager