// 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)); } }
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; } }
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()); } }