Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 美国运通ISO8583_C#_Iso8583_Ebcdic - Fatal编程技术网

C# 美国运通ISO8583

C# 美国运通ISO8583,c#,iso8583,ebcdic,C#,Iso8583,Ebcdic,有人为美国运通实施过iso8583信息传递吗?我有一个端口和ip,但当我用套接字发送回显消息(1804)时,它不会回答任何问题。。。编码是EBCDIC。有人举个例子吗?代码是C语言的# Console.WriteLine(“发送消息回显…”); ManageConnection.ManageSocket _manage=新的ManageConnection.ManageSocket(IpAmex,PortAmex); TupleList _request=new TupleList(); _Ad

有人为美国运通实施过iso8583信息传递吗?我有一个端口和ip,但当我用套接字发送回显消息(1804)时,它不会回答任何问题。。。编码是EBCDIC。有人举个例子吗?代码是C语言的#

Console.WriteLine(“发送消息回显…”);
ManageConnection.ManageSocket _manage=新的ManageConnection.ManageSocket(IpAmex,PortAmex);
TupleList _request=new TupleList();
_Add(Encoding.GetEncoding(500),“1804”);
_添加(Encoding.UTF8,“203001800000000”);
_Add(Encoding.GetEncoding(500),“000000”);
_Add(Encoding.GetEncoding(500),“112233”);
_添加(Encoding.GetEncoding(500),“17091412051083187000”);
var\u response=\u manage.SendMessageSocket(\u请求);
返回响应;
公共字符串SendMessageSocket(元组列表消息){
string _return=string.Empty;
尝试
{
字节[]字节=新字节[65000];
IPAddress=IPAddress.Parse(IP);
IPEndPoint remoteEP=新IPEndPoint(ipAddress,端口);
套接字发送方=新套接字(AddressFamily.InterNetwork、SocketType.Stream、ProtocolType.Tcp);
发送方连接(remoteEP);
Console.WriteLine(“Enviando mensaje…”);
var bytesMessage=GetCompleteMessage(_messages);
//此函数的作用是:GetCompleteMessage=byte[]ByteMessage={241,248,240,244,32,48,1128,0,0,0,0,240,240,240,240,241,241‌​, 241, 242, 242, 243, 243‌​, 241, 247, 240, 249, 241, 244, 241, 242, 240, 245, 241, 240, 248, 243, 241,‌​248, 247, 240, 240 };
int bytesent=sender.Send(bytesMessage);
Console.WriteLine(“世界语应答器”);
int bytesRec=sender.Receive(字节);//此处不接收任何内容
int len=Array.IndexOf(bytes,byte.MinValue);
var responseString=Encoding.UTF8.GetString(bytes,byte.MinValue,len);
发送器关闭(SocketShutdown.Both);
sender.Close();
归还所有的财产;
}
捕获(例外情况除外)
{
投掷;
}
}
信息是针对ISO8583全球信用授权指南(GCAG),

我不懂C,但我用JAVA实现了美国运通。我想您不应该在EBCDIC中对位图进行编码,而应该只unhex其内容。作为位图,我的意思是“
203001800000000


我希望这会有所帮助。

1。与美国运通使用的ISO8583类似的规范。

他们使用了几种定制的ISO 8583方言作为示例:

  • 全球信贷授权指南(GCAG
  • 全球电子数据采集(GEDC)终端信息规范
  • 多接口处理(PIP)终端接口
看看你的MTI1804,我猜是GCAG,是的,信息通常是EBCDIC编码的

从您的请求中不清楚确切的消息正文。请添加网络消息的十六进制表示形式。它可能会显示消息体编码的潜在问题

我们支持有关ISO8583方言和金融数据的在线服务。 这是你的电话号码。 您可以检查传出消息结构和EBCDIC编码

2。关于美国运通东道主。

我同意有许多TCP/IP套接字服务可以与美国运通转发和交换消息数据,或者自己处理消息,但事实上,美国运通在大多数情况下使用全球Web服务(GWS)IP支付网关,这是带有特定HTTP头的HTTPS连接

由于HTTP/HTTPS数据通过GWS传输,即使是EBCDIC编码的消息也被处理为ASCII十六进制字符串

TCP/IP套接字连接可能有额外的消息头、长度字节、起始和结束数据包。确保TCP/IP主机的连接要求

作为美国运通ISO 8583消息处理与测试卡授权的一个工作示例,您可以尝试通过表单直接发布请求消息或启动HTTPS主机模拟器服务

3。示例作为奖金

这是通过美国运通GCAG主机模拟器处理的主位图纠正的1804消息。以YAML表示的消息结构

---
# Cheef's parser.
# Copyright (C) 2008-2017 Alexander Shevelev. https://iso8583.info/
# lib   : "/lib/AMEX/GCAG/" - Global Credit Authorization Guide
# tool  : "host"
# stat  : 28 nodes, 14 lookup tables, 92.86% passed (13/14)

host: # AMEX GCAG host simulator
- rq:#"F1F8F0F42030018000000000F0F0F0F0F0F0F1F1F2F2F3F3F1F7F0F9F1F4..F0F0" # AMEX GCAG message
  - MTI: "1804" # Message Type ID. // network management request
  - DE000: "2030018000000000" # Primary bitmap // 3.11.12.24.25.
  - BM0:#"F0F0F0F0F0F0F1F1F2F2F3F3F1F7F0F9F1F4F1F2F0F5F1F0F8F3F1F8F7F0F0" # Fields at Primary Bitmap
    - DE003:#"000000" # PC // System Audit Control/Echo Message
      - S01: "00" # Transaction Code. // Goods and service
      - S02: "00" # Account, from. // unspecified
      - S03: "00" # Account, to. // unspecified
    - DE011: "112233" # STAN.
    - DE012:#"170914120510" # Date and time, local transaction
      - date: "170914" # Date, local transaction. // 2017.09.14
      - time: "120510" # Time, local transaction. // 12:05:10
    - DE024: "831" # Function code. // echo test.
    - DE025: "8700" # Message reason code (MRC).
- rs:#"F1F8F1F42030010002000000F0F0F0F0F0F0F1F1F2F2F3F3F1F7F0F9F1F4..F0F0" # AMEX GCAG message
  - MTI: "1814" # Message Type ID. // network management request response
  - DE000: "2030010002000000" # Primary bitmap // 3.11.12.24.39.
  - BM0:#"F0F0F0F0F0F0F1F1F2F2F3F3F1F7F0F9F1F4F1F2F0F5F1F0F8F3F1F0F0F0" # Fields at Primary Bitmap
    - DE003:#"000000" # PC // System Audit Control/Echo Message
      - S01: "00" # Transaction Code. // Goods and service
      - S02: "00" # Account, from. // unspecified
      - S03: "00" # Account, to. // unspecified
    - DE011: "112233" # STAN.
    - DE012:#"170914120510" # Date and time, local transaction
      - date: "170914" # Date, local transaction. // 2017.09.14
      - time: "120510" # Time, local transaction. // 12:05:10
    - DE024: "831" # Function code. // echo test.
    - DE039: "000" # Action Code // approved.

消息需要包含描述消息内容长度的两个字节。邮件中缺少上述两个字节。

美国运通代表什么?美国运通-ISO8583是的,我的朋友,我已经做了,但不起作用。。。。请给我看一个java示例,甚至是1804消息(我希望在发送之前看到从字符串到字节的转换)例如,我以字节形式发送此消息:byte[]\u message={241248240244,32,48,1128,0,0,0,0240240141‌​,241,242,242,243,243‌​, 241,247,240,249,241,244,241,242,240,245,241,240,248,243,241,‌​248,247,240,240};您好,谢谢您的评论。我已经使用了上面提到的解析器,并且按照您在示例中描述的方式发送了消息,但没有结果。模拟器正确地解释了这些消息,但当我发送消息时,美国运通没有回答任何问题。这是套接字发送的字节数组。字节[]——消息={241248240244,32,48,1128,0,0,02402402402242243243,2412424024924124422422402452412482432418247240240};谢谢朋友,你说得对,这条消息是针对ISO8583全球信贷授权指南(GCAG),请更新你的原始问题,并添加十六进制表示的示例消息。关于请求和回复格式,请与主机连接的支持人员联系。
---
# Cheef's parser.
# Copyright (C) 2008-2017 Alexander Shevelev. https://iso8583.info/
# lib   : "/lib/AMEX/GCAG/" - Global Credit Authorization Guide
# tool  : "host"
# stat  : 28 nodes, 14 lookup tables, 92.86% passed (13/14)

host: # AMEX GCAG host simulator
- rq:#"F1F8F0F42030018000000000F0F0F0F0F0F0F1F1F2F2F3F3F1F7F0F9F1F4..F0F0" # AMEX GCAG message
  - MTI: "1804" # Message Type ID. // network management request
  - DE000: "2030018000000000" # Primary bitmap // 3.11.12.24.25.
  - BM0:#"F0F0F0F0F0F0F1F1F2F2F3F3F1F7F0F9F1F4F1F2F0F5F1F0F8F3F1F8F7F0F0" # Fields at Primary Bitmap
    - DE003:#"000000" # PC // System Audit Control/Echo Message
      - S01: "00" # Transaction Code. // Goods and service
      - S02: "00" # Account, from. // unspecified
      - S03: "00" # Account, to. // unspecified
    - DE011: "112233" # STAN.
    - DE012:#"170914120510" # Date and time, local transaction
      - date: "170914" # Date, local transaction. // 2017.09.14
      - time: "120510" # Time, local transaction. // 12:05:10
    - DE024: "831" # Function code. // echo test.
    - DE025: "8700" # Message reason code (MRC).
- rs:#"F1F8F1F42030010002000000F0F0F0F0F0F0F1F1F2F2F3F3F1F7F0F9F1F4..F0F0" # AMEX GCAG message
  - MTI: "1814" # Message Type ID. // network management request response
  - DE000: "2030010002000000" # Primary bitmap // 3.11.12.24.39.
  - BM0:#"F0F0F0F0F0F0F1F1F2F2F3F3F1F7F0F9F1F4F1F2F0F5F1F0F8F3F1F0F0F0" # Fields at Primary Bitmap
    - DE003:#"000000" # PC // System Audit Control/Echo Message
      - S01: "00" # Transaction Code. // Goods and service
      - S02: "00" # Account, from. // unspecified
      - S03: "00" # Account, to. // unspecified
    - DE011: "112233" # STAN.
    - DE012:#"170914120510" # Date and time, local transaction
      - date: "170914" # Date, local transaction. // 2017.09.14
      - time: "120510" # Time, local transaction. // 12:05:10
    - DE024: "831" # Function code. // echo test.
    - DE039: "000" # Action Code // approved.