Exemplo n.º 1
0
        static private async Task <int> AltaRecarga(wsac.Recarga r)
        {
            int     res = 0;
            string  cs  = ConfigurationManager.ConnectionStrings["ac"].ConnectionString;
            DataSet ds  = new DataSet();

            using (var conn = new MySqlConnection(cs))
            {
                string command = "insert into recarga (idpais, idoperadora, idpaquete, idformapago, idtarjeta, numerorecarga, contactorecarga, fecha, TransactionID, idusuario) values (@idpais, @idoperadora, @idpaquete, @idformapago, @idtarjeta, @numerorecarga, @contactorecarga, @fecha, @TransactionID, @idusuario)";
                using (var cmd = new MySqlCommand(command, conn))
                {
                    cmd.Parameters.Add("@idpais", MySqlDbType.Int32).Value                = r.idpais;
                    cmd.Parameters.Add("@idoperadora", MySqlDbType.Int32).Value           = r.idoperadora;
                    cmd.Parameters.Add("@idpaquete", MySqlDbType.Int32).Value             = r.idpaquete;
                    cmd.Parameters.Add("@idformapago", MySqlDbType.Int32).Value           = r.idformapago;
                    cmd.Parameters.Add("@idtarjeta", MySqlDbType.Int32).Value             = r.idtarjeta;
                    cmd.Parameters.Add("@numerorecarga", MySqlDbType.VarChar, 45).Value   = r.numerorecarga;
                    cmd.Parameters.Add("@contactorecarga", MySqlDbType.VarChar, 45).Value = r.contactorecarga;
                    cmd.Parameters.Add("@fecha", MySqlDbType.DateTime).Value              = r.fecha;
                    cmd.Parameters.Add("@TransactionID", MySqlDbType.VarChar, 45).Value   = r.TransactionID;
                    cmd.Parameters.Add("@idusuario", MySqlDbType.Int32).Value             = r.idusuario;
                    conn.Open();
                    if (cmd.ExecuteNonQuery() > 0)
                    {
                        res = (int)cmd.LastInsertedId;
                    }
                }
            }
            return(res);
        }
Exemplo n.º 2
0
        private async Task CompletaRecarga3DSec(string idopenpaytr)
        {
            wsac.CargaOpenPay1aVezResponse v1r = new wsac.CargaOpenPay1aVezResponse();
            wsac.Tarjeta t = Session["TarjetaParaRecargar"] as wsac.Tarjeta;
            r   = Session["RecargaParaRecargar"] as wsac.Recarga;
            rvm = Session["rvm"] as RecargasViewModel;

            v1r = await ws.CargaOpenPay1aVezAsync(r, null, t, idopenpaytr, rvm.OpenPayDeviceId);

            errRecarga err = JsonConvert.DeserializeObject <errRecarga>(v1r.Body.CargaOpenPay1aVezResult);

            if (err.err > 0)
            {
                jsonErr = ws.GetCatalogo(6, "");
                List <catErrores> lserr = JsonConvert.DeserializeObject <List <catErrores> >(jsonErr);
                string            msg   = "";
                switch (err.err)
                {
                case 1:     //RecargaSell
                    msg = lserr.Where(x => x.iderror == err.errRs).FirstOrDefault().error;
                    break;

                case 2:     //Vesta
                    msg = lserr.Where(x => x.iderror == err.errVs).FirstOrDefault().error;
                    break;

                case 3:     //Comunicaciones
                    msg = lserr.Where(x => x.iderror == 9).FirstOrDefault().error;
                    break;
                }
                if (!String.IsNullOrEmpty(err.tresp.rcode_description))
                {
                    msg += "\\n" + err.tresp.rcode_description;
                }
                //spnJS.Text = "<script>msgError('Ocurrio un error: " + ce.error + (!String.IsNullOrEmpty(err.tresp.printDatam_data) ? " " + err.tresp.printDatam_data : "") + "');</script>";
                spnJS.Text = "<script>msgError('Ocurrio un error: " + msg + "');</script>";
            }
            else
            {
                rvm            = Session["rvm"] as RecargasViewModel;
                rvm.IdTarjeta  = err.idtarjeta;
                Session["rvm"] = rvm;
                string ticket = "";
                ticket    += "TRANSACCIÓN " + err.tresp.transaction_id + "<br />";
                ticket    += "FECHA " + DateTime.Now.ToString("dd/MMM/yyyy") + "<br />";
                ticket    += "TRANSACCIÓN EXITOSA DE: " + (Session["catOperadora"] as catOperadora).operadora + "<br />";
                ticket    += "<b>MONTO: " + (Session["catPaquete"] as catPaquete).monto.ToString("c") + "</b><br />";
                ticket    += "celular: " + rvm.NumeroRecarga + "<br />";
                ticket    += "AUTORIZACIÓN: " + err.tresp.op_authorization + "<br />";
                ticket    += err.tresp.printDatam_data;
                spnJS.Text = "<script>ticket('" + ticket + "');</script>";
            }
        }
Exemplo n.º 3
0
        private async Task Recargar()  //btnRecargar.Click += async (s, ea) =>
        {
            rvm = Session["rvm"] as RecargasViewModel;
            tvm = Session["tvm"] as TarjetasViewModel;
            if (rvm.idFormaPago == 1) //monedero
            {
                r = new wsac.Recarga()
                {
                    idusuario       = rvm.IdUsuario,
                    idpais          = rvm.idpais,
                    idoperadora     = rvm.idoperadora,
                    idpaquete       = rvm.idpaquete,
                    idformapago     = rvm.idFormaPago,
                    idtarjeta       = (rvm.idFormaPago == 2) ? rvm.IdTarjeta : -1,
                    numerorecarga   = rvm.NumeroRecarga,
                    contactorecarga = rvm.ContactoRecarga,
                    fecha           = DateTime.Now,
                    TransactionID   = Guid.NewGuid().ToString(),
                    err             = -1, // -1 es una recarga recien creada q aun no ha sido procesada (pagada)
                    os = Request.UserAgent,
                    ip = Request.UserHostAddress,
                };
                wsac.AltaRecargaViaWalletResponse vwr = new wsac.AltaRecargaViaWalletResponse();
                try
                {
                    ws  = Session["wsac"] as wsac.IsacClient;
                    vwr = await ws.AltaRecargaViaWalletAsync(r);

                    errRecarga err = JsonConvert.DeserializeObject <errRecarga>(vwr.Body.AltaRecargaViaWalletResult);
                    if (err.err > 0)
                    {
                        jsonErr = ws.GetCatalogo(6, "");
                        List <catErrores> lserr = JsonConvert.DeserializeObject <List <catErrores> >(jsonErr);
                        string            msg   = "";
                        switch (err.err)
                        {
                        case 1:     //RecargaSell
                            msg = lserr.Where(x => x.iderror == err.errRs).FirstOrDefault().error;
                            break;

                        case 2:     //Vesta
                            msg = lserr.Where(x => x.iderror == err.errVs).FirstOrDefault().error;
                            break;

                        case 3:     //Comunicaciones
                            msg = lserr.Where(x => x.iderror == 9).FirstOrDefault().error;
                            break;
                        }
                        if (!String.IsNullOrEmpty(err.tresp.rcode_description))
                        {
                            msg += "\\n" + err.tresp.rcode_description;
                        }
                        spnJS.Text = "<script>msgError('Ocurrio un error: " + msg + "');</script>";
                    }
                    else
                    {
                        string ticket = "";
                        ticket    += "TRANSACCIÓN " + err.tresp.transaction_id + "<br />";
                        ticket    += "FECHA " + DateTime.Now.ToString("dd/MMM/yyyy") + "<br />";
                        ticket    += "TRANSACCIÓN EXITOSA DE: " + (Session["catOperadora"] as catOperadora).operadora + "<br />";
                        ticket    += "<b>MONTO: " + (Session["catPaquete"] as catPaquete).monto.ToString("c") + "</b><br />";
                        ticket    += "celular: " + rvm.NumeroRecarga + "<br />";
                        ticket    += "AUTORIZACIÓN: " + err.tresp.op_authorization + "<br />";
                        ticket    += err.tresp.printDatam_data;
                        spnJS.Text = "<script>ticket('" + ticket + "');</script>";
                    }
                    //spnJS.Text = "<script>ticket('prueba');</script>";
                }
                catch (Exception ex)
                {
                    //Aqui modifico Pablo y se regreso como estaba, aqui no esta el detalle
                    spnJS.Text = "<script>msgError('Ocurrio un error');</script>";
                }
            }
            //------------------------------------------------------------------------------
            if (rvm.idFormaPago == 2) //tarjeta
            {
                if (rvm.TipoTrans == TipoTransaccion.PrimeraVez)
                {
                    wsac.Tarjeta t = new wsac.Tarjeta()
                    {
                        idusuario      = tvm.Idusuario,
                        idpais         = tvm.idpais,
                        idemisor       = tvm.idemisor,
                        permtoken      = tvm.NumeroTarjeta,
                        Last4          = tvm.Last4,
                        titularFN      = tvm.TitularFN,
                        titularLN      = tvm.TitularLN,
                        calleynumero   = tvm.CalleyNum,
                        idestado       = tvm.IdEstado,
                        idciudad       = tvm.IdCiudad,
                        codigopostal   = tvm.CP,
                        expirationMMYY = tvm.ExpiraMM + tvm.ExpiraYY,
                    };
                    r = new wsac.Recarga()
                    {
                        idusuario       = rvm.IdUsuario,
                        idpais          = rvm.idpais,
                        idoperadora     = rvm.idoperadora,
                        idpaquete       = rvm.idpaquete,
                        idformapago     = rvm.idFormaPago,
                        idtarjeta       = (rvm.idFormaPago == 2) ? rvm.IdTarjeta : -1,
                        numerorecarga   = rvm.NumeroRecarga,
                        contactorecarga = rvm.ContactoRecarga,
                        fecha           = DateTime.Now,
                        TransactionID   = Guid.NewGuid().ToString(),
                        err             = -1, // -1 es una recarga recien creada q aun no ha sido procesada (pagada)
                        os = Request.UserAgent,
                        ip = Request.UserHostAddress,
                    };
                    try
                    {
                        ws          = Session["wsac"] as wsac.IsacClient;
                        r.idrecarga = ws.AltaRecarga(r);
                        t.permtoken = rvm.OpenPayTokenId;
                        t.Last4     = (!String.IsNullOrEmpty(tvm.NumeroTarjeta) ? tvm.NumeroTarjeta.Substring(tvm.NumeroTarjeta.Length - 4, 4) : "");
                        var response3d = await ws.Carga3DSecureAsync(r, null, rvm.OpenPayDeviceId, t, 1);

                        var redirect = JsonConvert.DeserializeObject <Response3dSecure>(response3d.Body.Carga3DSecureResult);
                        if (!redirect.err)
                        {
                            Session["TarjetaParaRecargar"] = t;
                            Session["RecargaParaRecargar"] = r;
                            Response.Redirect(redirect.desc, false);
                            return;
                        }
                        else
                        {
                            string strerrcard = "";
                            int    errcard    = 0;
                            int.TryParse(redirect.desc, out errcard);
                            switch (errcard)
                            {
                            case 3001:
                                strerrcard = "La tarjeta fue declinada."; break;

                            case 3002:
                                strerrcard = "La tarjeta ha expirado."; break;

                            case 3003:
                                strerrcard = "La tarjeta no tiene fondos suficientes."; break;

                            case 3004:
                                strerrcard = "La tarjeta ha sido identificada como una tarjeta robada."; break;

                            case 3005:
                                strerrcard = "La tarjeta ha sido rechazada por el sistema antifraudes."; break;

                            case 3006:
                                strerrcard = "La operación no esta permitida para este cliente o esta transacción."; break;

                            case 3007:
                                strerrcard = "Deprecado. La tarjeta fue declinada."; break;

                            case 3008:
                                strerrcard = "La tarjeta no es soportada en transacciones en línea."; break;

                            case 3009:
                                strerrcard = "La tarjeta fue reportada como perdida."; break;

                            case 3010:
                                strerrcard = "El banco ha restringido la tarjeta."; break;

                            case 3011:
                                strerrcard = "El banco ha solicitado que la tarjeta sea retenida. Contacte al banco."; break;

                            case 3012:
                                strerrcard = "Se requiere solicitar al banco autorización para realizar este pago."; break;
                            }
                            spnJS.Text = "<script>msgError('Ocurrio un error: " + strerrcard + "');</script>";
                        }
                    }
                    //Este es el exception que salta
                    catch (Exception ex)
                    {
                        spnJS.Text = "<script>msgError('Ocurrio un error: " + r.err.ToString() + "');</script>";
                    }
                }
                //-----------------------------------------------------------------------------------
                if (rvm.TipoTrans == TipoTransaccion.SegundaVez)
                {
                    wsac.Tarjeta t = new wsac.Tarjeta()
                    {
                        idtarjeta = rvm.IdTarjeta
                    };
                    r = new wsac.Recarga()
                    {
                        idusuario       = rvm.IdUsuario,
                        idpais          = rvm.idpais,
                        idoperadora     = rvm.idoperadora,
                        idpaquete       = rvm.idpaquete,
                        idformapago     = rvm.idFormaPago,
                        idtarjeta       = (rvm.idFormaPago == 2) ? rvm.IdTarjeta : -1,
                        numerorecarga   = rvm.NumeroRecarga,
                        contactorecarga = rvm.ContactoRecarga,
                        fecha           = DateTime.Now,
                        TransactionID   = Guid.NewGuid().ToString(),
                        err             = -1, // -1 es una recarga recien creada q aun no ha sido procesada (pagada)
                        os = Request.UserAgent,
                        ip = Request.UserHostAddress,
                    };
                    try
                    {
                        ws          = Session["wsac"] as wsac.IsacClient;
                        r.idrecarga = ws.AltaRecarga(r);
                        var response3d = await ws.Carga3DSecureAsync(r, null, rvm.OpenPayDeviceId, t, 2);

                        var redirect = JsonConvert.DeserializeObject <Response3dSecure>(response3d.Body.Carga3DSecureResult);
                        if (!redirect.err)
                        {
                            Session["TarjetaParaRecargar"] = t;
                            Session["RecargaParaRecargar"] = r;
                            Response.Redirect(redirect.desc, false);
                            return;
                        }
                        else
                        {
                            string strerrcard = "";
                            int    errcard    = 0;
                            int.TryParse(redirect.desc, out errcard);
                            switch (errcard)
                            {
                            case 3001:
                                strerrcard = "La tarjeta fue declinada."; break;

                            case 3002:
                                strerrcard = "La tarjeta ha expirado."; break;

                            case 3003:
                                strerrcard = "La tarjeta no tiene fondos suficientes."; break;

                            case 3004:
                                strerrcard = "La tarjeta ha sido identificada como una tarjeta robada."; break;

                            case 3005:
                                strerrcard = "La tarjeta ha sido rechazada por el sistema antifraudes."; break;

                            case 3006:
                                strerrcard = "La operación no esta permitida para este cliente o esta transacción."; break;

                            case 3007:
                                strerrcard = "Deprecado. La tarjeta fue declinada."; break;

                            case 3008:
                                strerrcard = "La tarjeta no es soportada en transacciones en línea."; break;

                            case 3009:
                                strerrcard = "La tarjeta fue reportada como perdida."; break;

                            case 3010:
                                strerrcard = "El banco ha restringido la tarjeta."; break;

                            case 3011:
                                strerrcard = "El banco ha solicitado que la tarjeta sea retenida. Contacte al banco."; break;

                            case 3012:
                                strerrcard = "Se requiere solicitar al banco autorización para realizar este pago."; break;
                            }
                            spnJS.Text = "<script>msgError('Ocurrio un error: " + strerrcard + "');</script>";
                        }
                    }
                    catch (Exception ex)
                    {
                        spnJS.Text = "<script>msgError('Ocurrio un error: " + r.err.ToString() + "');</script>";
                    }
                } // if segundavez
            }     // if formapago = 2
        }