public ResponseEZP execSaleEZP(RequestEZP creq)
        {
            ResponseEZP res = null;

            try
            {
                if (creq != null)
                {
                    res = this.saleEZP(creq.mobileNo, creq.transactionRefNo, creq.tillNo, creq.amount, creq.Version);
                }
            }
            catch (Exception e)
            {
                log.Error(e);
            }

            return(res);
        }
        public ResponseEZP saleEZP(string mobileNo, string transactionRefNo, string tillNo, string amount, string version)
        {
            ResponseEZP cres     = new ResponseEZP();
            string      acquirer = "EZP";

            try
            {
                bool log_Debug = Convert.ToBoolean(System.Configuration.ConfigurationManager.AppSettings["log_Debug"]);

                log.Info(string.Format("Request received from {0}", this.GetClientIP()));

                //VALIDATE THE REQUEST
                if (log_Debug)
                {
                    log.Info(string.Format("REQ.SALE Channel:{0}, mobileNo:{1}, transactionRefNo:{2}, tillNo:{3}, amount{4}. Version:{5}", acquirer, mobileNo, transactionRefNo, tillNo, amount, version));
                }

                string errMsg = null;
                bool   valid  = Utils.validSaleRequest(mobileNo, transactionRefNo, tillNo, amount, version, ref errMsg);
                if (!valid)
                {
                    throw new Exception(errMsg);
                }


                //trigger easypay webservice using this friend of ours ;) =======================================================
                HTTPHelper.HTTPHelper httpHelper = new HTTPHelper.HTTPHelper();
                httpHelper.ContentType = "application/json";
                httpHelper.Url         = this.GetRequestUrl_EZP(mobileNo, transactionRefNo, tillNo, amount);
                string resp = httpHelper.HttpGet();
                //string resp = "{\"paymentConfirmationResponse\":{\"tillNumber\":\"0766944664\",\"mobileNumber\":\"254722777151\",\"amount\":\"1250\",\"timeStamp\":\"20190205\",\"transactionRefNo\":\"FT588I002637\",\"servedBy\":\"NGENO\",\"additionalInfo\":null,\"status\":\"000\"}}";
                //string resp = "{\"paymentConfirmationResponse\":{\"resultCode\":\"505\"}}";

                //// ealier
                //ResponseEZP_tmp tmp = JsonConvert.DeserializeObject<ResponseEZP_tmp>(resp);
                ////if (tmp.Capacity > 0)
                //if (tmp.paymentConfirmationResponse)
                //{
                //    //cres.additionalInfo = tmp.data[0].additionalInfo;
                //    //cres.amount = tmp.data[0].amount;
                //    //cres.mobileNumber = tmp.data[0].mobileNumber;
                //    //cres.servedBy = tmp.data[0].servedBy;
                //    //cres.source = tmp.data[0].source;
                //    //cres.status = tmp.data[0].status;
                //    //cres.tillNumber = tmp.data[0].tillNumber;
                //    //cres.timeStamp = tmp.data[0].timeStamp;
                //    //cres.transactionRefNo = tmp.data[0].transactionRefNo;
                //    cres = tmp.data;
                //}

                // today - 2019/05/01
                ResponseEZP_tmp tmp = JsonConvert.DeserializeObject <ResponseEZP_tmp>(resp);
                cres = tmp.paymentConfirmationResponse;

                //if (log_Debug)
                //    log.Debug(
                //        string.Format("RES.SALE Channel:{0}, amount:{1}, additionalInfo:{2}, mobileNumber:{3}, servedBy:{4}, source:{5}, status:{6}, tillNumber:{7}, timeStamp:{8}, transactionRefNo:{9}, Version:{10}",
                //        acquirer, cres.amount, cres.additionalInfo, cres.mobileNumber, cres.servedBy, cres.source, cres.status, cres.tillNumber, cres.timeStamp, cres.transactionRefNo, version));
            }
            catch (Exception e)
            {
                log.Error(e);
                cres.additionalInfo = e.Message;
            }

            return(cres);
        }