我正在学习如何使用 OpenISO8583.Net 代码。我从原来的类派生了一个新的 ISO8583 类。我的新课程的不同之处之一是消息类型字段将是 [Numeric, BCD];所以我把它写成类构造函数的一部分(我确实有一个自定义的 DefaultTemplate 声明为类的一部分):
DefaultTemplate.MsgTypeFormatter = Formatters.Bcd;
我创建了一条消息类型为 0100 (MsgType._0100_AUTH_REQ) 的新消息。不分配任何其他位。
FDISO8583 fdISO8583 = new FDISO8583();
fdISO8583.MessageType = FDISO8583.MsgType._0100_AUTH_REQ;
byte[] testMsg = fdISO8583.ToMsg();
我的最终结果字节数组是: 01-00-00-00-00-00-00-00-00-00 我认为是正确的。具有 BCD 值和位图的消息类型的前 2 个字节全为零。
现在的问题是当我测试拆包时。使用:
fdISO8583 = new FDISO8583();
int pos = fdISO8583.Unpack(testMsg, 0);
结果消息类型的值为零。
我需要帮助了解这是否是我定义类的方式或 ISO8583 代码中的错误的问题。