我尝试使用openiso8583 library
创建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场未知
有谁能告诉我如何正确扩展邮件类?
答案 0 :(得分:1)
扩展类时,需要覆盖CreateField方法以返回格式正确的字段。查看用于扩展消息的Wiki页面
https://code.google.com/p/openiso8583net/wiki/ExtendingIso8583
答案 1 :(得分:1)
问题的根源是DE017应该以MMDD格式的长度为4,你提供YYYYDDMM格式的日期到一个太大的字段,也可能不会通过一些编辑检查,即使它试图截断它,它不能做月= 20,因为它是无效的。