1

openiso8583 ライブラリを使用して ISO 8583 メッセージを作成しようとしています

フィールド番号 17 ( Date, capture) がなかったので、クラスを拡張しました。

Iso8583Finacle msg = new Iso8583Finacle();
msg.MessageType = Iso8583.MsgType._0120_AUTH_ADV;

msg[Iso8583Finacle.Bit._003_PROC_CODE] = "310000";
msg[Iso8583Finacle.Bit._004_TRAN_AMOUNT] = "0000000000000000";
msg[Iso8583Finacle.Bit._011_SYS_TRACE_AUDIT_NUM] = "380767397537";

msg[Iso8583Finacle.Bit._012_LOCAL_TRAN_DATETIME] = "20131003075957";
msg[Iso8583Finacle.Bit._017_CAPTURE_DATE] = "20131003";

ただし、エラーをスローしています。

UnknownFieldException は処理されませんでした
フィールド 17 は不明です

メッセージクラスを適切に拡張する方法を誰か教えてもらえますか?

4

2 に答える 2

1

クラスを拡張するときは、CreateField メソッドをオーバーライドして、正しい形式のフィールドを返す必要があります。メッセージを拡張するためのwikiページを見てください

https://code.google.com/p/openiso8583net/wiki/ExtendingIso8583

于 2013-10-28T08:23:47.743 に答える
1

問題の根本は、DE017 は MMDD 形式で長さが 4 であると想定されていることです。YYYYDDMM 形式の日付をフィールドに指定すると、大きすぎて、切り捨てようとしても編集チェックに合格しない可能性があります。 month = 20 は無効であるため、実行できませんでした。

于 2014-09-26T00:05:31.403 に答える