jPOS - F35 Track 2 - 如何使用包含 CHAR 定界符的 BCD 数据打包 1 字节二进制长度?
jPOS - F35 Track 2 - How to package 1 byte binary length, with BCD data including a CHAR delimeter?
所以我对 jPOS 越来越熟悉,无论如何都不是专家。
我的规范将 F35 Track 2 定义如下:
"Variable Length, 1 byte binary + 37 N, 4-bit BCD (unsigned packed); maximum 20 bytes"
所以我在我的 GenericPackager 中定义了那个字段:
<isofield
id="35"
length="37"
name="TRACK 2 DATA"
pad="true"
class="org.jpos.iso.IFB_LLHNUM"/>
据我了解,B是压缩二进制编码,LL是37的可变长度,H发送长度为1字节二进制,NUM是长度后面的数字数据。
对吗?
所以在我的项目中,我有以下代码:
ISOPackager packager = new GenericPackager("src/main/resources/vapsms_modified.xml");
BaseChannel channel = new VAPChannel(host, port, packager);
channel.connect();
ISOMsg msg = new ISOMsg();
msg.setPackager(packager);
msg.setMTI("0100");
...
msg.set("35","4123456891023456D49121010000020100000");
...
channel.send(msg);
我的获取流程收到F35如下:
Trk2#35=4123456891023457449121010000020100000
很明显,'D' 分隔符不是数字,而是 CHAR。
我查看了可用的 ISOFieldPackagers,但找不到任何 class 处理数字数据中的字符定界符。
我的规范中唯一提到的另一件事是
The Track 2 delimiter/separator character (^) must be encoded as X'D' (binary 1101).
如何发送该字段的字符定界符?
非常感谢任何帮助!
规范有误,插入符号在音轨 1 中用作分隔符,而不是在音轨 2 中。
D 是 track2 的分隔符,由 jPOS 使用您的 ISOFieldPackager 配置正确处理。
所以我对 jPOS 越来越熟悉,无论如何都不是专家。
我的规范将 F35 Track 2 定义如下:
"Variable Length, 1 byte binary + 37 N, 4-bit BCD (unsigned packed); maximum 20 bytes"
所以我在我的 GenericPackager 中定义了那个字段:
<isofield
id="35"
length="37"
name="TRACK 2 DATA"
pad="true"
class="org.jpos.iso.IFB_LLHNUM"/>
据我了解,B是压缩二进制编码,LL是37的可变长度,H发送长度为1字节二进制,NUM是长度后面的数字数据。
对吗?
所以在我的项目中,我有以下代码:
ISOPackager packager = new GenericPackager("src/main/resources/vapsms_modified.xml");
BaseChannel channel = new VAPChannel(host, port, packager);
channel.connect();
ISOMsg msg = new ISOMsg();
msg.setPackager(packager);
msg.setMTI("0100");
...
msg.set("35","4123456891023456D49121010000020100000");
...
channel.send(msg);
我的获取流程收到F35如下:
Trk2#35=4123456891023457449121010000020100000
很明显,'D' 分隔符不是数字,而是 CHAR。
我查看了可用的 ISOFieldPackagers,但找不到任何 class 处理数字数据中的字符定界符。
我的规范中唯一提到的另一件事是
The Track 2 delimiter/separator character (^) must be encoded as X'D' (binary 1101).
如何发送该字段的字符定界符?
非常感谢任何帮助!
规范有误,插入符号在音轨 1 中用作分隔符,而不是在音轨 2 中。 D 是 track2 的分隔符,由 jPOS 使用您的 ISOFieldPackager 配置正确处理。