Jpos位图字段类型 - 设置为十六进制

时间:2017-02-28 07:48:31

标签: bitmap iso8583 jpos

我需要字段127.25.1 >> 127.25.30。它们包含tlv数据。 字段127.25.1是位图,它们需要以下格式: b8(Hex16)表示二进制必须转换为十六进制。此字段表示127.25.2 >> 127.25.30的存在/不存在。 127.25.1的IsoFieldPackager为IFA_BITMAP len 16。 我可以毫无问题地设置所有其他字段。

要查看输出消息及其数据,我用它来打印:

ISOComponent c = isoMessage.getComponent("127.25");    
Map m = c.getChildren();
Iterator it = m.entrySet().iterator();
while (it.hasNext()) {
   if(pair.getValue() instanceof ISOBitMap){
      ISOBitMap b = (ISOBitMap)pair.getValue();
      System.out.println(b.getFieldNumber() + "=" + b.getValue() );
   }
   if(pair.getValue() instanceof ISOField){
      ISOField b = (ISOField)pair.getValue();
      System.out.println(b.getFieldNumber() + "=" + b.getValue());
   }

从这里,我可以看到127.25.1中的位图打印为:

-1={2, 5, 6, 7, 12, 13, 18, 22, 24, 26, 27, 28, 30}

并且所有这些字段都具有正确的值,并且是我设置的字段。

我的问题是在远程系统上解析时失败了。鉴于127.25.1 "b8 (Hex16)"所需的格式,我是否使用长度为16的IFA_BITMAP的正确数据类型?

1 个答案:

答案 0 :(得分:1)

127.25封隔器类型不正确,设置为:

new IFA_LLLLCHAR(8000, "ICC DATA")

127.25.1设置为十六进制:

new IFA_BITMAP(8, "BITMAP")