我正在学习如何使用OpenISO8583.Net代码。我从原版中派生出了一个新的ISO8583类。我的新课程的一个不同之处是Message Type字段将是[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代码中的错误的方式上的问题。
答案 0 :(得分:1)
你确实发现了一个错误。我将其记录为问题13并修复了它。我在nuget上发布了0.5.2版,并将bin文件上传到了googlecode项目。