Esempio n. 1
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));
            }
        }
Esempio n. 2
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;
            }
        }