/// <summary> /// Sube la imagen al servidor ftp. /// </summary> /// <param name="imgNombre">Nombre de la imagen.</param> /// <param name="image">Bytes de la imagen</param> public bool UploadBitmapAsync(string imgNombre, byte[] image, string path) { try { FtpWebRequest client = (FtpWebRequest)WebRequest.Create("ftp://cloud.worklabs.mx/" + path + imgNombre); client.Method = WebRequestMethods.Ftp.UploadFile; client.UsePassive = true; client.Credentials = new NetworkCredential(@"worklabscloud", @"Worklabscloud!"); Stream requestStream = client.GetRequestStream(); requestStream.Write(image, 0, image.Length); requestStream.Close(); FtpWebResponse response = (FtpWebResponse)client.GetResponse(); response.Close(); response.Dispose(); client = null; GC.Collect(); //client.Abort(); return(true); } catch (Exception e) { SlackLogs.SendMessage(e.Message, GetType().Name, "UploadBitmapAsync"); return(false); } }
public byte[] DownloadFileFTP(string imgNombre, string path) { MemoryStream ms = new MemoryStream(); Stream responseStream = null; FtpWebRequest client = null; if (!string.IsNullOrEmpty(imgNombre)) { try { client = (FtpWebRequest)WebRequest.Create("ftp://cloud.worklabs.mx/" + path + imgNombre.Replace("\\", "/")); client.Method = WebRequestMethods.Ftp.DownloadFile; client.UsePassive = true; client.Credentials = new NetworkCredential(@"worklabscloud", @"Worklabscloud!"); client.Timeout = System.Threading.Timeout.Infinite; responseStream = ((FtpWebResponse)client.GetResponse()).GetResponseStream(); responseStream.CopyTo(ms); responseStream.Close(); /*responseStream.Dispose(); * client = null; * GC.Collect();*/ } catch (Exception e) { SlackLogs.SendMessage(e.Message, GetType().Name, "DownloadFileFTP"); return(ms.ToArray()); } finally { if (responseStream != null) { responseStream.Close(); responseStream.Dispose(); } if (client != null) { client = null; } GC.Collect(); } } return(ms.ToArray()); }
public bool DeleteFileFTP(string imgNombre, string path) { if (!string.IsNullOrEmpty(imgNombre)) { try { FtpWebRequest client = (FtpWebRequest)WebRequest.Create("ftp://cloud.worklabs.mx/" + path + imgNombre.Replace("\\", "/")); client.Method = WebRequestMethods.Ftp.DeleteFile; client.UsePassive = true; client.Credentials = new NetworkCredential(@"worklabscloud", @"Worklabscloud!"); client.Timeout = 2500; Console.WriteLine(((FtpWebResponse)client.GetResponse()).StatusDescription); } catch (Exception e) { SlackLogs.SendMessage(e.Message, GetType().Name, "DeleteFileFTP"); return(false); } } return(true); }
public void GenerarPago() { Parametros = new ConfigurationsController().GetListConfiguraciones(); string varEstatus = "Correcto|0"; try { if (Parametros.Count > 0) { //Cpnfiguración string varServidor = Parametros[0].Parametro_Varchar_1; string varIp = Parametros[0].Parametro_Varchar_2; string varSolicitudUrl = Parametros[0].Parametro_Varchar_3; string varCuenta = Parametros[0].Parametro_Varchar_4; string varPuerto = Parametros[0].Parametro_Int_1; string varVersion = Parametros[0].Parametro_Int_2; string varTerminalId = Parametros[1].Parametro_Varchar_1; //Transacción string varTransaccionFecha = DateTime.Today.ToString("MMddyyyy"); string varCuentaDatos = ""; string varTransaccionCodigo = ""; string varSolicitudTipo = ""; decimal varPagoImportePagado = 0; string varTransaccionImporte = Math.Truncate(varPagoImportePagado * 100).ToString(); string varSesionId = ""; string varOrdenVentaId = ""; string varMiembroId = ""; //Post string varEnviar = "Request=" + varSolicitudTipo; varEnviar += "&Version=" + varVersion; varEnviar += "&HD.Network_Status_Byte=*"; varEnviar += "&HD.Application_ID=HZ0000GC"; varEnviar += "&HD.Terminal_ID=" + varTerminalId; varEnviar += "&HD.Device_Tag=" + varSesionId; varEnviar += "&01.POS_Entry_Capability=02"; varEnviar += "&01.Account_Entry_Mode=01"; varEnviar += "&01.Partial_Auth_Indicator=0"; varEnviar += "&01.Account_Data=" + varCuentaDatos; varEnviar += "&01.Transaction_Amount=" + varTransaccionImporte; varEnviar += "&10.CVV2_Indicator=9"; varEnviar += "&10.CVV2_Value=" + varTransaccionCodigo; //varEnviar += "&11.Customer_Code=WL100000000000000"; //+ varMiembroId; //varEnviar += "&12.Invoice_Number=" + varOrdenVentaId; //Este valor se utiliza para incluir la factura de la transacción local del TPV o el número de pedido. Este es un valor necesario para transacciones de pedido por correo y comercio electrónico. //varEnviar += "&12.Shipping_Date=" + varTransaccionFecha; //El valor es la fecha en que se enviaron los bienes del consumidor.Este valor es la "Fecha de transacción" para las transacciones de marketing directo y de comercio electrónico. byte[] varDatos = Encoding.ASCII.GetBytes(varEnviar); ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; var varUrl = "https://" + varServidor + ":" + varPuerto + varSolicitudUrl; var wbrSolicitud = (HttpWebRequest)WebRequest.Create(new Uri(varUrl)); wbrSolicitud.Method = "POST"; wbrSolicitud.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36"; wbrSolicitud.Host = varServidor + ":" + varPuerto; wbrSolicitud.Accept = "application/x-www-form-urlencoded"; wbrSolicitud.ContentType = "application/x-www-form-urlencoded"; wbrSolicitud.ContentLength = varDatos.Length; wbrSolicitud.Headers.Add("Registration-Key", varCuenta); Stream srmDatosSolicitud = wbrSolicitud.GetRequestStream(); srmDatosSolicitud.Write(varDatos, 0, varDatos.Length); srmDatosSolicitud.Close(); WebResponse wbrRespuesta = wbrSolicitud.GetResponse(); string varRespuestaEstatus = ((HttpWebResponse)wbrRespuesta).StatusDescription; if (varRespuestaEstatus == "OK") { srmDatosSolicitud = wbrRespuesta.GetResponseStream(); StreamReader srmDatosRespuesta = new StreamReader(srmDatosSolicitud, Encoding.UTF8); string varLinea = string.Empty; string varTransaccionId = string.Empty; string varTransaccionAutorizacion = string.Empty; string varTransaccionNumero = string.Empty; string varRespuestaCompleta = string.Empty; while ((varLinea = srmDatosRespuesta.ReadLine()) != null) { if (varLinea.Contains("RD.Device_Tag=")) { int varCaracterInicio = varLinea.IndexOf("=") + 1; int varCaracterFin = varLinea.Length - varCaracterInicio; varTransaccionId = varLinea.Substring(varCaracterInicio, varCaracterFin); } if (varLinea.Contains("02.Authorization_Response=")) { int varCaracterInicio = varLinea.IndexOf("=") + 1; int varCaracterFin = varLinea.Length - varCaracterInicio; varTransaccionAutorizacion = varLinea.Substring(varCaracterInicio, varCaracterFin); } if (varLinea.Contains("02.Trace_Number=")) { int varCaracterInicio = varLinea.IndexOf("=") + 1; int varCaracterFin = varLinea.Length - varCaracterInicio; varTransaccionNumero = varLinea.Substring(varCaracterInicio, varCaracterFin); } varRespuestaCompleta = varRespuestaCompleta + varLinea + "\r\n"; } if (varTransaccionId == varSesionId) { if (string.IsNullOrEmpty(varRespuestaCompleta) == false) { ConfiguracionesModel rutaPagos = new ConfigurationsController().GetConfiguraciones("10"); if (rutaPagos.Equals(null)) { string varArchivo = "ID ORDEN DE VENTA " + varOrdenVentaId + ", ID MIEMBRO " + varMiembroId + ", ID SESION " + varSesionId + ".txt"; if (varTransaccionAutorizacion == "APROBADA" || varTransaccionAutorizacion == "APPROVAL") { string varArchivoPago = Path.Combine("", rutaPagos.Parametro_Varchar_3 + varArchivo); File.WriteAllText(varArchivoPago, varRespuestaCompleta, Encoding.UTF8); varEstatus = "Correcto|" + varTransaccionNumero.Trim().Replace("02.Trace_Number=", ""); } else { string varArchivoPago = Path.Combine("", rutaPagos.Parametro_Varchar_4 + varArchivo); File.WriteAllText(varArchivoPago, varRespuestaCompleta, Encoding.UTF8); varEstatus = "Incorrecto|0"; } } } else { varEstatus = "Incorrecto|0"; } } else { varEstatus = "Incorrecto|0"; } srmDatosRespuesta.Close(); } else { varEstatus = "Incorrecto|0"; } srmDatosSolicitud.Close(); wbrRespuesta.Close(); } } catch (Exception e) { SlackLogs.SendMessage(e.Message, GetType().Name, "GenerarPago"); } }