如何向 iso 8583 消息添加使用 jpos 的标头。 - ISO 8583 - jpos

2024-01-10

我是使用 iso 8583 进行开发的新手,我需要在 iso 消息之前添加标头。但我以这种方式实现它们,并且不会将其添加到消息标头中。我究竟做错了什么?我希望你可以帮助我。

    GenericPackager packager = new GenericPackager("tes1.xml");


            // Create a new ISOMsg object using the custom packager
            ISOMsg isoMsg = new ISOMsg();
            isoMsg.setPackager(packager);
                isoMsg.setHeader("ISO008000099".getBytes());
            isoMsg.setMTI("0800");
            isoMsg.set(7, "1011110140");
            isoMsg.set(11, "047478");
            isoMsg.set(70, "401");
            
            
            ASCIIChannel c = new ASCIIChannel("localhost", 6000, packager);
            c.connect();
            c.send(isoMsg);
            System.out.println("ISO message : " + new String(isoMsg.pack()));
            //System.out.println(new String(isoMsg.pack()));

显示要发送的 iso 消息时,未观察到标头

0000  30 38 30 30 38 32 32 30  30 30 30 30 30 30 30 30  0800822000000000
0010  30 30 30 30 30 34 30 30  30 30 30 30 30 30 30 30  0000040000000000
0020  30 30 30 30 31 30 31 31  31 31 30 31 34 30 30 34  0000101111014004
0030  37 34 37 38 34 30 31                              7478401

已发送消息:0800822000000000000004000000000000001011110140047478401

消息应发送如下:ISO0080000990800822000000000000004000000000000001011110140047478401

我正在使用以下配置:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE isopackager SYSTEM "genericpackager3.dtd">

<!-- ISO 8583:1987 (ASCII) field descriptions for GenericPackager -->

<isopackager>

  <header length="12" value =""></header>
<isofield
      id="0"
      length="4"
      name="MESSAGE TYPE INDICATOR"
      class="org.jpos.iso.IFA_NUMERIC"/>
  <isofield
      id="1"
      length="16"
      name="BIT MAP"
      class="org.jpos.iso.IFA_BITMAP"/>
  <isofield
      id="2"
      length="21"
      name="PAN - 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"/>

消息中发送的字段:

<isomsg direction="outgoing">
  <!-- org.jpos.iso.packager.GenericPackager[tes1.xml] -->
  <header>49534F303038303030303939</header>
  <field id="0" value="0800"/>
  <field id="7" value="1011110140"/>
  <field id="11" value="047478"/>
  <field id="70" value="401"/>
</isomsg>

虽然您可以通过调用来覆盖通道使用的标头ISOMsg.setHeader,通道仍然需要一个占位符标头,以便知道在接收时需要读取多少字节。

就您而言,问题是 ASCIIChannel 不是您交换的正确通道。 ASCIIChannel 不支持标头。根据我看到的内容,也许您需要使用 BASE24TCPChannel 并在其上设置标头。

使用 jPOS 时,如果您使用 Q2(您可以独立运行或从您喜欢的应用程序(SpringBoot、Quarkus、JBoss/Wildfly 等)运行),事情会变得更加容易。

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

如何向 iso 8583 消息添加使用 jpos 的标头。 - ISO 8583 - jpos 的相关文章

随机推荐

  • 在与 ActiveSync 同步的同时读取 PDA 目录的内容

    我有一个项目 需要复制 PDA 中找到的文件 就我而言 如果这有什么区别的话 它是 MC3000 我安装了 ActiveSync 它为我创建了同步文件夹 效果很好 但是 我希望不仅能够在其 MyDocument 文件夹中读取 PDA 的内容
  • 如何处理选项卡更改时的 CSS 动画

    我正在开发一个小轮盘游戏 例如 https csgofast com https csgofast com 我的问题是 当我在实际选项卡中时 与变换和过渡一起使用的轮盘动画效果很好 问题是 当我移动到另一个选项卡或最小化时 在轮盘赌开始之前
  • 在 Web Api 控制器中将 JSON 反序列化为字典

    我有这样的 JSON 字符串 1 1 3 5 2 2 5 6 3 5 6 8 我想将其发送到 Web Api 控制器而不使用 ajax 请求进行更改 ajax type POST url Api Serialize Dict data JS
  • 设置HBase、hadoop、hive通过hive访问Hbase的正确方法是什么?

    我在配置和安装 hbase hadoop hive 时遇到问题 到目前为止我在 ubuntu 14 04 3 LTS 的虚拟机上做了什么 像这样安装了jdk和版本jdk1 8 0 60 https askubuntu com questio
  • 根据 textContent 中的索引突出显示文本

    Bounty 正如 jsPerf 所展示的 测试时最新发布版本的 Firefox Chrome 和 Internet Explorer 中最快的解决方案将获得奖励or创建此类解决方案最有用的答案由我自行决定 哇哈哈 I ll be most
  • 卸载后执行命令

    我需要卸载才能运行命令after它删除了已安装的文件 UninstallRun 没有用 据我所知 它在文件被删除之前运行 我有点需要一个 卸载后 标志 关于我如何实现上述目标有什么建议吗 See 卸载事件函数 http www jrsoft
  • 包含过期项的哈希表

    我想实施一个HashTable 或者也许是一个HashSet or Dictionary 其中有独特的成员 一段时间后就会过期 例如 Items expire automatically after 10 seconds Expiratio
  • Celery:WorkerLostError:工作人员过早退出:信号 9 (SIGKILL)

    我在 Django 应用程序 在 Elastic Beanstalk 上 中使用 Celery 和 RabbitMQ 来管理后台任务 并使用 Supervisor 对其进行守护进程 现在的问题是 我定义的周期任务之一失败 在正常工作一周后
  • 7u45 webstart 中出现新的死锁错误?

    java 7u45 的乐趣仍在继续 这次是 webstart 内部陷入僵局 这种情况在启动大型应用程序 约 100 个 jar 时非常一致地 每次 发生 还有其他人遇到过这个问题或知道任何解决方法吗 除了恢复到 1 7 0 40 之外 Th
  • Jekyll 自动目录

    我已经建立了一个基于 Jekyll 代码的网站阿帕奇构建者 http buildr apache org Buildr 网站根据标题中的标题自动为每个页面生成一个目录 textile格式文件 例如 您使用纺织品编写一个页面 标记出标题 如下
  • zftool 的行为不符合预期

    我在 Linux 中有一个托管服务 我正在尝试在 zend Framework 2 上开发一个应用程序 我想使用 zftool 但无论我运行哪个 zftool 命令 我总是得到主页的 HTML 我将非常感谢任何帮助 以下是重现步骤 1 我安
  • 以角度 2 实现旋转器

    我尝试在我的应用程序中使用微调器 因为有大量数据需要时间来加载 但这是问题所在 我已将此链接作为参考 Angular2 的预引导加载屏幕 https stackoverflow com questions 35243443 pre boot
  • C++ 中的引用计数究竟意味着什么?

    到底什么是引用计数 特别是对于 C 来说它是什么 如果我们不处理这些问题 我们可能会面临哪些问题 所有语言都需要引用计数吗 到底什么是引用计数 特别是对于 C 来说它是什么 简单来说 引用计数就是对某个对象的引用进行计数 通常 C 采用以下
  • 如何将 vim 选项的值复制到寄存器

    在 vim 中你可以设置选项 set 例如 设置咒语 启用拼写控制 和 设置拼写文件 home custom spell txt 设置自定义拼写文件的位置 您可以使用 echo 打印选项的值 例如 回声 拼写文件 现在我想将选项拼写文件的值
  • Ubuntu下Visual Studio Code显示错误

    我的 Visual Studio Code 遇到了好几天的问题 无法启动它 事实上 窗口几乎全黑 这是我从终端启动它时的控制台输出 bash impossible de r gler le groupe de processus du te
  • 如何构建具有未知列数的 WPF 数据网格

    我需要从 txt 中获取的字符串数组集合构建并显示 WPF 数据网格 问题是我不知道先验的列数 即单个数组中的项目数 所以我在我的xaml中定义
  • MySQL 上 NOT IN 的替代方案

    我有一个疑问 SELECT DISTINCT phoneNum FROM Transaction Register WHERE phoneNum NOT IN SELECT phoneNum FROM Subscription LIMIT
  • 如何使用 EF4 Fluent API 将删除级联到链接表中?

    我在现有 MSSQL 2008 R2 数据库中有两个表 它们通过链接表关联 这两个表是 计划 和 提示 链接表是 PlanTipLinks 计划可以有许多提示 并且提示可以与多个计划关联 即 这是多对多的关系 在应用程序中 我只关心 Pla
  • 如何在wpf中使富文本框自动调整大小?

    如何让RichTextBox自动调整大小 我希望我的富文本框能够适合我分配给它的任何文本 而无需滚动条 谢谢 Set the HorizontalAlignment and VerticalAlignment除了Stretch 这是默认值
  • 如何向 iso 8583 消息添加使用 jpos 的标头。 - ISO 8583 - jpos

    我是使用 iso 8583 进行开发的新手 我需要在 iso 消息之前添加标头 但我以这种方式实现它们 并且不会将其添加到消息标头中 我究竟做错了什么 我希望你可以帮助我 GenericPackager packager new Gener