创建ISO 8583消息

时间:2013-10-23 12:22:29

标签: c# iso8583 openiso8583.net

我尝试使用openiso8583 library

创建ISO 8583消息

它没有第17个字段(Datecapture)所以我扩展了课程。

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场未知

有谁能告诉我如何正确扩展邮件类?

2 个答案:

答案 0 :(得分:1)

扩展类时,需要覆盖CreateField方法以返回格式正确的字段。查看用于扩展消息的Wiki页面

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

答案 1 :(得分:1)

问题的根源是DE017应该以MMDD格式的长度为4,你提供YYYYDDMM格式的日期到一个太大的字段,也可能不会通过一些编辑检查,即使它试图截断它,它不能做月= 20,因为它是无效的。