Exemplo n.º 1
0
        public void LogTransaction(Iso8583Message message)
        {
            TransactionLog transactionLog = new TransactionLog();

            transactionLog.CardPan = message.Fields[2].Value.ToString();
            if (message.IsRequest())
            {
                transactionLog.ResponseCode = "";
            }
            else
            {
                transactionLog.ResponseCode = message.Fields[39].Value.ToString();
            }
            transactionLog.MTI = message.MessageTypeIdentifier.ToString();

            transactionLog.Amount   = Convert.ToDecimal(message.Fields[4].Value);
            transactionLog.Account1 = message.Fields[102].Value.ToString();
            if (message.Fields[103] != null)
            {
                transactionLog.Account2 = message.Fields[103].Value.ToString();
            }
            transactionLog.STAN            = message.Fields[11].Value.ToString();
            transactionLog.TransactionDate = DateTime.Now;
            //transactionLog.OriginalDataElement = message.Fields[90].Value.ToString();
            //transactionLog.ResponseDescription = message.Fields[39].Value.ToString();

            //EntityLogic<TransactionLog> LogLogic = new EntityLogic<TransactionLog>();
            //LogLogic.Insert(transactionLog);
            //LogLogic.Commit();
            var LogLogic = unitOfwork.EntityRepository <TransactionLog>();

            LogLogic.Save(transactionLog);
        }
Exemplo n.º 2
0
        public void LogTransaction(Iso8583Message message, string type, string narration)
        {
            TransactionLog transactionLog = new TransactionLog();
            double         fee            = ExtractFee(message);

            transactionLog.CardPan = message.Fields[2].Value.ToString();
            if (message.IsRequest())
            {
                transactionLog.ResponseCode = "";
            }
            else
            {
                transactionLog.ResponseCode = message.Fields[39].Value.ToString();
            }
            transactionLog.Amount   = (float)(ExtractAmount(message) + fee);
            transactionLog.Account1 = message.Fields[102].Value.ToString();
            if (message.Fields[103] != null)
            {
                transactionLog.Account2 = message.Fields[103].Value.ToString();
            }

            transactionLog.STAN            = message.Fields[11].Value.ToString();
            transactionLog.TransactionDate = DateTime.Now;
            transactionLog.MTI             = message.MessageTypeIdentifier.ToString();
            transactionLog.TypeOfEntry     = type;
            transactionLog.Narration       = narration;
            //transactionLog.ResponseDescription = message.Fields[39].Value.ToString();

            var _context = new ApplicationDbContext();

            _context.TransactionLogs.Add(transactionLog);
            _context.SaveChanges();
        }
        public void IsRequest()
        {
            Iso8583Message message = new Iso8583Message();

            message.MessageTypeIdentifier = 1200;
            Assert.IsTrue(message.IsRequest());

            message.MessageTypeIdentifier = 1210;
            Assert.IsFalse(message.IsRequest());

            message.MessageTypeIdentifier = 1420;
            Assert.IsTrue(message.IsRequest());

            message.MessageTypeIdentifier = 1430;
            Assert.IsFalse(message.IsRequest());
        }
Exemplo n.º 4
0
        private static Iso8583Message SetResponseMessage(Iso8583Message message, string responseCode)
        {
            if (message.IsRequest())
            {
                message.SetResponseMessageTypeIdentifier();
            }

            message.Fields.Add(39, responseCode);
            return(message);
        }
Exemplo n.º 5
0
        private static Iso8583Message SetResponseMessage(Iso8583Message message, string responseCode)
        {
            Console.WriteLine("Setting Response Message ...");
            if (message.IsRequest())
            {
                message.SetResponseMessageTypeIdentifier();
            }

            message.Fields.Add(39, responseCode);
            return(message);
        }
        public bool Process(IMessageSource source, Message message)
        {
            try
            {
                string         postBridgeNodeIp = (source as ServerPeer).Channel.Name;
                Iso8583Message theMsg           = message as Iso8583Message;
                if (TheBridge.PostBridgeNodePeer != null && TheBridge.PostBridgeNodePeer.Channel != null &&
                    postBridgeNodeIp == TheBridge.PostBridgeNodePeer.Channel.Name && !theMsg.IsRequest())
                {
                    if (_theBridge.PosRequestPeer.IsConnected)
                    {
                        _theBridge.PosRequestPeer.Send(message);
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                bool isSignOnMessage = false;
                new PANE.ERRORLOG.Error().LogInfo("Request message: " + theMsg.ToString());
                PostBridge.Server.Messages.Message requestMessage = MessageParser.Read(theMsg, out isSignOnMessage);
                if (requestMessage.Validate())
                {
                    Iso8583Message msg = requestMessage.Execute();
                    new PANE.ERRORLOG.Error().LogInfo("About to send Response message: " + msg.ToString());
                    source.Send(msg);

                    //If is first sign on message, send Keyexchange.
                    if (!PinConfigurationManager.FepConfig.KeyExchangeOnConnect && lastKeyExchangeDate.Date != DateTime.Today && isSignOnMessage)
                    {
                        new BasicServerPeerManager2().DoKeyExchange(null);
                        lastKeyExchangeDate = DateTime.Now;
                    }
                }

                return(true);
            }
            catch (Exception e)
            {
                new PANE.ERRORLOG.Error().LogToFile(e);
                Logger.Error(e);
                return(false);
            }
        }