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()); }