public IActionResult ResultRecarga() { var passing = TempData["responde"].ToString(); Models.centralRecargaAPIModel.respondeRE responde = new Models.centralRecargaAPIModel.respondeRE(); responde.error = passing.Split('|')[0].Equals("true") ? true : false; responde.transaccion = passing.Split('|')[1]; responde.headerticket = passing.Split('|')[2]; responde.ticket = passing.Split('|')[3]; responde.aclaraciones = passing.Split('|')[4]; Models.RecargasViewModel.ResultRE resultRE = new Models.RecargasViewModel.ResultRE(); if (!responde.error) { ViewBag.error = false; ViewBag.transID = responde.transaccion; resultRE.Companyname = responde.headerticket; resultRE.ticket = responde.ticket; resultRE.Mensaje = responde.aclaraciones; } else { resultRE.Error = responde.ticket; ViewBag.error = true; } return(View(resultRE)); }
public async Task <JsonResult> pagoServicios(Models.centralRecargaAPIModel.pagoServicios pagoServicios) { Models.centralRecargaAPIModel.respondeRE responde = await aPIJob.DoPagoServicios(pagoServicios, "1", ""); return(Json(responde)); }
public async Task <JsonResult> recargaElectronica(Models.centralRecargaAPIModel.recargaElectronica recarga) { Models.centralRecargaAPIModel.respondeRE responde = await aPIJob.DoRecargaElectronica(recarga, "1", ""); return(Json(responde)); }
public async Task <IActionResult> DoRecarga(string Viene, string carrier, Models.RecargasViewModel.Recargar recargar) { if (!User.Identity.IsAuthenticated) { return(RedirectToAction("Index", "Home")); } if (!string.IsNullOrEmpty(Viene)) { switch (carrier) { case "1": ViewBag.headPanel = "Recarga Telcel"; ViewBag.CarrierImg = 1; ViewBag.CarrierQ = carrier; ViewBag.listaMonto = data.Servicedetails(carrier); break; case "2": ViewBag.headPanel = "Recarga Movistar"; ViewBag.CarrierImg = 2; ViewBag.CarrierQ = carrier; ViewBag.listaMonto = data.Servicedetails(carrier); break; case "3": ViewBag.headPanel = "Recarga AT&T"; ViewBag.CarrierImg = 3; ViewBag.CarrierQ = carrier; ViewBag.listaMonto = data.Servicedetails(carrier); break; case "4": ViewBag.headPanel = "Recarga Iusacell"; ViewBag.CarrierImg = 4; ViewBag.CarrierQ = carrier; ViewBag.listaMonto = data.Servicedetails(carrier); break; case "5": ViewBag.headPanel = "Recarga Virgin Mobile"; ViewBag.CarrierImg = 5; ViewBag.CarrierQ = carrier; ViewBag.listaMonto = data.Servicedetails(carrier); break; case "6": ViewBag.headPanel = "Recarga Unefon"; ViewBag.CarrierImg = 6; ViewBag.CarrierQ = carrier; ViewBag.listaMonto = data.Servicedetails(carrier); break; case "7": ViewBag.headPanel = "Recarga Nextel-ATT"; ViewBag.CarrierImg = 7; ViewBag.CarrierQ = carrier; ViewBag.listaMonto = data.Servicedetails(carrier); break; case "8": ViewBag.headPanel = "Recarga Alo"; ViewBag.CarrierImg = 8; ViewBag.CarrierQ = carrier; ViewBag.listaMonto = data.Servicedetails(carrier); break; case "9": ViewBag.headPanel = "Recarga Cierto"; ViewBag.CarrierImg = 9; ViewBag.CarrierQ = carrier; ViewBag.listaMonto = data.Servicedetails(carrier); break; case "10": ViewBag.headPanel = "Recarga Maztiempo"; ViewBag.CarrierImg = 10; ViewBag.CarrierQ = carrier; ViewBag.listaMonto = data.Servicedetails(carrier); break; case "11": ViewBag.headPanel = "Recarga Weex"; ViewBag.CarrierImg = 11; ViewBag.CarrierQ = carrier; ViewBag.listaMonto = data.Servicedetails(carrier); break; case "12": ViewBag.headPanel = "Recarga Flash Mobile"; ViewBag.CarrierImg = 12; ViewBag.CarrierQ = carrier; ViewBag.listaMonto = data.Servicedetails(carrier); break; case "13": ViewBag.headPanel = "Recarga Tuenti"; ViewBag.CarrierImg = 13; ViewBag.CarrierQ = carrier; ViewBag.listaMonto = data.Servicedetails(carrier); break; case "14": ViewBag.headPanel = "Paquete Internet Telcel"; ViewBag.CarrierImg = 14; ViewBag.CarrierQ = carrier; ViewBag.listaMonto = data.Servicedetails(carrier); break; case "15": ViewBag.headPanel = "Paquete Amigo Sin Límite"; ViewBag.CarrierImg = 15; ViewBag.CarrierQ = carrier; ViewBag.listaMonto = data.Servicedetails(carrier); break; case "16": ViewBag.headPanel = "Paquete Movistar Datos"; ViewBag.CarrierImg = 16; ViewBag.CarrierQ = carrier; ViewBag.listaMonto = data.Servicedetails(carrier); break; } ViewBag.error = false; return(View()); } else { if (ModelState.IsValid) { //call centralRecargaREService Models.centralRecargaAPIModel.recargaElectronica recargaElectronica = new Models.centralRecargaAPIModel.recargaElectronica(); recargaElectronica.APIK = User.Identity.Name; recargaElectronica.codigo = recargar.Monto; recargaElectronica.referencia = recargar.Confirmacion; Models.centralRecargaAPIModel.respondeRE responde = await APIJob.DoRecargaElectronica(recargaElectronica, "2", ""); string passing = responde.error.ToString() + "|" + responde.transaccion + "|" + responde.headerticket + "|" + responde.ticket + "|" + responde.aclaraciones; TempData["responde"] = passing; var response1 = responde.transaccion; return(RedirectToAction("ResultRecarga", "Ecommerce")); } else { ViewBag.error = true; recargar.ErrorMess = "Por favor revise los errores del envío"; return(View(recargar)); } } ViewBag.error = false; return(View()); }
public async Task <IActionResult> DoServicePay(string carrier, string Viene, Models.PayServicesModel.ToPay toPay) { if (!string.IsNullOrEmpty(Viene)) { switch (carrier) { case "17": ViewBag.carrierimg = "cfe_nice.png"; ViewBag.headPanel = "Pago de CFE (Recibo de luz)"; ViewBag.CarrierQ = carrier; break; case "18": ViewBag.carrierimg = "telmex-nice.png"; ViewBag.headPanel = "Pago de Telmex (Recibo de teléfono)"; ViewBag.CarrierQ = carrier; break; case "19": ViewBag.carrierimg = "sky-nice.png"; ViewBag.headPanel = "Pago de SKY/VETV (Recibo de TV satelital)"; ViewBag.CarrierQ = carrier; break; case "20": ViewBag.carrierimg = "dish-nice.png"; ViewBag.headPanel = "Pago de DISH (Recibo de TV Satelital)"; ViewBag.CarrierQ = carrier; break; } } else { if (ModelState.IsValid) { //validate models2 bool errors = false; switch (toPay.Carrier) { case "17": if (!toPay.confirmacion.Length.Equals(30)) { errors = true; toPay.errorMessage = "La longitud de la referencia debe ser de 30 caracteres/dígitos"; } break; case "18": if (!toPay.confirmacion.Length.Equals(10)) { errors = true; toPay.errorMessage = "La longitud de la referencia debe ser de 10 caracteres/dígitos"; } break; case "19": if (!toPay.confirmacion.Length.Equals(12)) { errors = true; toPay.errorMessage = "La longitud de la referencia debe ser de 12 caracteres/dígitos"; } break; case "20": if (!toPay.confirmacion.Length.Equals(14)) { errors = true; toPay.errorMessage = "La longitud de la referencia debe ser de 14 caracteres/dígitos"; } break; } //save request and send to wait //var response1 = await domy.DoingMagicPS(toPay, User.Identity.Name); //if (response1.StartsWith("Error")) //{ // ViewBag.error = true; // ViewBag.mensaje = response1; // errors = true; // toPay.errorMessage = response1; //} //else //{ // ViewBag.error = false; // ViewBag.transID = response1; // ViewBag.mensaje = "Procesando solicitud, esperando respuesta a petición # " + response1; //} Models.centralRecargaAPIModel.pagoServicios pagoServicios = new Models.centralRecargaAPIModel.pagoServicios(); pagoServicios.APIK = User.Identity.Name; pagoServicios.codigo = toPay.Carrier; pagoServicios.referencia = toPay.referencia; pagoServicios.monto = toPay.monto; pagoServicios.referencia2 = ""; Models.centralRecargaAPIModel.respondeRE responde = await APIJob.DoPagoServicios(pagoServicios, "2", ""); string passing = responde.error.ToString() + "|" + responde.transaccion + "|" + responde.headerticket + "|" + responde.ticket + "|" + responde.aclaraciones; TempData["responde"] = passing; if (!errors) { return(RedirectToAction("ResultRecarga", "Ecommerce")); } else { return(View(toPay)); } } else { return(View(toPay)); } } return(View()); }
public async Task <Models.centralRecargaAPIModel.respondeRE> DoRecargaElectronica(Models.centralRecargaAPIModel.recargaElectronica recargaElectronica, string via, string IP) { //login when its ready //after that, do check company balance vs service code vs suppliers balances Models.centralRecargaAPIModel.respondeRE responde = new Models.centralRecargaAPIModel.respondeRE(); double companyBalance = Convert.ToDouble(data.GetBalanceAvailable(recargaElectronica.APIK)); double serviceAmount = Convert.ToDouble(recargaElectronica.codigo.Split('-')[1]); double debit = serviceAmount - ((serviceAmount / 10) * data.GetFeeRE(recargaElectronica.APIK)); if (companyBalance >= debit) { string IDSupplier = data.GetBestBalanceAndSupplier(debit.ToString(), "saldorecargas"); string localTransactionID = data.GetLocalTransactionID(recargaElectronica.codigo, recargaElectronica.APIK, recargaElectronica.referencia, via, IP, IDSupplier, debit.ToString(), "0", recargaElectronica.codigo.Split('-')[1]); switch (IDSupplier) { case "1": Models.TaecelModel.RequestTXNModel requestTXN = GetServicesTaeCel.SendServiceRE(data.GetSupplierCode(recargaElectronica.codigo, IDSupplier), "0", recargaElectronica.referencia); if (requestTXN.success) { if (requestTXN.error.Equals(0)) { data.updateIdTrans(localTransactionID, requestTXN.data.transID); System.Threading.Thread.Sleep(2000); Models.TaecelModel.StatusTXNRE StatusTXNRE = GetServicesTaeCel.GetStatusTXNRE(requestTXN.data.transID); if (StatusTXNRE.error.Equals(0) || StatusTXNRE.message.Equals("Recarga Exitosa")) { data.updateEndTrans(requestTXN.data.transID, StatusTXNRE.data.Folio, "3"); string headerTicket = data.GetNotesticket(recargaElectronica.codigo, recargaElectronica.APIK); responde.ticket = "Recarga " + StatusTXNRE.data.Carrier + " exitosa. Folio:" + StatusTXNRE.data.Folio + " # Tel. " + StatusTXNRE.data.Telefono + " Monto:" + StatusTXNRE.data.Monto + " Hora:" + StatusTXNRE.data.Fecha + " "; responde.error = false; responde.fechaOperacion = StatusTXNRE.data.Fecha; responde.abono = "0.00"; responde.cargo = debit.ToString(); responde.transaccion = localTransactionID; responde.monto = serviceAmount.ToString(); responde.folio = StatusTXNRE.data.Folio; responde.aclaraciones = headerTicket.Split('|')[2]; responde.carrier = headerTicket.Split('|')[1]; responde.headerticket = headerTicket.Split('|')[0]; data.UpdateBalanceCia(debit.ToString(), recargaElectronica.APIK, IDSupplier, serviceAmount.ToString()); } else { data.updateEndTrans(requestTXN.data.transID, "", "4"); responde.ticket = "Error, transacción # " + localTransactionID + " " + StatusTXNRE.message; responde.error = true; } } } else { data.updateIdTrans(localTransactionID, localTransactionID); data.updateEndTrans(localTransactionID, "", "4"); responde.ticket = "Error, transacción # " + localTransactionID + " " + " Error en la respuesta del servicio, favor de reportar a soporte."; responde.error = true; } break; case "2": Models.prepagotaemodel.respuesta respuesta = await getServicesR.DoREPTAE(data.GetSupplierCode(recargaElectronica.codigo, IDSupplier), recargaElectronica.referencia, recargaElectronica.codigo.Split('-')[1]); if (respuesta.codigo.Equals("0")) { data.updateIdTrans(localTransactionID, respuesta.autorizacion); data.updateEndTrans(respuesta.autorizacion, respuesta.autorizacion, "3"); string headerTicket = data.GetNotesticket(recargaElectronica.codigo, recargaElectronica.APIK); responde.ticket = respuesta.mensaje; responde.error = false; responde.fechaOperacion = DateTime.Now.ToString(); responde.abono = "0.00"; responde.cargo = debit.ToString(); responde.transaccion = localTransactionID; responde.monto = serviceAmount.ToString(); responde.folio = respuesta.autorizacion; responde.aclaraciones = headerTicket.Split('|')[2]; responde.carrier = headerTicket.Split('|')[1]; responde.headerticket = headerTicket.Split('|')[0]; data.UpdateBalanceCia(debit.ToString(), recargaElectronica.APIK, IDSupplier, serviceAmount.ToString()); } else { data.updateIdTrans(localTransactionID, localTransactionID); data.updateEndTrans(localTransactionID, "", "4"); responde.ticket = "Error, transacción # " + localTransactionID + " " + respuesta.mensaje; responde.error = true; } break; case "3": break; default: responde.error = true; responde.ticket = "Ocurrió un problema en la transacción, le solicitamos reportar el código #318181002 al teléfono de contacto."; return(responde); } } else { responde.error = true; responde.ticket = "Saldo insuficiente, sólo cuenta con $ " + companyBalance.ToString(); } return(responde); }
public async Task <Models.centralRecargaAPIModel.respondeRE> DoPagoServicios(Models.centralRecargaAPIModel.pagoServicios pagoServicios, string via, string IP) { //login when its ready //after that, do check company balance vs service code vs suppliers balances Models.centralRecargaAPIModel.respondeRE responde = new Models.centralRecargaAPIModel.respondeRE(); double companyBalance = Convert.ToDouble(data.GetBalanceAvailable(pagoServicios.APIK)); double serviceAmount = Convert.ToDouble(pagoServicios.monto); double debit = serviceAmount + 5; if (companyBalance >= debit) { string IDSupplier = data.GetBestBalanceAndSupplier(debit.ToString(), "saldoservicios"); string localTransactionID = data.GetLocalTransactionIDPS(pagoServicios.codigo, pagoServicios.APIK, (pagoServicios.referencia + pagoServicios.referencia2), via, IP, IDSupplier, debit.ToString(), "0", pagoServicios.monto); switch (IDSupplier) { case "1": Models.TaecelModel.RequestTXNModel requestTXN = GetServicesTaeCel.SendServicePS(data.GetSupplierCode(pagoServicios.codigo, IDSupplier), pagoServicios.monto, pagoServicios.referencia); if (requestTXN.success) { if (requestTXN.error.Equals(0)) { Models.TaecelModel.StatusTXNRE StatusTXNRE = GetServicesTaeCel.GetStatusTXNRE(requestTXN.data.transID); if (StatusTXNRE.error.Equals(0) || StatusTXNRE.message.Equals("Recarga Exitosa")) { data.updateEndTrans(requestTXN.data.transID, StatusTXNRE.data.Folio, "3"); string headerTicket = data.GetNotesticket(pagoServicios.codigo, pagoServicios.APIK); responde.ticket = "Pago de servicio " + StatusTXNRE.data.Carrier + " exitosa. Folio:" + StatusTXNRE.data.Folio + " # Referencia. " + StatusTXNRE.data.Telefono + " Monto:" + StatusTXNRE.data.Monto + " Hora:" + StatusTXNRE.data.Fecha + " "; responde.error = false; responde.fechaOperacion = StatusTXNRE.data.Fecha; responde.abono = "0.00"; responde.cargo = debit.ToString(); responde.transaccion = localTransactionID; responde.monto = serviceAmount.ToString(); responde.folio = StatusTXNRE.data.Folio; responde.aclaraciones = headerTicket.Split('|')[2]; responde.carrier = headerTicket.Split('|')[1]; responde.headerticket = headerTicket.Split('|')[0]; data.UpdateBalanceCia(debit.ToString(), pagoServicios.APIK, IDSupplier, (serviceAmount + 5).ToString()); } else { data.updateEndTrans(requestTXN.data.transID, "", "4"); responde.ticket = "Error, transacción # " + localTransactionID + " " + StatusTXNRE.message; responde.error = true; } } } break; case "2": Models.prepagotaemodel.respuesta respuesta = await getServicesR.DoPSPTAE(data.GetCodeServiceSupplierPS(pagoServicios.codigo, IDSupplier), pagoServicios.referencia, pagoServicios.referencia2, pagoServicios.monto); if (respuesta.codigo.Equals("0")) { data.updateIdTrans(localTransactionID, respuesta.autorizacion); data.updateEndTrans(respuesta.autorizacion, respuesta.autorizacion, "3"); string headerTicket = data.GetNotesticket(pagoServicios.codigo, pagoServicios.APIK); responde.ticket = respuesta.mensaje; responde.error = false; responde.fechaOperacion = DateTime.Now.ToString(); responde.abono = "0.00"; responde.cargo = debit.ToString(); responde.transaccion = localTransactionID; responde.monto = serviceAmount.ToString(); responde.folio = respuesta.autorizacion; responde.aclaraciones = headerTicket.Split('|')[2]; responde.carrier = headerTicket.Split('|')[1]; responde.headerticket = headerTicket.Split('|')[0]; data.UpdateBalanceCia(debit.ToString(), pagoServicios.APIK, IDSupplier, (serviceAmount + 4).ToString()); } else { data.updateIdTrans(localTransactionID, localTransactionID); data.updateEndTrans(localTransactionID, "", "4"); responde.ticket = "Error, transacción # " + localTransactionID + " " + respuesta.mensaje; responde.error = true; } break; } } else { responde.error = true; responde.ticket = "Saldo insuficiente, sólo cuenta con $ " + companyBalance.ToString(); } return(responde); }