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());
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }