我正在学习如何使用OpenISO8583.Net代码。我已经从原来的类派生了一个新的ISO8583类。我的新类中的一个区别是消息类型字段将是数字,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 -00-00-00,我认为这是正确的。BCD值和位图为全零的消息类型的前2个字节。
现在的问题是当我测试解压它的时候。使用:
fdISO8583 = new FDISO8583();
int pos = fdISO8583.Unpack(testMsg, 0);得到的消息类型的值为零。
我需要帮助理解这是我定义类的方式上的问题,还是ISO8583代码中的错误。
发布于 2012-05-05 19:19:53
你确实发现了一个bug。我将其记录为问题13并已将其修复。我在nuget上发布了0.5.2版本,并将bin文件上传到了googlecode项目。
https://stackoverflow.com/questions/10455637
复制相似问题