public ISOMessage SendMessageSync(ISOMessage isoMessage) { if (_client == null || !_client.Connected) { Connect(); } if (_client.Connected) { Send(isoMessage); sendDone.WaitOne(); Receive(_client); receiveDone.WaitOne(); byte[] rData = Encoding.ASCII.GetBytes(response); if (_client.Connected) { Disconnect(); } if (response.Length == 0) { throw new IOException("Remote server did not respond!"); } return(ISOMessageBuilder.Unpacker().SetMessage(response).Build()); } else { throw new IOException("Client not connected!"); } }
public void TestUnpackMessage() { ISOMessage iso = ISOMessageBuilder.Unpacker() .SetMessage(message) .Build(); Assert.AreEqual(message, iso.ToString()); Assert.AreEqual(iso.GetStringField(FIELDS.F11_STAN, true), "123456"); Assert.AreEqual(iso.GetStringField(FIELDS.F22_EntryMode, true), "123F"); Assert.AreEqual(iso.GetStringField(FIELDS.F24_NII_FunctionCode, true), "123F"); Assert.AreEqual(iso.GetStringField(FIELDS.F25_POS_ConditionCode, true), "12"); Assert.AreEqual(iso.GetStringField(FIELDS.F41_CA_TerminalID, true), "12345678"); Assert.AreEqual(iso.GetStringField(FIELDS.F42_CA_ID, true), "123456789012345"); }
public void TestPackMessage() { ISOMessage iso = ISOMessageBuilder.Packer(VERSION.V1987) .NetworkManagement() .MTI(MESSAGE_FUNCTION.Request, MESSAGE_ORIGIN.Acquirer) .ProcessCode("930000") .SetField(FIELDS.F11_STAN, "123456") .SetField(FIELDS.F22_EntryMode, "123F") .SetField(FIELDS.F24_NII_FunctionCode, "123F") .SetField(FIELDS.F25_POS_ConditionCode, "12") .SetField(FIELDS.F41_CA_TerminalID, "12345678") .SetField(FIELDS.F42_CA_ID, "123456789012345") .GenerateMac(data => { return(StringUtil.HexStringToByteArray("AB6A53FC655F1487")); }) .SetHeader("1234567890") .Build(); Assert.AreEqual(message, iso.ToString()); }