public ActionResult DoCheckout() { decimal _saldo = 0; var saldo = Request["saldo"]; Decimal.TryParse(saldo, out _saldo); var pf = new PreferencesMP { items = new List <Items>() { new Items() { currency_id = "ARS", unit_price = _saldo, quantity = 1, title = "Pago de comisión por servicios de ServiEnCasa" } } }; MP mp = new MP(ConfigurationManager.AppSettings["MPClientID"], ConfigurationManager.AppSettings["MPSecret"]); mp.sandboxMode(bool.Parse(ConfigurationManager.AppSettings["MPSandbox"])); var data = new { items = pf.items.Select(i => new { title = i.title, quantity = i.quantity, currency_id = i.currency_id, unit_price = i.unit_price }).ToArray(), back_urls = new { success = Request.Url.DnsSafeHost + ":1230" + Url.RouteUrl("CheckoutStatus"), failure = Request.Url.DnsSafeHost + ":1230" + Url.RouteUrl("CheckoutStatus"), pending = Request.Url.DnsSafeHost + ":1230" + Url.RouteUrl("CheckoutStatus") } }; Hashtable preference = mp.createPreference(JsonConvert.SerializeObject(data)); string MPRefID = (string)((Hashtable)preference["response"])["id"]; var _pago = new Pagos(); _pago.Estado = "Pemdiente"; _pago.Importe = _saldo; _pago.MPRefID = MPRefID; db.Pagos.Add(_pago); db.SaveChanges(); return(Json(new { url = (string)((Hashtable)preference["response"])[ConfigurationManager.AppSettings["MPUrl"]] })); }
public ActionResult DoCheckout(string data) { var turno = db.HorariosDisponibles.Where(x => x.Id == data).FirstOrDefault(); var pf = new PreferencesMP() { items = new List <Items>() { new Items() { currency_id = "ARS", unit_price = turno.Precio, quantity = 1, title = "Turno Consultorio Virtual " + turno.Dia.ToString() }, }, }; MP mp = new MP(ConfigurationManager.AppSettings["MPClientID"], ConfigurationManager.AppSettings["MPSecret"]); mp.sandboxMode(bool.Parse(ConfigurationManager.AppSettings["MPSandbox"])); var datos = new { items = pf.items.Select(i => new { title = i.title, quantity = i.quantity, currency_id = i.currency_id, unit_price = i.unit_price }).ToArray(), back_urls = new { success = "http://" + Request.Url.Authority + Url.RouteUrl("CheckoutStatus"), failure = "http://" + Request.Url.Authority + Url.RouteUrl("CheckoutStatus"), pending = "http://" + Request.Url.Authority + Url.RouteUrl("CheckoutStatus") } }; Hashtable preference = mp.createPreference(JsonConvert.SerializeObject(datos)); string mprefid = (string)((Hashtable)preference["response"])["id"]; var usuario = User.Identity.GetUserId(); db.Configuration.LazyLoadingEnabled = false; db.Configuration.ProxyCreationEnabled = false; OrdenTurno orden = new OrdenTurno() { ordenitems = new List <OrdenItem>() { new OrdenItem() { currency_id = "ARS", unit_price = turno.Precio, quantity = 1, title = "Turno Consultorio Virtual " + turno.Dia.ToString(), EsValido = false, IdHorarioDisponible = turno.Id }, }, FechaCreacion = DateTime.Now, MPCollectionID = "", Status = "", SessionId = usuario, MPRefID = mprefid }; db.OrdenTurnos.Add(orden); db.SaveChanges(); //string MPRefID = (string)((Hashtable)preference["response"])["id"]; return(Json(new { url = (string)((Hashtable)preference["response"])[ConfigurationManager.AppSettings["MPUrl"]] })); }