예제 #1
0
        public ActionResult GenerarPagoTotal(string b, int t)
        {
            using (ITFEntities db = new ITFEntities())
            {
                string       nombre_usuario = Session["USER"].ToString();
                ITF_USUARIOS _user          = db.ITF_USUARIOS.Where(a => a.NOMBRE_USUARIO == nombre_usuario).FirstOrDefault();

                //INICIO LA TRASACCION PARA TEST (NO PRODUCTIVO); --> TRANSACCION NORMAL
                var transaction = new Webpay(Configuration.ForTestingWebpayPlusNormal()).NormalTransaction;
                //ACA EL MONTO;
                var amount = t;

                //UNA SESION QUE NECESITO PARA VOLVER A LOGEAR AL USUARIO
                var sessionId = _user.ID_USUARIO.ToString();
                //URL QUE LE MADO AL TRANBANK PARA LA RESPUESTA DEL PAGO
                var returnUrl = "https://localhost:44351/Pagos/RespuestaPago";

                //URL PARA RESUETA Y MOSTRAR EL COMPROBANTE
                var finalUrl = "https://localhost:44351/Pagos/ComprobanteCliente";

                //Y FINALMENTE LE PASO TODO A LA INTANCIA;
                var initResult = transaction.initTransaction(
                    amount, b, sessionId, returnUrl, finalUrl);


                //VARIABLES DE RETORNO
                var formAction = initResult.url;
                var tokenWs    = initResult.token;
                ViewBag.formAction = formAction;
                ViewBag.tokenWs    = tokenWs;
                ViewBag.amount     = amount;

                return(View());
            }
        }
예제 #2
0
        public ActionResult GenerarPagoTotal(int t)
        {
            using (ITFEntities db = new ITFEntities())
            {
                string       nombre_usuario = Session["USER"].ToString();
                ITF_USUARIOS _user          = db.ITF_USUARIOS.Where(a => a.NOMBRE_USUARIO == nombre_usuario).FirstOrDefault();

                var buyOrder = new Random().Next(100000, 999999999).ToString();

                var transaction = new Webpay(Configuration.ForTestingWebpayPlusNormal()).NormalTransaction;
                var amount      = t;



                var sessionId  = _user.ID_USUARIO.ToString();
                var returnUrl  = "https://localhost:44351/Alumno/RespuestaPago";
                var finalUrl   = "https://localhost:44351/Alumno/ComprobanteCliente";
                var initResult = transaction.initTransaction(
                    amount, buyOrder, sessionId, returnUrl, finalUrl);

                var formAction = initResult.url;
                var tokenWs    = initResult.token;
                ViewBag.formAction = formAction;
                ViewBag.tokenWs    = tokenWs;
                ViewBag.amount     = amount;

                return(View());
            }
        }
예제 #3
0
        public JsonResult BuscarAlumno(string term)
        {
            using (ITFEntities db = new ITFEntities())
            {
                var resultado = db.ITF_USUARIOS.Where(a => (a.NOMBRE + " " + a.APELLIDO_PATERNO + "(" + a.RUT + ")").Contains(term))
                                .Select(x => (x.NOMBRE + " " + x.APELLIDO_PATERNO + "(" + x.RUT + ")")).Distinct().Take(5).ToList();

                return(Json(resultado, JsonRequestBehavior.AllowGet));
            }
        }
예제 #4
0
        public ActionResult DetalleComprobante(int cod)
        {
            using (ITFEntities db = new ITFEntities())
            {
                ITF_BOLETAS _boleta = db.ITF_BOLETAS.Where(a => a.ORDEN_COMPRA == cod).FirstOrDefault();

                object data = new { RESPUESTA = true, TIPO = 1, DATA = _boleta };

                return(Json(data, JsonRequestBehavior.AllowGet));
            }
        }
예제 #5
0
        // GET: Pagos
        public ActionResult GenerarPedido(PEDIDO[] PEDIDOS)
        {
            int TOTAL = 0;

            using (ITFEntities db = new ITFEntities())
            {
                string       nombre_usuario = Session["USER"].ToString();
                ITF_USUARIOS _user          = db.ITF_USUARIOS.Where(a => a.NOMBRE_USUARIO == nombre_usuario).FirstOrDefault();

                foreach (PEDIDO item in PEDIDOS)
                {
                    TOTAL += (item.QA * item.PRICE);
                }
                var         buyOrder = new Random().Next(100000, 999999999).ToString();
                ITF_PEDIDOS _ped     = new ITF_PEDIDOS();
                _ped.ORDEN_COMPRA = buyOrder;
                _ped.FECHA        = DateTime.Now;
                _ped.COD_USUARIO  = _user.ID_USUARIO;
                _ped.COD_ESTADO   = 1;//Pedido Pendiente;
                db.ITF_PEDIDOS.Add(_ped);
                db.SaveChanges();
                foreach (PEDIDO item in PEDIDOS)
                {
                    ITF_PEDIDOS_DETALLE _det = new ITF_PEDIDOS_DETALLE();
                    _det.ID_PRODUCTO = item.ID;
                    _det.CANTIDAD    = item.QA;
                    _det.PRECIO      = item.PRICE;
                    _det.SUBTOTAL    = item.QA * item.PRICE;
                    _det.COD_PEDIDO  = _ped.ID_PEDIDO;
                    db.ITF_PEDIDOS_DETALLE.Add(_det);
                    db.SaveChanges();
                }

                object DATA = new { RESPUESTA = true, buyOrder = buyOrder, TOTAL = TOTAL };
                return(Json(DATA, JsonRequestBehavior.AllowGet));
            }
        }
예제 #6
0
        public ActionResult RespuestaPago(string token_ws)
        {
            using (ITFEntities db = new ITFEntities())
            {
                //YO REVISO LO QUE ME ENVIA TRANSBANK
                //INSTANCIO NUEVAMENTE LA TRANSACCION NORMAL;
                var transaction = new Webpay(Configuration.ForTestingWebpayPlusNormal()).NormalTransaction;

                //LE PASO EL TOKEN QUE ME MANDO, PARA QUE ME DEVUELVA EL DETALLE DE LA TRANSACCION RECIEN HECHA Y ALMACENO EL RESULTADO EN "RESULT"
                var result = transaction.getTransactionResult(token_ws);

                //EL OUPUT TIENE EL RESULTADO SI FUE CORRECTA LA TRANSACCION
                var output = result.detailOutput[0];

                //0 :> TRANSACION CORRECTA;

                //ME RETORNA LA SESION QUE LE ENCIE PREVIAMENTE;
                int id = Convert.ToInt32(result.sessionId);

                //Y ME VUEVO A LOGEAR
                ITF_USUARIOS _user = db.ITF_USUARIOS.Where(a => a.ID_USUARIO == id).FirstOrDefault();
                if (_user != null)
                {
                    //GENERO LAS SESIONES NECESARIAS PARA EL SISTEMA;
                    Session["USER"] = _user.NOMBRE_USUARIO;
                    Session["NAME"] = _user.NOMBRE + " " + _user.APELLIDO_PATERNO;
                    Session["TIPO"] = _user.COD_TIPO_USUARIO;
                    Session["RUT"]  = _user.RUT;
                }

                ViewBag.RESPONSE_CODE = output.responseCode;
                //EVALUO SI EL CODIGO ES 0, LO QUE SIGNIFICA QUE ESTA CORRECTO
                if (output.responseCode == 0)
                {
                    //VARIABLES PARA RESCATAR INFORMACION EN EL BOUCHER;
                    ViewBag.BUY_ORDEN          = result.buyOrder;
                    ViewBag.AUTHORIZATION_CODE = output.authorizationCode;
                    ViewBag.FECHA_TRANSACCION  = result.transactionDate;
                    ViewBag.FORMA_PAGO         = Forma_Pago(output.paymentTypeCode);
                    ViewBag.Url        = result.urlRedirection;
                    ViewBag.Token      = token_ws;
                    ViewBag.SESSION_ID = result.sessionId;

                    //GUARDO EL PEDIDO;
                    ITF_PEDIDOS _ped = db.ITF_PEDIDOS.Where(a => a.ORDEN_COMPRA == result.buyOrder).FirstOrDefault();
                    _ped.COD_ESTADO = 2;

                    //GENERO LA BOLETA;
                    ITF_BOLETAS _boleta = new ITF_BOLETAS();
                    _boleta.TOTAL               = Convert.ToInt32(output.amount);
                    _boleta.COD_PEDIDO          = _ped.ID_PEDIDO;
                    _boleta.FECHA               = DateTime.Now;
                    _boleta.COD_USUARIO         = _user.ID_USUARIO;
                    _boleta.MEDIO_PAGO          = Forma_Pago(output.paymentTypeCode);
                    _boleta.NUMERO_TARJETA      = Convert.ToInt32(result.cardDetail.cardNumber);
                    _boleta.ORDEN_COMPRA        = Convert.ToInt32(result.buyOrder);
                    _boleta.CODIGO_AUTORIZACION = Convert.ToInt32(output.authorizationCode);

                    db.ITF_BOLETAS.Add(_boleta);

                    //GUARDO TODO;
                    db.SaveChanges();
                }
                else//CASO CONTRARIO A RESULTADO O, MUESTRO MENSAJE DE TRANSACCION ERROREA;
                {
                    ViewBag.BUY_ORDEN     = result.buyOrder;
                    ViewBag.Url           = result.urlRedirection;
                    ViewBag.Token         = token_ws;
                    ViewBag.ERROR_MESSAGE = ERROR_MESSAGE(output.responseCode);
                }
                //RETORNO A MI VISTA
                return(View());

                //FIN;
            }
        }
예제 #7
0
        public ActionResult RespuestaPago(string token_ws)
        {
            using (ITFEntities db = new ITFEntities())
            {
                var transaction = new Webpay(Configuration.ForTestingWebpayPlusNormal()).NormalTransaction;
                var result      = transaction.getTransactionResult(token_ws);
                var output      = result.detailOutput[0];
                if (output.responseCode == 0)
                {
                    ViewBag.buyOrder          = result.buyOrder;
                    ViewBag.cardDetail        = result.cardDetail.cardNumber;
                    ViewBag.accountingDate    = result.accountingDate;
                    ViewBag.amount            = output.amount;
                    ViewBag.Url               = result.urlRedirection;
                    ViewBag.Token             = token_ws;
                    ViewBag.Status            = output.responseCode;
                    ViewBag.authorizationCode = output.authorizationCode;
                    ViewBag.ID = result.sessionId;

                    int id = Convert.ToInt32(result.sessionId);

                    ITF_USUARIOS _user = db.ITF_USUARIOS.Where(a => a.ID_USUARIO == id).FirstOrDefault();
                    if (_user != null)
                    {
                        Session["USER"] = _user.NOMBRE_USUARIO;
                        Session["NAME"] = _user.NOMBRE + " " + _user.APELLIDO_PATERNO;
                        Session["TIPO"] = _user.COD_TIPO_USUARIO;
                        Session["RUT"]  = _user.RUT;
                    }



                    string Cod_Operacion = new Random().Next(100000, 999999999).ToString();


                    ITF_CARTERA _cart = db.ITF_CARTERA.Where(a => a.COD_USUARIO == _user.ID_USUARIO).FirstOrDefault();
                    _cart.SALDO = _cart.SALDO + Convert.ToInt32(output.amount);
                    db.SaveChanges();

                    ITF_CARTERA_MOVIMIENTOS _mov = new ITF_CARTERA_MOVIMIENTOS();
                    _mov.FECHA            = DateTime.Now;
                    _mov.CODIGO_OPERACION = Cod_Operacion;
                    _mov.DESCRIPCION      = "Abono cartera";
                    _mov.CARGO            = false;
                    _mov.ABONO            = true;
                    _mov.SALDO            = Convert.ToInt32(output.amount);
                    _mov.COD_CARTERA      = _cart.ID_CARTERA;
                    _mov.SUBTOTAL         = _cart.SALDO;

                    db.ITF_CARTERA_MOVIMIENTOS.Add(_mov);
                    db.SaveChanges();
                }
                else
                {
                    //ViewBag.buyOrder = result.buyOrder;
                    //ViewBag.cardDetail = result.cardDetail;
                    //ViewBag.accountingDate = result.accountingDate;
                    //ViewBag.amount = output.amount;
                    ViewBag.Url   = result.urlRedirection;
                    ViewBag.Token = token_ws;
                }
                return(View());
            }
        }