Beispiel #1
0
        public void ProcessRequest(HttpContext context)
        {
            ERespuestaJson objRespuesta = new ERespuestaJson();

            try
            {
                context.Response.ContentType = "text/plain";
                string str_image = "";

                foreach (string s in context.Request.Files)
                {
                    HttpPostedFile file = context.Request.Files[s];
                    str_image = context.Request.Form["name"];

                    if (!string.IsNullOrEmpty(str_image))
                    {
                        string pathToSave = HttpContext.Current.Server.MapPath("~/img/usuario/") + str_image;
                        Image  img        = clsUtil.RedimensionarImagen(file.InputStream, 200);
                        using (MemoryStream stream = new MemoryStream())
                        {
                            img.Save(pathToSave);
                            stream.WriteTo(context.Response.OutputStream);
                        }
                        //img.Save(pathToSave);
                        //file.SaveAs(pathToSave);
                    }
                }
                context.Response.Write(str_image);
            }
            catch (Exception ex)
            {
                NMascota.log_error(String.IsNullOrEmpty(ex.Message) ? ex.InnerException.Message : ex.Message, "imagen usuario");
            }
        }
Beispiel #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            ERespuestaJson objRespuesta = new ERespuestaJson();

            try
            {
                //obteniendo pagos pendientes
                List <EPago> lpagosPendientes = new List <EPago>();
                lpagosPendientes = NPago.listarPagosPendientes();
                var str_mensaje = "";

                str_mensaje += DateTime.Now.ToString();

                foreach (EPago item in lpagosPendientes)
                {
                    dynamic payment_response;
                    try
                    {
                        payment_response = JsonConvert.DeserializeObject(item.OBSERVACION);
                    }
                    catch (Exception ex)
                    {
                        payment_response = null;
                        NMascota.log_error("job_ProcessPendingPayments::" + (String.IsNullOrEmpty(ex.Message) ? ex.InnerException.Message : ex.Message), "obj_pago");
                    }

                    if (payment_response != null)
                    {
                        var payment_id = payment_response["Id"].Value;
                        //Si no encuentra el payment_id
                        if (payment_id == null)
                        {
                            str_mensaje += item.SOLICITUD_ID + "::" + payment_id + ":: Id de pago no se genero<br>";
                            continue;
                        }
                        //Obteniendo estado del pago
                        var result_payment = get_pay_mp(payment_id);
                        //Si no se encuentra el payment_id
                        if (result_payment.StatusDetail == null)
                        {
                            str_mensaje += item.SOLICITUD_ID + "::" + payment_id + ":: Id de pago no encontrado<br>";
                            continue;
                        }
                        processPaymentResponse(result_payment, item.SOLICITUD_ID, item.ID, item.EMAIL);
                        str_mensaje += item.SOLICITUD_ID + "::" + payment_id + "::" + result_payment.StatusDetail + "<br>";
                    }
                }

                str_mensaje           += DateTime.Now.ToString();
                bodyProcesos.InnerHtml = str_mensaje;
            }
            catch (Exception ex)
            {
                NMascota.log_error("job_ProcessPendingPayments::" + (String.IsNullOrEmpty(ex.Message) ? ex.InnerException.Message : ex.Message), "obj_pago");
            }
        }
Beispiel #3
0
        public static object response_pagoefectivo_mp(ESolicitud objPago)
        {
            ERespuestaJson objRespuesta = new ERespuestaJson();

            try
            {
                if (HttpContext.Current.Session["userRump"] == null)
                {
                    objRespuesta.Error("NS");
                    return(objRespuesta);
                }

                //Validando AccessToken MP
                if (MercadoPago.SDK.AccessToken == null)
                {
                    MercadoPago.SDK.AccessToken = ConfigurationManager.AppSettings.Get("ACCESS_TOKEN");
                }

                //Get datos Pedido
                ESolicitud objPedido = new ESolicitud();
                objPedido = (ESolicitud)HttpContext.Current.Session["solicitudPedido"];

                ESolicitud objSolicitud = new ESolicitud();
                objSolicitud.ID     = objPedido.ID;
                objSolicitud.OPCION = 7;
                objPedido           = NSolicitud.listarPedidoxId(objSolicitud);

                //Pagando pagoefectivo
                float payAmount = (float)objPedido.TOTAL;
                var   payment   = response_pay_mp("pagoefectivo_atm", payAmount, objPedido.EMAIL, objPedido.ID.ToString());
                //Guardando pago
                savePayDatabase(payAmount, "", objPedido.ID, 2, JsonConvert.SerializeObject(payment), 2, objPago.EMAIL, "pending");
                //Enviando correo al cliente
                enviarMail(objPedido.EMAIL, "mercadopago", objPedido.ID.ToString());

                //Limpiando sesiones
                HttpContext.Current.Session["solicitudPedido"] = null;
                HttpContext.Current.Session["carritoMascota"]  = null;

                objRespuesta.Resultado = payment;
            }
            catch (Exception ex)
            {
                NMascota.log_error("pagoefectivo::" + (String.IsNullOrEmpty(ex.Message) ? ex.InnerException.Message : ex.Message), "pago");
                objRespuesta.Error(String.IsNullOrEmpty(ex.Message) ? ex.InnerException.Message : ex.Message);
            }
            return(objRespuesta);
        }
Beispiel #4
0
        public static void enviarMail(string p_para, string p_tipo, string p_adicional)
        {
            ECorreo correo = new ECorreo();

            var p_asunto = "";
            var mensaje  = "<h4>¡Saludos desde RUMP!</h4>";

            switch (p_tipo)
            {
            case "aprobada":
                p_asunto = "Solicitud aprobada";
                mensaje += "<p>Su solicitud ha sido procesada con éxito, de ser necesario nos pondremos en contacto con usted para coordinar la entrega.</p><h4>Equipo RUMP</h4>";
                break;

            case "proceso":
                p_asunto = "Solicitud en proceso";
                mensaje += "<p>Su solicitud está siendo procesada, su banco puede tardar algunos días para confirmar el pago. Si tiene alguna consulta no dude en contactarse con nosotros.</p><h4>Equipo RUMP</h4>";
                break;

            case "cancelada":
                p_asunto = "Solicitud cancelada";
                mensaje += "<p>Su solicitud fue cancelada, no se pudo confirmar el pago.</p><h4>Equipo RUMP</h4>";
                break;

            case "mercadopago":
                p_asunto = "Pago pendiente";
                mensaje += "<p>Su solicitud está siendo procesada, deberá acercarse al banco y brindar el código de Pago en efectivo.</p><h4>Equipo RUMP</h4>";
                break;

            default:
                break;
            }

            correo.Para    = p_para;
            correo.Asunto  = p_asunto;
            correo.Mensaje = mensaje;
            try
            {
                correo.Enviar();
            }
            catch (Exception ex)
            {
                NMascota.log_error("enviarMail::" + (String.IsNullOrEmpty(ex.Message) ? ex.InnerException.Message : ex.Message), "pago");
            }
        }
Beispiel #5
0
        public static object response_pay_mp(string payMethod, float payAmount, string email, string numPedido, string tokencard, int installmt, string docType, string docNumber)
        {
            object payResult = null;

            if (MercadoPago.SDK.AccessToken == null)
            {
                MercadoPago.SDK.AccessToken = ConfigurationManager.AppSettings.Get("ACCESS_TOKEN");
            }

            var payment = new Payment
            {
                TransactionAmount = payAmount,
                Token             = tokencard,
                Installments      = installmt,
                PaymentMethodId   = payMethod,
                Description       = "Pedido Rump: " + numPedido,
                ExternalReference = numPedido,

                Payer = new Payer
                {
                    Email          = email,
                    Identification = new Identification()
                    {
                        Type   = docType,
                        Number = docNumber
                    }
                }
            };


            try
            {
                payment.Save();
                payResult = payment;
            }
            catch (Exception ex)
            {
                NMascota.log_error("response_pay_mp::" + (String.IsNullOrEmpty(ex.Message) ? ex.InnerException.Message : ex.Message), "pago");
                payResult = null;
            }

            return(payResult);
        }
Beispiel #6
0
        public PaymentStatus processPaymentResponse(dynamic payment, decimal numPedido, string p_email)
        {
            PaymentStatus result_estado;

            try
            {
                ESolicitud objSol = new ESolicitud();
                objSol.ID = numPedido;
                EUsuario eUsuario = (EUsuario)HttpContext.Current.Session["userRump"];
                objSol.USUARIO = eUsuario.ID;

                if (payment.Status == MercadoPago.Common.PaymentStatus.approved || payment.Status == MercadoPago.Common.PaymentStatus.authorized)
                {
                    //Actualiza el estado de la solicitud a APROBADO
                    objSol.COMENTARIO = "approved::MercadoPago";
                    //Guardando datos pago
                    savePayDatabase(payment.TransactionAmount, payment.Card.LastFourDigits, numPedido, 2, JsonConvert.SerializeObject(payment), 1, p_email, "approved");
                    //Atendiendo solicitud
                    NSolicitud.AtenderSolicitud(objSol);
                    enviarMail(p_email, "aprobada", numPedido.ToString());

                    //Limpiando sesiones
                    HttpContext.Current.Session["solicitudPedido"] = null;
                    HttpContext.Current.Session["carritoMascota"]  = null;
                }
                else if (payment.Status == MercadoPago.Common.PaymentStatus.cancelled)
                {
                    //cancelado
                    //Actualiza el estado de la solicitud a ANULADO
                    objSol.COMENTARIO = "cancelled::MercadoPago";
                    NMascota.log_error("cancelled::" + JsonConvert.SerializeObject(payment), "pago");
                    //NSolicitud.AnularSolicitud(objSol);

                    //Limpiando sesiones
                    HttpContext.Current.Session["solicitudPedido"] = null;
                    HttpContext.Current.Session["carritoMascota"]  = null;
                }
                else if (payment.Status == MercadoPago.Common.PaymentStatus.rejected)
                {
                    //fallido
                    //Actualiza el estado de la solicitud a ANULADO
                    objSol.COMENTARIO = "rejected::MercadoPago";
                    NMascota.log_error("rejected::" + JsonConvert.SerializeObject(payment), "pago");
                    //NSolicitud.AnularSolicitud(objSol);

                    //Limpiando sesiones
                    HttpContext.Current.Session["solicitudPedido"] = null;
                    HttpContext.Current.Session["carritoMascota"]  = null;
                }
                else if (payment.Status == MercadoPago.Common.PaymentStatus.in_process)
                {
                    //Caso particular de MercadoPago (pago pendiente de revision, se da hasta 6hrs para revision)
                    savePayDatabase(payment.TransactionAmount, payment.Card.LastFourDigits, numPedido, 2, JsonConvert.SerializeObject(payment), 2, p_email, "in_process");
                    enviarMail(p_email, "proceso", numPedido.ToString());

                    //Limpiando sesiones
                    HttpContext.Current.Session["solicitudPedido"] = null;
                    HttpContext.Current.Session["carritoMascota"]  = null;
                }
                else
                {
                    //Error en la pasarela de pago. Intente nuevamente por favor
                    NMascota.log_error("Estado no considerado::" + JsonConvert.SerializeObject(payment), "pago");
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Alerta", "alert('(E02) El pago no se realizó, volver a intentar.')", true);
                }

                result_estado = payment.Status;
            }
            catch (Exception ex)
            {
                NMascota.log_error("processPaymentResponse::" + (String.IsNullOrEmpty(ex.Message) ? ex.InnerException.Message : ex.Message), "pago");
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Alerta", "alert('" + (String.IsNullOrEmpty(ex.Message) ? ex.InnerException.Message : ex.Message) + "')", true);
                result_estado = 0;
            }

            return(result_estado);
        }
Beispiel #7
0
        public void processPaymentResponse(dynamic payment, decimal numPedido, decimal idPago, string p_email)
        {
            try
            {
                if (payment != null)
                {
                    int        objResultado = 0;
                    ESolicitud objSol       = new ESolicitud();
                    objSol.ID      = numPedido;
                    objSol.USUARIO = 10585;//usuario fchara para los pagos de sistema

                    switch (payment.Status)
                    {
                    case MercadoPago.Common.PaymentStatus.approved:
                    case MercadoPago.Common.PaymentStatus.authorized:
                        //Actualiza el estado de la solicitud a APROBADO
                        objSol.COMENTARIO = "approved::MercadoPago";
                        objResultado      = NSolicitud.AtenderSolicitud(objSol);
                        paymentGen.updatePayDatabase(idPago, 4, "", 1, "approved");
                        paymentGen.enviarMail(p_email, "aprobada", numPedido.ToString());
                        break;

                    case MercadoPago.Common.PaymentStatus.cancelled:
                        //cancelado
                        //Actualiza el estado de la solicitud a ANULADO
                        objSol.COMENTARIO = "cancelled::MercadoPago";
                        objResultado      = NSolicitud.AnularSolicitud(objSol);
                        paymentGen.updatePayDatabase(idPago, 4, "", 0, "cancelled");
                        paymentGen.enviarMail(p_email, "cancelada", numPedido.ToString());
                        break;

                    case MercadoPago.Common.PaymentStatus.rejected:
                        //fallido
                        //Actualiza el estado de la solicitud a ANULADO
                        objSol.COMENTARIO = "rejected::MercadoPago";
                        objResultado      = NSolicitud.AnularSolicitud(objSol);
                        paymentGen.updatePayDatabase(idPago, 4, "", 0, "cancelled");
                        paymentGen.enviarMail(p_email, "cancelada", numPedido.ToString());
                        break;

                    case MercadoPago.Common.PaymentStatus.in_process:
                        //Caso particular de MercadoPago (pago pendiente de revision, se da hasta 6hrs para revision)
                        break;

                    case null:
                        //Error en la pasarela de pago. Intente nuevamente por favor
                        NMascota.log_error("Error en la pasarela de pago. Intente nuevamente por favor", "pago");
                        break;

                    default:
                        break;
                    }
                }
                else
                {
                    NMascota.log_error("payment card", "pago");
                }
            }
            catch (Exception ex)
            {
                NMascota.log_error("payment card::" + (String.IsNullOrEmpty(ex.Message) ? ex.InnerException.Message : ex.Message), "pago");
            }
        }