java 如何禁用BASE24TCPChannel通道iso消息中的最后一个字符

t98cgbkg  于 2023-06-20  发布在  Java
关注(0)|答案(1)|浏览(86)

早上好,我是jpos的新手,我遇到的问题是我正在发送一条带有头部的消息,但是在发送它的时候,它总是在03的末尾添加一个十六进制的字符。
如何发送的代码
如何发送的代码

// Create Packager based on XML that contain DE type
   GenericPackager packager = new GenericPackager("PackISO.xml");

   // Crea una instancia de la clase BASE24TCPChannel
   BASE24TCPChannel c = new BASE24TCPChannel("localhost", 5000,packager);
   c.setHeader("ISO008000099");
       
   // Create ISO Message
   ISOMsg isoMsg = new ISOMsg();        
   isoMsg.setPackager(packager);
 
   isoMsg.setMTI("0800");
   isoMsg.set(7, "1088110140");
   isoMsg.set(11, "087478");
   isoMsg.set(70, "999");

   c.connect();
   c.send(isoMsg);

这就是send发送的内容,我用netcatnc-l -p5000捕获它|xxd

00000000: 0044 4953 4f30 3038 3030 3030 3939 3038  .DISO00800009908
00000010: 3030 3832 3230 3030 3030 3030 3030 3030  0082200000000000
00000020: 3030 3034 3030 3030 3030 3030 3030 3030  0004000000000000
00000030: 3030 3130 3838 3131 3031 3430 3038 3734  0010881101400874
00000040: 3738 3939 3903                           78999.

“03”总是到达每个消息的末尾,我如何禁用它,使它不被发送?00000040: 3738 3939 39**03** 78999**.**

gcmastyq

gcmastyq1#

如果你不想要那个预告片,你需要用另一个频道。
PostChannelNACChannel基本上做同样的事情,但不发送预告片。

...
   PostChannel c = new PostChannel("localhost", 5000,packager);
   c.setHeader("ISO008000099".getBytes(ISOUtil.ENCODING));
   ...

您还必须将头设置为字节,因为字符串setHeader重载需要十六进制表示。

相关问题