誰でもAmexのメッセージングiso8583を実装しましたか?私はポートとIPを持っていますが、ソケットでエコーメッセージ(1804)を送信すると何も応答しません。エンコーディングはEBCDICです。誰かが例を持っていますか?コードは、C#AmexのISO8583
Console.WriteLine("Send Message Echo...");
ManageConnection.ManageSocket _manage = new ManageConnection.ManageSocket(IpAmex, PortAmex);
TupleList<Encoding, string> _request = new TupleList<Encoding, string>();
_request.Add(Encoding.GetEncoding(500), "1804");
_request.Add(Encoding.UTF8, "2030018000000000");
_request.Add(Encoding.GetEncoding(500), "000000");
_request.Add(Encoding.GetEncoding(500), "112233");
_request.Add(Encoding.GetEncoding(500), "1709141205108318700");
var _response = _manage.SendMessageSocket(_request);
return _response;
public string SendMessageSocket(TupleList<Encoding, string> _messages) {
string _return = String.Empty;
try
{
byte[] bytes = new byte[65000];
IPAddress ipAddress = IPAddress.Parse(IP);
IPEndPoint remoteEP = new IPEndPoint(ipAddress, Port);
Socket sender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
sender.Connect(remoteEP);
Console.WriteLine("Enviando mensaje....");
var bytesMessage = GetCompleteMessage(_messages);
// This function GetCompleteMessage= byte[] bytesMessage = { 241, 248, 240, 244, 32, 48, 1, 128, 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 bytesSent = sender.Send(bytesMessage);
Console.WriteLine("Esperando respuesta....");
int bytesRec = sender.Receive(bytes); //Here don't receive nothing
int len = Array.IndexOf(bytes, byte.MinValue);
var responseString = Encoding.UTF8.GetString(bytes, byte.MinValue, len);
sender.Shutdown(SocketShutdown.Both);
sender.Close();
return xmlResponseString;
}
catch (Exception ex)
{
throw;
}
}
にメッセージは、私はC#のを理解していないISO8583グローバル・クレジット認証ガイド(GCAG)、
「アメックス」とは何ですか? –
アメリカンエキスプレス - ISO8583 https://en.wikipedia.org/wiki/ISO_8583 –