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 回答