创建 ISO 8583 消息

本文关键字:消息 8583 ISO 创建 | 更新日期: 2023-09-27 18:36:44

我尝试使用 openiso8583 库创建 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";

但是,它抛出了一个错误。

未知字段异常未处理
字段 17 未知

谁能告诉我如何正确扩展消息类?

创建 ISO 8583 消息

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

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

问题的根源是 DE017 应该在 MMDD 格式中具有 4 的长度,您正在向一个太大的字段提供 YYYYDDMM 格式的日期,也可能通过一些编辑检查,因为即使它试图截断它也无法做 month = 20,因为这是无效的。