首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将formats 8583.Net转换成不同的格式

将formats 8583.Net转换成不同的格式
EN

Stack Overflow用户
提问于 2012-10-17 04:12:49
回答 1查看 2.1K关注 0票数 1

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

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

代码语言:javascript
复制
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.

我似乎不知道如何将isoMessage转换成ASCII人类可读的格式,这样我就可以将它传递给web服务。

有人知道如何利用这个图书馆吗?还是我用错了这个图书馆?

谢谢。

更新:

我已经想出了怎么做:

代码语言:javascript
复制
var asciiFormatter = new AsciiFormatter();
var asciiValue = asciiFormatter.GetString(isoMessage.ToMsg());

但是,现在我尝试使用isoMessage作为十六进制字符串轻松地传递整个内容,如下所示:

代码语言:javascript
复制
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、数字等等,但是,使用OpenIso8583.Net应该非常容易(或者我认为)。我想得到的结果是:

代码语言:javascript
复制
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

任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-05 09:18:40

本质上,您需要扩展Iso8583,在Template中使用您自己的Template初始化它,您可以为每个字段设置格式化程序,这样就不会使用BCD和二进制打包。看看Iso8583的源代码,看看它是如何工作的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12927004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档