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"); } }
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"); } }
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); }
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"); } }
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); }
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); }
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"); } }