2

OpenISO8583.Net コードの使用方法を学習しています。元のクラスから新しい ISO8583 クラスを派生させました。私の新しいクラスの違いの 1 つは、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 コードのバグなのかを理解する助けが必要です。

4

1 に答える 1

1

あなたは確かにバグを発見しました。問題 13 として記録し、修正しました。nuget にリリース バージョン 0.5.2 があり、bin ファイルを googlecode プロジェクトにアップロードしました。

于 2012-05-05T11:19:52.650 に答える