C# 4.0 将OpenISO8583.Net转换为不同格式

C# 4.0 将OpenISO8583.Net转换为不同格式,c#-4.0,iso8583,openiso8583.net,C# 4.0,Iso8583,Openiso8583.net,我正在尝试向金融机构实施ISO8589信息。但是,它们有一个我调用的Web服务,然后我将ISO8589有效负载加载到WCF服务的适当字段中 我以这种方式创建了一条ISO8589消息: var isoMessage = new OpenIso8583.Net.Iso8583(); isoMessage.MessageType = Iso8583.MsgType._0100_AUTH_REQ; isoMessage.TransactionAmount = (long) 123.00; isoMess

我正在尝试向金融机构实施ISO8589信息。但是,它们有一个我调用的Web服务,然后我将ISO8589有效负载加载到WCF服务的适当字段中

我以这种方式创建了一条ISO8589消息:

var isoMessage = new OpenIso8583.Net.Iso8583();
isoMessage.MessageType = Iso8583.MsgType._0100_AUTH_REQ;
isoMessage.TransactionAmount = (long) 123.00;
isoMessage[Iso8583.Bit._002_PAN] = "4111111111111111";
// More after this.
我似乎不知道如何将IsomeMessage转换为ASCII人类可读格式,以便将其传递给web服务

有人知道如何使用这个库来实现这一点吗?还是我用错了这个图书馆

谢谢

更新:

我已经想出了如何做到这一点:

var asciiFormatter = new AsciiFormatter();
var asciiValue = asciiFormatter.GetString(isoMessage.ToMsg());
但是,现在我尝试使用OpenIso8583.Net将IsomeMessage作为十六进制字符串轻松传递,如下所示:

var isoMessage = new OpenIso8583Net.Iso8583();
isoMessage.MessageType = Iso8583.MsgType._0800_NWRK_MNG_REQ;
isoMessage[Iso8583.Bit._003_PROC_CODE] = "000000";
isoMessage[Iso8583.Bit._011_SYS_TRACE_AUDIT_NUM] = "000001";
isoMessage[Iso8583.Bit._041_CARD_ACCEPTOR_TERMINAL_ID] = "29110001";
我知道这很棘手,因为有些字段是BCD、AlpahNumeric、Numeric等。但是,使用OpenIso8583.Net应该很容易(或者我认为)做到这一点?我想得到的结果是:

Msg   Bitmap (3, 11, 41)      ProcCode Audit    Terminal ID
----- ----------------------- -------- -------- -----------------------
08 00 20 20 00 00 00 80 00 00 00 00 00 00 00 01 32 39 31 31 30 30 30 31

任何帮助都将不胜感激

基本上,您需要扩展使用自己的
模板初始化的
Iso8583
,您可以在
模板
中为每个字段设置格式,以便不使用BCD和二进制打包。查看一下
Iso8583
的源代码,了解它是如何工作的。

基本上,您需要扩展
Iso8583
,在
Template
中使用自己的
Template
初始化它,您可以为每个字段设置格式化程序,以便不使用BCD和二进制打包。查看
Iso8583
的源代码,了解其工作原理。

您可以从public repo下载,也可以从public repo下载