Esempio n. 1
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>";
            }
        }
 private wsac.Tarjeta ConvierteTarjTemp(TarjetasViewModel tvm)
 {
     wsac.Tarjeta t = new wsac.Tarjeta()
     {
         titularFN    = tvm.TitularFN,
         titularLN    = tvm.TitularLN,
         calleynumero = tvm.CalleyNum,
         idestado     = tvm.IdEstado,
         idciudad     = tvm.IdCiudad,
         codigopostal = tvm.CP,
         idusuario    = tvm.Idusuario,
     };
     return(t);
 }
Esempio n. 3
0
 private wsac.Tarjeta ConvierteTarjTemp(TarjetasViewModel tvm)
 {
     wsac.Tarjeta t = new wsac.Tarjeta()
     {
         //idpais = tvm.idpais,
         //idemisor = tvm.idemisor,
         //numero = tvm.NumeroTarjeta,
         //expiramm = tvm.ExpiraMM,
         //expirayy = tvm.ExpiraYY,
         //cvv = tvm.Cvc,
         titularFN    = tvm.TitularFN,
         titularLN    = tvm.TitularLN,
         calleynumero = tvm.CalleyNum,
         idestado     = tvm.IdEstado,
         idciudad     = tvm.IdCiudad,
         codigopostal = tvm.CP,
         idusuario    = tvm.Idusuario,
     };
     return(t);
 }
Esempio n. 4
0
        private async Task Recargar()
        {
            rvm = Session["rvm"] as RecargasViewModel;
            tvm = Session["tvm"] as TarjetasViewModel;
            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,
                    };
                    wsac.AltaRecargaMonederoResponse ar  = new wsac.AltaRecargaMonederoResponse();
                    wsac.CargaOpenPay1aVezResponse   v1r = new wsac.CargaOpenPay1aVezResponse();
                    rm = new wsac.RecargaMonedero()
                    {
                        idusuario     = rvm.IdUsuario,
                        idtarjeta     = (rvm.idFormaPago == 2) ? rvm.IdTarjeta : -1,
                        monto         = rvm.MontoRecargaMonedero,
                        fecha         = DateTime.Now,
                        TransactionID = Guid.NewGuid().ToString(),
                        os            = Request.UserAgent,
                        ip            = Request.UserHostAddress,
                        err           = -1 // -1 es una recarga recien creada q aun no ha sido procesada (pagada)
                    };
                    try
                    {
                        ws = Session["wsac"] as wsac.IsacClient;
                        ar = await ws.AltaRecargaMonederoAsync(rm);

                        GetSessionTags tags = JsonConvert.DeserializeObject <GetSessionTags>(ar.Body.AltaRecargaMonederoResult);
                        FingerP(tags.OrgID, tags.WebSessionID);
                        await Task.Delay(TimeSpan.FromSeconds(10));

                        tk = await TempToken(tvm);

                        if (tk.ResponseCode == 0)
                        {
                            t.permtoken          = tk.ChargeAccountNumberToken;
                            t.Last4              = tk.PaymentDeviceLast4;
                            rm.idrecargamonedero = tags.idrecarga;
                            v1r = await ws.CargaOpenPay1aVezAsync(null, rm, t, tags.WebSessionID, "");

                            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<br />";
                                ticket    += "<b>MONTO: " + rvm.MontoRecargaMonedero.ToString("c") + "</b><br />";
                                spnJS.Text = "<script>ticket('" + ticket + "');</script>";
                            }
                        }
                        else
                        {
                            spnJS.Text = "<script>msgError('Ocurrio un error');</script>";
                        }
                    }
                    catch (Exception ex)
                    {
                        spnJS.Text = "<script>msgError('Ocurrio un error');</script>";
                    }
                }
                //-----------------------------------------------------------------------------------
                if (rvm.TipoTrans == TipoTransaccion.SegundaVez)
                {
                    rm = new wsac.RecargaMonedero()
                    {
                        idusuario     = rvm.IdUsuario,
                        idtarjeta     = (rvm.idFormaPago == 2) ? rvm.IdTarjeta : -1,
                        monto         = rvm.MontoRecargaMonedero,
                        fecha         = DateTime.Now,
                        TransactionID = Guid.NewGuid().ToString(),
                        os            = Request.UserAgent,
                        ip            = Request.UserHostAddress,
                        err           = -1 // -1 es una recarga recien creada q aun no ha sido procesada (pagada)
                    };
                    wsac.CargaVesta2aVezResponse v2r = new wsac.CargaVesta2aVezResponse();
                    try
                    {
                        ws  = Session["wsac"] as wsac.IsacClient;
                        v2r = await ws.CargaVesta2aVezAsync(null, rm, "");

                        errRecarga err = JsonConvert.DeserializeObject <errRecarga>(v2r.Body.CargaVesta2aVezResult);
                        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<br />";
                            ticket    += "<b>MONTO: " + rvm.MontoRecargaMonedero.ToString("c") + "</b><br />";
                            spnJS.Text = "<script>ticket('" + ticket + "');</script>";
                        }
                    }
                    catch (Exception ex)
                    {
                        spnJS.Text = "<script>msgError('Ocurrio un error');</script>";
                    }
                } // if segundavez
            }     // if formapago = 2
        }
Esempio n. 5
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
        }