public string FinpayUmeme(string CustRefence, string Area, string EXREF, string DRACCBRANCH,
                                          string DRACCOUNTNUMBER, string DRAMOUNT, string DRACCURR, string TXNDATE,
                                          string TXNTIME, string PhoneNumber, string CustRemarks, string Location)
        {
            string ReferenceNumberx = "";
            string Areax = "";
            string OutstandingBalx = "";
            string CustNamex = "";
            string PropertyRefx = "";
            string CustomerErrorx = "";
            string cust_ref_ = CustRefence;

            string OriginalReference = "";
            OriginalReference = CustRefence;

            string[] FCDBSetting = null;
            string FCDBSetings = "";

            string FCDBINTERNALGL = "";
            string FCDBTELLERCODE = "";
            string FCDBDESC = "";
            string FCDBTILLID = "";
            string FCDBLIMIT = "";
            string FCDBMAKERy = "";
            string FCDBCHECKERy = "";
            string Subhosty = "";
            string Msgtypey = "";
            string Procodey = "";
            string Commissiony = "";
            string Trantypey = "";
            string Terminaly = "";
            string Batchy = "";
            string MessageFlagy = "";
            string Workstationy = "";
            string PosConfirmedy = "";
            string PosReversedy = "";
            string EftSourcey = "";
            string IbTxny = "";
            string Flexuseridy = "";
            string UtilityAccountY = "";
            string UtilityAccBranchY = "";
            string UtilityAccCurrencyY = "";
            string MerchantTypeY = "";

            string sp_reference = "";

            bool isrepeat = false;
            bool istransacted = false;
            bool issuccess = false;

            string valuefield = "";

            var FailureDetailsinfo = new UMEMEFCDBResponse();
            var UmemeDetailsinfo = new UMEMEFCDBResponse();

            Datamanagement.PushUmemeCustReferenceDetails(CustRefence);

            //
            System.Net.ServicePointManager.CertificatePolicy = new MyPolicy();

            string UmemeVendorCode = ConfigurationManager.AppSettings["UMEMEVendorCode"];
            string UmemeVendorPassword = ConfigurationManager.AppSettings["UMEMEVendorPass"];

            UMEMEGateway.EPayment service = new UMEMEGateway.EPayment();
            UMEMEGateway.Customer x = new UMEMEGateway.Customer();
            var d = new object();
            x = service.ValidateCustomer(OriginalReference , UmemeVendorCode, UmemeVendorPassword);



            var res = service.ValidateCustomer(CustRefence, UmemeVendorCode, UmemeVendorPassword);
            string remark = "";
            string CustomerRef = res.CustomerRef;
            string CustomerName = res.CustomerName;
            string CustomerType = res.CustomerType;
            string Balance = Convert.ToString(res.Balance);
            string StatusCode = res.StatusCode;
            string StatusDescription = res.StatusDescription;
            Boolean auth = false;

            if (res.StatusDescription != "SUCCESS")
            {
                auth = false;
                remark = res.StatusDescription;
            }
            else
            {

                auth = true;
                remark = "Successful";
            }


            Datamanagement.UpdateUMEMEDetails(CustRefence, CustomerName, CustomerType, Balance, StatusCode, StatusDescription, remark, auth);
            //umemept.Close();
            //
            //Thread.Sleep(5000);

            string CustReferenceDetials = Datamanagement.getUmemeCustRefDetails(CustRefence);

            string[] Custrefdets = null;
            Custrefdets = CustReferenceDetials.Split('|');
            ReferenceNumberx = Custrefdets[0];
            //Areax = Custrefdets[1];
            OutstandingBalx = Custrefdets[1];
            CustNamex = Custrefdets[2];
            string statuscodex = Custrefdets[3];
            PropertyRefx = Custrefdets[4];
            //CustomerErrorx = Custrefdets[5];

            switch (PropertyRefx)
            {
                case "SUCCESS":
                    //Continue
                    break;
                default:
                    //Do Zilch

                    FailureDetailsinfo.EXRef = EXREF;
                    FailureDetailsinfo.CustReference = CustRefence;
                    FailureDetailsinfo.PaymentAmount = DRAMOUNT;
                    FailureDetailsinfo.FailureDetails = new List<UmemeFailureDetials>();
                    FailureDetailsinfo.FailureDetails.Add(new UmemeFailureDetials()
                                                              {
                                                                  Remark = CustomerErrorx,
                                                                  Responcecode = "05"
                                                              });
                    return "UNSUCCESSFUL";
                    break;
            }

            sp_reference = ReferenceNumberx + "-" + CustNamex;
            //Get FCDB details here

            FCDBSetings = Datamanagement.getFCDBSettings("UMEME");
            FCDBSetting = FCDBSetings.Split('|');

            FCDBINTERNALGL = FCDBSetting[0];
            FCDBTELLERCODE = FCDBSetting[1];
            FCDBDESC = FCDBSetting[2];
            FCDBTILLID = FCDBSetting[3];
            FCDBLIMIT = FCDBSetting[4];

            FCDBMAKERy = FCDBSetting[5];
            FCDBCHECKERy = FCDBSetting[6];
            Subhosty = FCDBSetting[7];
            Msgtypey = FCDBSetting[8];
            Procodey = FCDBSetting[9];
            Commissiony = FCDBSetting[10];
            Trantypey = FCDBSetting[11];
            Terminaly = FCDBSetting[12];
            Batchy = FCDBSetting[13];
            MessageFlagy = FCDBSetting[14];
            Workstationy = FCDBSetting[15];
            PosConfirmedy = FCDBSetting[16];
            PosReversedy = FCDBSetting[17];
            EftSourcey = FCDBSetting[18];
            IbTxny = FCDBSetting[19];
            Flexuseridy = FCDBSetting[20];
            UtilityAccountY = FCDBSetting[21];
            UtilityAccBranchY = FCDBSetting[22];
            UtilityAccCurrencyY = FCDBSetting[23];
            MerchantTypeY = FCDBSetting[24];

            istransacted = Datamanagement.isalreadyTransacted(CustRefence);

            switch (istransacted)
            {
                case true:
                    FailureDetailsinfo.EXRef = EXREF;
                    FailureDetailsinfo.CustReference = CustRefence;
                    ////FailureDetailsinfo.Area = Area;
                    FailureDetailsinfo.PaymentAmount = DRAMOUNT;
                    FailureDetailsinfo.FailureDetails = new List<UmemeFailureDetials>();
                    FailureDetailsinfo.FailureDetails.Add(new UmemeFailureDetials()
                                                              {
                                                                  Remark =
                                                                      "Payment reference has already been transacted",
                                                                  Responcecode = "05"
                                                              });
                    return "UNSUCCESSFUL";
                    break;
                default:
                    break;
            }

            CustRefence = CustRefence + Trantypey;
            string MyRef = (OriginalReference.ToString()).Trim().Replace(" ", "").ToUpper() +
                           System.DateTime.Today.ToString("yyMMdd") + System.DateTime.Now.ToString("hhmmss") + "UTIL";


            valuefield =
                Datamanagement.getFinpayGlobalDetails(
                    "select * from Payments where CustomerRefNumber = '" + OriginalReference +
                    "' AND STATUS= 'Posted' AND AccountNumber= '" + DRACCOUNTNUMBER + "' AND AMOUNTPAID= '" + DRAMOUNT +
                    "' AND VALUEDATE='" + TXNDATE + "' and phonenumber='" + PhoneNumber + "'", "CustomerRefNumber");
            if (valuefield == "")
            {
                valuefield =
                    Datamanagement.getFinpayGlobalDetails(
                        "select * from PaymentsArchive where CustomerRefNumber = '" + OriginalReference +
                        "' AND STATUS= 'Posted' AND AccountNumber= '" + DRACCOUNTNUMBER + "' AND AMOUNTPAID= '" +
                        DRAMOUNT + "' AND VALUEDATE='" + TXNDATE + "' and phonenumber='" + PhoneNumber + "'",
                        "CustomerRefNumber");
            }
            switch (valuefield)
            {
                case "":

                    break;
                default:
                    FailureDetailsinfo.EXRef = EXREF;
                    FailureDetailsinfo.CustReference = CustRefence;
                    //FailureDetailsinfo.Area = Area;
                    FailureDetailsinfo.PaymentAmount = DRAMOUNT;
                    FailureDetailsinfo.FailureDetails = new List<UmemeFailureDetials>();
                    FailureDetailsinfo.FailureDetails.Add(new UmemeFailureDetials()
                                                              {
                                                                  Remark =
                                                                      "Payment reference has already been transacted",
                                                                  Responcecode = "05"
                                                              });
                    return "UNSUCCESSFUL";
                    break;
            }

            //check whether transaction already sent to the bridge
            isrepeat = Datamanagement.isalreadyPosted(MyRef);
            if (isrepeat == false)
            {
                //post to the bridge
                Datamanagement.InsertIntoLog(MyRef, Subhosty,
                                             Msgtypey, Procodey, TXNDATE, TXNTIME, DRACCBRANCH, CustRefence, CustRefence,
                                             DRAMOUNT, Commissiony, DRACCOUNTNUMBER, MerchantTypeY, EXREF, Terminaly,
                                             DRACCBRANCH,
                                             Batchy, Terminaly, sp_reference, DRACCOUNTNUMBER, DRACCURR, "0",
                                             MessageFlagy,
                                             Workstationy,
                                             PosConfirmedy, PosReversedy, "0", UtilityAccountY, UtilityAccBranchY,
                                             MerchantTypeY, EftSourcey, IbTxny, "", Flexuseridy);
            }

            Thread.Sleep(5000);
            issuccess = Datamanagement.isSuccessful(MyRef);
            EXREF = Datamanagement.Ecternalref(MyRef);
            switch (issuccess)
            {
                case true:
                    //joannah...7/8/2015
                    Datamanagement.IsertintoUmemePayments(MyRef, "Energy Payment", UtilityAccBranchY,
                                                         UtilityAccountY, CustNamex, OutstandingBalx, DRAMOUNT,
                                                         "DIRECTDEBIT",
                                                         DRACCBRANCH, DRACCOUNTNUMBER, "", OriginalReference,
                                                        "", PhoneNumber, CustRemarks, FCDBMAKERy, Procodey, TXNDATE,
                                                         DRACCBRANCH,
                                                         statuscodex, PropertyRefx, "", "", "", "");
                    break;
                case false:
                    FailureDetailsinfo.EXRef = EXREF;
                    FailureDetailsinfo.CustReference = CustRefence;
                    //FailureDetailsinfo.Area = Area;
                    FailureDetailsinfo.PaymentAmount = DRAMOUNT;
                    FailureDetailsinfo.FailureDetails = new List<UmemeFailureDetials>();
                    FailureDetailsinfo.FailureDetails.Add(new UmemeFailureDetials()
                                                              {
                                                                  Remark = "Failed To Post To Core Banking",
                                                                  Responcecode = "05"
                                                              });
                    return "UNSUCCESSFUL";
                    break;
            }

            


            //notify umeme payments..joannah 9/7/2015
            PostUmemebill(CustRefence, OriginalReference, CustomerName, DRAMOUNT, "DIRECTDEBIT", "", PhoneNumber, remark, FCDBMAKERy, "254", TXNDATE, "", 0, "2", "2");
            

            //RESPOND HERE
            UmemeDetailsinfo.EXRef = EXREF;
            UmemeDetailsinfo.CustReference = OriginalReference;
            UmemeDetailsinfo.PaymentAmount = DRAMOUNT;
            UmemeDetailsinfo.UmemeDetails = new List<UmemeDetials>();
            UmemeDetailsinfo.UmemeDetails.Add(new UmemeDetials()
                                                  {
                                                      CustomerName = CustNamex,
                                                      AmountPaid = OutstandingBalx,
                                                      Responcecode = "00",
                                                      Remark = CustRemarks
                                                  });
            return UmemeDetailsinfo.EXRef.ToString();
        }
Exemplo n.º 2
0
        public string FinpayUmeme(string CustRefence, string Area, string EXREF, string DRACCBRANCH,
                                  string DRACCOUNTNUMBER, string DRAMOUNT, string DRACCURR, string TXNDATE,
                                  string TXNTIME, string PhoneNumber, string CustRemarks, string Location)
        {
            string ReferenceNumberx = "";
            string Areax            = "";
            string OutstandingBalx  = "";
            string CustNamex        = "";
            string PropertyRefx     = "";
            string CustomerErrorx   = "";
            string cust_ref_        = CustRefence;

            string OriginalReference = "";

            OriginalReference = CustRefence;

            string[] FCDBSetting = null;
            string   FCDBSetings = "";

            string FCDBINTERNALGL      = "";
            string FCDBTELLERCODE      = "";
            string FCDBDESC            = "";
            string FCDBTILLID          = "";
            string FCDBLIMIT           = "";
            string FCDBMAKERy          = "";
            string FCDBCHECKERy        = "";
            string Subhosty            = "";
            string Msgtypey            = "";
            string Procodey            = "";
            string Commissiony         = "";
            string Trantypey           = "";
            string Terminaly           = "";
            string Batchy              = "";
            string MessageFlagy        = "";
            string Workstationy        = "";
            string PosConfirmedy       = "";
            string PosReversedy        = "";
            string EftSourcey          = "";
            string IbTxny              = "";
            string Flexuseridy         = "";
            string UtilityAccountY     = "";
            string UtilityAccBranchY   = "";
            string UtilityAccCurrencyY = "";
            string MerchantTypeY       = "";

            string sp_reference = "";

            bool isrepeat     = false;
            bool istransacted = false;
            bool issuccess    = false;

            string valuefield = "";

            var FailureDetailsinfo = new UMEMEFCDBResponse();
            var UmemeDetailsinfo   = new UMEMEFCDBResponse();

            Datamanagement.PushUmemeCustReferenceDetails(CustRefence);

            //
            System.Net.ServicePointManager.CertificatePolicy = new MyPolicy();

            string UmemeVendorCode     = ConfigurationManager.AppSettings["UMEMEVendorCode"];
            string UmemeVendorPassword = ConfigurationManager.AppSettings["UMEMEVendorPass"];

            UMEMEGateway.EPayment service = new UMEMEGateway.EPayment();
            UMEMEGateway.Customer x       = new UMEMEGateway.Customer();
            var d = new object();

            x = service.ValidateCustomer(OriginalReference, UmemeVendorCode, UmemeVendorPassword);



            var     res               = service.ValidateCustomer(CustRefence, UmemeVendorCode, UmemeVendorPassword);
            string  remark            = "";
            string  CustomerRef       = res.CustomerRef;
            string  CustomerName      = res.CustomerName;
            string  CustomerType      = res.CustomerType;
            string  Balance           = Convert.ToString(res.Balance);
            string  StatusCode        = res.StatusCode;
            string  StatusDescription = res.StatusDescription;
            Boolean auth              = false;

            if (res.StatusDescription != "SUCCESS")
            {
                auth   = false;
                remark = res.StatusDescription;
            }
            else
            {
                auth   = true;
                remark = "Successful";
            }


            Datamanagement.UpdateUMEMEDetails(CustRefence, CustomerName, CustomerType, Balance, StatusCode, StatusDescription, remark, auth);
            //umemept.Close();
            //
            //Thread.Sleep(5000);

            string CustReferenceDetials = Datamanagement.getUmemeCustRefDetails(CustRefence);

            string[] Custrefdets = null;
            Custrefdets      = CustReferenceDetials.Split('|');
            ReferenceNumberx = Custrefdets[0];
            //Areax = Custrefdets[1];
            OutstandingBalx = Custrefdets[1];
            CustNamex       = Custrefdets[2];
            string statuscodex = Custrefdets[3];

            PropertyRefx = Custrefdets[4];
            //CustomerErrorx = Custrefdets[5];

            switch (PropertyRefx)
            {
            case "SUCCESS":
                //Continue
                break;

            default:
                //Do Zilch

                FailureDetailsinfo.EXRef          = EXREF;
                FailureDetailsinfo.CustReference  = CustRefence;
                FailureDetailsinfo.PaymentAmount  = DRAMOUNT;
                FailureDetailsinfo.FailureDetails = new List <UmemeFailureDetials>();
                FailureDetailsinfo.FailureDetails.Add(new UmemeFailureDetials()
                {
                    Remark       = CustomerErrorx,
                    Responcecode = "05"
                });
                return("UNSUCCESSFUL");

                break;
            }

            sp_reference = ReferenceNumberx + "-" + CustNamex;
            //Get FCDB details here

            FCDBSetings = Datamanagement.getFCDBSettings("UMEME");
            FCDBSetting = FCDBSetings.Split('|');

            FCDBINTERNALGL = FCDBSetting[0];
            FCDBTELLERCODE = FCDBSetting[1];
            FCDBDESC       = FCDBSetting[2];
            FCDBTILLID     = FCDBSetting[3];
            FCDBLIMIT      = FCDBSetting[4];

            FCDBMAKERy          = FCDBSetting[5];
            FCDBCHECKERy        = FCDBSetting[6];
            Subhosty            = FCDBSetting[7];
            Msgtypey            = FCDBSetting[8];
            Procodey            = FCDBSetting[9];
            Commissiony         = FCDBSetting[10];
            Trantypey           = FCDBSetting[11];
            Terminaly           = FCDBSetting[12];
            Batchy              = FCDBSetting[13];
            MessageFlagy        = FCDBSetting[14];
            Workstationy        = FCDBSetting[15];
            PosConfirmedy       = FCDBSetting[16];
            PosReversedy        = FCDBSetting[17];
            EftSourcey          = FCDBSetting[18];
            IbTxny              = FCDBSetting[19];
            Flexuseridy         = FCDBSetting[20];
            UtilityAccountY     = FCDBSetting[21];
            UtilityAccBranchY   = FCDBSetting[22];
            UtilityAccCurrencyY = FCDBSetting[23];
            MerchantTypeY       = FCDBSetting[24];

            istransacted = Datamanagement.isalreadyTransacted(CustRefence);

            switch (istransacted)
            {
            case true:
                FailureDetailsinfo.EXRef         = EXREF;
                FailureDetailsinfo.CustReference = CustRefence;
                ////FailureDetailsinfo.Area = Area;
                FailureDetailsinfo.PaymentAmount  = DRAMOUNT;
                FailureDetailsinfo.FailureDetails = new List <UmemeFailureDetials>();
                FailureDetailsinfo.FailureDetails.Add(new UmemeFailureDetials()
                {
                    Remark =
                        "Payment reference has already been transacted",
                    Responcecode = "05"
                });
                return("UNSUCCESSFUL");

                break;

            default:
                break;
            }

            CustRefence = CustRefence + Trantypey;
            string MyRef = (OriginalReference.ToString()).Trim().Replace(" ", "").ToUpper() +
                           System.DateTime.Today.ToString("yyMMdd") + System.DateTime.Now.ToString("hhmmss") + "UTIL";


            valuefield =
                Datamanagement.getFinpayGlobalDetails(
                    "select * from Payments where CustomerRefNumber = '" + OriginalReference +
                    "' AND STATUS= 'Posted' AND AccountNumber= '" + DRACCOUNTNUMBER + "' AND AMOUNTPAID= '" + DRAMOUNT +
                    "' AND VALUEDATE='" + TXNDATE + "' and phonenumber='" + PhoneNumber + "'", "CustomerRefNumber");
            if (valuefield == "")
            {
                valuefield =
                    Datamanagement.getFinpayGlobalDetails(
                        "select * from PaymentsArchive where CustomerRefNumber = '" + OriginalReference +
                        "' AND STATUS= 'Posted' AND AccountNumber= '" + DRACCOUNTNUMBER + "' AND AMOUNTPAID= '" +
                        DRAMOUNT + "' AND VALUEDATE='" + TXNDATE + "' and phonenumber='" + PhoneNumber + "'",
                        "CustomerRefNumber");
            }
            switch (valuefield)
            {
            case "":

                break;

            default:
                FailureDetailsinfo.EXRef         = EXREF;
                FailureDetailsinfo.CustReference = CustRefence;
                //FailureDetailsinfo.Area = Area;
                FailureDetailsinfo.PaymentAmount  = DRAMOUNT;
                FailureDetailsinfo.FailureDetails = new List <UmemeFailureDetials>();
                FailureDetailsinfo.FailureDetails.Add(new UmemeFailureDetials()
                {
                    Remark =
                        "Payment reference has already been transacted",
                    Responcecode = "05"
                });
                return("UNSUCCESSFUL");

                break;
            }

            //check whether transaction already sent to the bridge
            isrepeat = Datamanagement.isalreadyPosted(MyRef);
            if (isrepeat == false)
            {
                //post to the bridge
                Datamanagement.InsertIntoLog(MyRef, Subhosty,
                                             Msgtypey, Procodey, TXNDATE, TXNTIME, DRACCBRANCH, CustRefence, CustRefence,
                                             DRAMOUNT, Commissiony, DRACCOUNTNUMBER, MerchantTypeY, EXREF, Terminaly,
                                             DRACCBRANCH,
                                             Batchy, Terminaly, sp_reference, DRACCOUNTNUMBER, DRACCURR, "0",
                                             MessageFlagy,
                                             Workstationy,
                                             PosConfirmedy, PosReversedy, "0", UtilityAccountY, UtilityAccBranchY,
                                             MerchantTypeY, EftSourcey, IbTxny, "", Flexuseridy);
            }

            Thread.Sleep(5000);
            issuccess = Datamanagement.isSuccessful(MyRef);
            EXREF     = Datamanagement.Ecternalref(MyRef);
            switch (issuccess)
            {
            case true:
                //joannah...7/8/2015
                Datamanagement.IsertintoUmemePayments(MyRef, "Energy Payment", UtilityAccBranchY,
                                                      UtilityAccountY, CustNamex, OutstandingBalx, DRAMOUNT,
                                                      "DIRECTDEBIT",
                                                      DRACCBRANCH, DRACCOUNTNUMBER, "", OriginalReference,
                                                      "", PhoneNumber, CustRemarks, FCDBMAKERy, Procodey, TXNDATE,
                                                      DRACCBRANCH,
                                                      statuscodex, PropertyRefx, "", "", "", "");
                break;

            case false:
                FailureDetailsinfo.EXRef         = EXREF;
                FailureDetailsinfo.CustReference = CustRefence;
                //FailureDetailsinfo.Area = Area;
                FailureDetailsinfo.PaymentAmount  = DRAMOUNT;
                FailureDetailsinfo.FailureDetails = new List <UmemeFailureDetials>();
                FailureDetailsinfo.FailureDetails.Add(new UmemeFailureDetials()
                {
                    Remark       = "Failed To Post To Core Banking",
                    Responcecode = "05"
                });
                return("UNSUCCESSFUL");

                break;
            }



            //notify umeme payments..joannah 9/7/2015
            PostUmemebill(CustRefence, OriginalReference, CustomerName, DRAMOUNT, "DIRECTDEBIT", "", PhoneNumber, remark, FCDBMAKERy, "254", TXNDATE, "", 0, "2", "2");


            //RESPOND HERE
            UmemeDetailsinfo.EXRef         = EXREF;
            UmemeDetailsinfo.CustReference = OriginalReference;
            UmemeDetailsinfo.PaymentAmount = DRAMOUNT;
            UmemeDetailsinfo.UmemeDetails  = new List <UmemeDetials>();
            UmemeDetailsinfo.UmemeDetails.Add(new UmemeDetials()
            {
                CustomerName = CustNamex,
                AmountPaid   = OutstandingBalx,
                Responcecode = "00",
                Remark       = CustRemarks
            });
            return(UmemeDetailsinfo.EXRef.ToString());
        }