public MessageResponse(Trx.Messaging.Message responseMessage) { if (responseMessage.Fields.Contains(39)) { this._ResponseCode = responseMessage.Fields[39].Value.ToString(); } if (responseMessage.Fields.Contains(11)) { this._SystemsTraceAuditNumber = responseMessage.Fields[11].Value.ToString(); } }
private static Iso8583Message SendResponseMessage(ListenerPeer listenerPeer, Iso8583Message message) { bool needReversal = false; int maxNumberOfEntries = 3; Message response = null; int serverTimeOut = 60000; PeerRequest request = null; try { if (listenerPeer.IsConnected) { request = new PeerRequest(listenerPeer, message); request.Send(); request.WaitResponse(serverTimeOut); if (request.Expired) { //logger.Log("Connection timeout."); needReversal = true; return(SetResponseMessage(message, "68")); //Response received too late } if (request != null) { response = request.ResponseMessage; //logger.Log("Message Recieved From FEP"); } // //request.MarkAsExpired(); //uncomment to test timeout return(response as Iso8583Message); } else { //logger.Log("Could not connect to Sink Node"); //clientPeer.Close(); listenerPeer.Close(); Console.WriteLine("Client Peer is not Connected"); return(SetResponseMessage(message, "91")); } //clientPeer.Close(); } catch (Exception e) { //logger.Log("An error occured " + e.Message); return(SetResponseMessage(message, "06")); } }
public ChangePINResponse(Trx.Messaging.Message responseMessage) : base(responseMessage) { if (responseMessage.Fields.Contains(127)) { Trx.Messaging.Message field127 = responseMessage.Fields[127].Value as Trx.Messaging.Message; if (field127 != null && field127.Fields.Contains(25)) { string field127_25 = field127.Fields[25].Value.ToString(); IccData iccData = XMLSerializer.DeserializeXML <IccData>(field127_25); if (iccData != null && iccData.IccResponse != null) { _issuerScript = iccData.IccResponse.IssuerScriptTemplate2; _issuerAuthenticationData = iccData.IccResponse.IssuerAuthenticationData; _iccData = field127_25; } } } }
public KeyExchangeResponse(Trx.Messaging.Message responseMessage) : base(responseMessage) { if (responseMessage.Fields.Contains(53)) { string hexValue = string.Empty; ThalesSim.Core.Utility.ByteArrayToHexString(responseMessage.Fields[53].Value as byte[], ref hexValue); int keyLenght = 2; SessionKey = hexValue.Substring(0, keyLenght * 16); CheckDigit = hexValue.Substring(keyLenght * 16, 6); } if (responseMessage.Fields.Contains(125)) { string hexValue = responseMessage.Fields[125].Value.ToString(); int keyLenght = 2; SessionKey = hexValue.Substring(0, keyLenght * 16); CheckDigit = hexValue.Substring(keyLenght * 16, 6); } }
public ChangePIN(CardAcceptor cardAcceptor, Account acct, CardDetails theCard, string transactionID, string sequencenr) : base(600, transactionID) { if (!string.IsNullOrWhiteSpace(theCard.Track2)) { this.Fields.Add(FieldNos.F35_Track2, theCard.Track2); } this.Fields.Add(FieldNos.F2_PAN, theCard.PAN); this.Fields.Add(FieldNos.F3_ProcCode, string.Format("{0}{1}{2}", (int)TransactionType.ChangePIN, AccountType.Default, AccountType.Default)); this.Fields.Add(FieldNos.F14_CardExpiryDate, string.Format("{0:yyMM}", theCard.ExpiryDate)); //this.Fields.Add(FieldNos.F22_PosEntryMode, "051"); this.Fields.Add(FieldNos.F22_PosEntryMode, "011"); this.Fields.Add(FieldNos.F25_PosConditionCode, "00"); this.Fields.Add(FieldNos.F26_PinCaptureCode, "12"); this.Fields.Add(FieldNos.F32_AcquiringInstitutionIDCode, "639138"); this.Fields.Add(FieldNos.F41_CardAcceptorTerminalCode, "20700000"); //cardAcceptor.TerminalID); this.Fields.Add(FieldNos.F42_CardAcceptorIDCode, "20700000");//cardAcceptor.ID); this.Fields.Add(FieldNos.F43_CardAcceptorNameLocation, string.Format("{0}{1}{2}{3}", cardAcceptor.Location, cardAcceptor.City, cardAcceptor.State, cardAcceptor.Country)); this.Fields.Add(FieldNos.F52_PinData, theCard.PIN); this.Fields.Add(FieldNos.F53_SecurityInfo, theCard.NewPINBlock); this.Fields.Add(FieldNos.F102_Account1, acct.Number); //new PANE.ERRORLOG.Error().LogInfo("acct.Number =" + acct.Number); // this.Fields.Add(123, "100040165110119"); // this.Fields.Add(123, "511101512344201"); if (string.IsNullOrWhiteSpace(theCard.IccData)) { this.Fields.Add(123, "110001610114021"); } else { string Field123 = Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["Field123"]); if (string.IsNullOrEmpty(Field123)) { this.Fields.Add(123, "511101512344201"); } else { this.Fields.Add(123, Field123); } } this.Fields.Add(FieldNos.F23_CardSequenceNo, sequencenr); //new PANE.ERRORLOG.Error().LogInfo("sequencenr =" + sequencenr); this.Fields.Add(FieldNos.F56_MessageReasonCode, "0000"); // populate the ICC Data Trx.Messaging.Message field127 = new Trx.Messaging.Message(); if (PinConfigurationManager.FepConfig.IccDataIsInXmlFormat) { //IccRequest iccData = (IccRequest)XMLSerializer.Deserialize<IccRequest>(theCard.IccData); if (!string.IsNullOrWhiteSpace(theCard.IccData)) { string iccDataXml = string.Format("<IccData>{0}</IccData>", theCard.IccData); field127.Fields.Add(25, iccDataXml); this.Fields.Add(127, field127); } } else { IccRequest iccData = new IccRequest(theCard.IccData); Trx.Messaging.Message field127_25 = new Trx.Messaging.Message(); field127_25.Fields.Add(2, iccData.AmountAuthorized); field127_25.Fields.Add(3, iccData.AmountOther); field127_25.Fields.Add(5, iccData.ApplicationInterchangeProfile); field127_25.Fields.Add(6, iccData.ApplicationTransactionCounter); field127_25.Fields.Add(11, "0"); // ChipConditionCode field127_25.Fields.Add(12, iccData.Cryptogram); field127_25.Fields.Add(13, iccData.CryptogramInformationData); field127_25.Fields.Add(15, iccData.CvmResults); field127_25.Fields.Add(18, iccData.IssuerApplicationData); field127_25.Fields.Add(21, iccData.TerminalCapabilities); field127_25.Fields.Add(22, iccData.TerminalCountryCode); field127_25.Fields.Add(23, iccData.TerminalType); field127_25.Fields.Add(24, iccData.TerminalVerificationResult); field127_25.Fields.Add(26, iccData.TransactionCurrencyCode); field127_25.Fields.Add(27, iccData.TransactionDate); field127_25.Fields.Add(29, iccData.TransactionType); field127_25.Fields.Add(30, iccData.UnpredictableNumber); field127.Fields.Add(25, field127_25); this.Fields.Add(127, field127); } //this.Fields.Add(FieldNos.F32_AcquiringInstitutionIDCode, "639138"); //this.Fields.Add(FieldNos.F33_ForwardingInstitutionIDCode, "111111"); //this.Fields.Add(FieldNos.F100_ReceivingInstitutionID, "628051043"); }