public static object AtenderSolicitudWM(ESolicitud objE) { ERespuestaJson objRespuesta = new ERespuestaJson(); try { if (HttpContext.Current.Session["userRump"] == null) { objRespuesta.Error("Su sesión ha expirado, por favor vuelva a iniciar sesión"); return(objRespuesta); } int objResultado = 0; EUsuario eSession = (EUsuario)HttpContext.Current.Session["userRump"]; objE.USUARIO = eSession.ID; objE.ID = Convert.ToDecimal(EUtil.getDesencriptar(objE.ID_ENCRIP)); objResultado = NSolicitud.AtenderSolicitud(objE); if (objResultado == 0) { objRespuesta.Error("No se pudo atender."); } else { objRespuesta.Success("Se atendió la solicitud correctamente"); } } catch (Exception ex) { objRespuesta.Error(String.IsNullOrEmpty(ex.Message) ? ex.InnerException.Message : ex.Message); } return(objRespuesta); }
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"); } }