public ConsultaTimbresRestantesRespuesta ConsultaTimbresRestantes(ConsultaTimbresRestantesPeticion Peticion) { #region "Variables" Mensaje = string.Empty; Resultado = false; #endregion "Variables" WebServiceFacturoPorTi Api = new WebServiceFacturoPorTi(SandBox); var respuesta = Api.ConsumeServicio <ConsultaTimbresRestantesPeticion, ConsultaTimbresRestantesRespuesta>("ApiConsultaTimbresRestantes", FacturoPorTi.Api.Cfdi.Genericos.TipoVerboHttp.Post, Peticion); if (respuesta != null) { if (respuesta.Estatus.Codigo == "000") { Resultado = true; Mensaje = respuesta.Estatus.Descripcion; } else { Mensaje = respuesta.Estatus.Descripcion + Environment.NewLine + Environment.NewLine + respuesta.Estatus.InformacionTecnica; } } else { Mensaje = "No se pudo realizar la consulta de los timbres restantes si el problema persiste comuniquese a [email protected]"; } return(respuesta); }
public bool ConsultaEstatusCFDI(ConsultaEstatusPeticion Peticion) { #region "Variables" Mensaje = string.Empty; Resultado = false; #endregion "Variables" WebServiceFacturoPorTi Api = new WebServiceFacturoPorTi(SandBox); EstatusFolios = Api.ConsumeServicio <ConsultaEstatusPeticion, ConsultaEstatusRespuesta>("ApiConsultaEstatusCFDI", FacturoPorTi.Api.Cfdi.Genericos.TipoVerboHttp.Post, Peticion); if (EstatusFolios != null) { if (EstatusFolios.Estatus.Codigo == "000") { Resultado = true; Mensaje = EstatusFolios.Estatus.Descripcion; } else { Mensaje = EstatusFolios.Estatus.Descripcion + Environment.NewLine + Environment.NewLine + EstatusFolios.Estatus.InformacionTecnica; } } else { Mensaje = "No se pudo realizar la consulta del estatus de CFDI's si el problema persiste comuniquese a [email protected]"; } return(Resultado); }
public bool CancelarCFDI(CancelarCFDIPeticion Peticion, Byte[] Certificado, Byte[] LlavePrivada, string ContraseñaCertificado) { #region "Variables" MensajeError = string.Empty; Mensaje = string.Empty; Resultado = false; AdministradorArchivos = new Archivos(); Utilerias utilerias = new Utilerias(); #endregion "Variables" #region "Valores Predeterminados" Resultado = utilerias.ValidaRFC(Peticion.RFC); if (Resultado == false) { Mensaje = "Ingrese el RFC correctamente"; return(false); } var configuracion = new Configuracion(); Resultado = configuracion.CargaCertificado(Certificado, LlavePrivada, ContraseñaCertificado, Peticion.RFC); if (Resultado == true) { FacturoPorTi.Api.Cfdi.Seguridad.Certificado certifica = new FacturoPorTi.Api.Cfdi.Seguridad.Certificado(); Peticion.PFX = AdministradorArchivos.ConvertirByteToBase64(certifica.GeneraPFX(Certificado, LlavePrivada, ContraseñaCertificado)); Peticion.PFXPassword = ContraseñaCertificado; } else { Mensaje = configuracion.Mensaje; } #endregion "Valores Predeterminados" Resultado = false; WebServiceFacturoPorTi Api = new WebServiceFacturoPorTi(SandBox); Cancelaciones = Api.ConsumeServicio <CancelarCFDIPeticion, CancelarCFDIRespuesta>("ApiCancelarCFDI", FacturoPorTi.Api.Cfdi.Genericos.TipoVerboHttp.Post, Peticion); if (Cancelaciones != null) { MensajeError = Api.MensajeError; if (Cancelaciones.Estatus.Codigo == "000") { Resultado = true; Mensaje = Cancelaciones.Estatus.Descripcion; } else { Mensaje = Cancelaciones.Estatus.Descripcion + Environment.NewLine + Environment.NewLine + Cancelaciones.Estatus.InformacionTecnica; } } else { MensajeError = Api.MensajeError; Mensaje = "No se pudo realizar la cancelación si el problema persiste comuniquese a [email protected]"; } return(Resultado); }
/// <summary> /// Genera el CFDI a partir de los datos ingresados /// </summary> /// <param name="Peticion"></param> /// <param name="Certificado"></param> /// <param name="LlavePrivada"></param> /// <param name="ContraseñaCertificado"></param> /// <returns></returns> public bool GeneraCFDI(CFDIPeticion Peticion, Byte[] Certificado, Byte[] LlavePrivada, string ContraseñaCertificado) { #region "Variables" MensajeError = string.Empty; Mensaje = string.Empty; Resultado = false; AdministradorArchivos = new Archivos(); Utilerias utilerias = new Utilerias(); #endregion "Variables" #region "Valores Predeterminados" Peticion.DatosGenerales.Version = "3.3"; Peticion.DatosGenerales.SellaCFDI = "true"; Peticion.DatosGenerales.TimbraCFDI = "true"; if (string.IsNullOrEmpty(Peticion.DatosGenerales.OpcionDecimales)) { Peticion.DatosGenerales.OpcionDecimales = "2"; // Valores permitidos 1: Truncar (Operaciones exactas) 2: Redondear hacia arriba o hacia abajo las cantidades } if (string.IsNullOrEmpty(Peticion.DatosGenerales.NumeroDecimales)) { Peticion.DatosGenerales.NumeroDecimales = "2"; } var configuracion = new Configuracion(); Resultado = configuracion.CargaCertificado(Certificado, LlavePrivada, ContraseñaCertificado, Peticion.Encabezado.Emisor.RFC); if (Resultado == true) { Peticion.DatosGenerales.CSD = AdministradorArchivos.ConvertirByteToBase64(Certificado); Peticion.DatosGenerales.LlavePrivada = AdministradorArchivos.ConvertirByteToBase64(LlavePrivada); Peticion.DatosGenerales.CSDPassword = ContraseñaCertificado; } else { Mensaje = configuracion.Mensaje; } if (Peticion.Encabezado.Emisor != null) { Resultado = utilerias.ValidaRFC(Peticion.Encabezado.Emisor.RFC); if (Resultado == false) { Mensaje = "El RFC del emisor es incorrecto"; return(false); } } else { Mensaje = "El RFC del emisor es incorrecto"; return(false); } if (Peticion.Encabezado.Receptor != null) { Resultado = utilerias.ValidaRFC(Peticion.Encabezado.Receptor.RFC); if (Resultado == false) { Mensaje = "El RFC del receptor es incorrecto"; return(false); } } else { Mensaje = "El RFC del receptor es incorrecto"; return(false); } if (!string.IsNullOrEmpty(Peticion.DatosGenerales.ReceptorEmail)) { Resultado = utilerias.ValidaCorreos(Peticion.DatosGenerales.ReceptorEmail); if (Resultado == false) { Mensaje = "El email del destinatario es incorrecto"; return(false); } } if (!string.IsNullOrEmpty(Peticion.DatosGenerales.ReceptorEmailCC)) { Resultado = utilerias.ValidaCorreos(Peticion.DatosGenerales.ReceptorEmailCC); if (Resultado == false) { Mensaje = "El email de la copia es incorrecto"; return(false); } } if (!string.IsNullOrEmpty(Peticion.DatosGenerales.ReceptorEmailCCO)) { Resultado = utilerias.ValidaCorreos(Peticion.DatosGenerales.ReceptorEmailCCO); if (Resultado == false) { Mensaje = "El email de la copia oculta es incorrecto"; return(false); } } #endregion "Valores Predeterminados" Resultado = false; WebServiceFacturoPorTi Api = new WebServiceFacturoPorTi(SandBox); Timbrado = Api.ConsumeServicio <CFDIPeticion, GeneraCFDIApiRespuesta>("ApiTimbrarCFDI", FacturoPorTi.Api.Cfdi.Genericos.TipoVerboHttp.Post, Peticion); if (Timbrado != null) { MensajeError = Api.MensajeError; if (Timbrado.Estatus.Codigo == "000") { Resultado = true; Mensaje = "Factura generada correctamente"; } else { Mensaje = Timbrado.Estatus.Descripcion + Environment.NewLine + Environment.NewLine + Timbrado.Estatus.InformacionTecnica; } } else { MensajeError = Api.MensajeError; Mensaje = "No se pudo realizar el timbrado si el problema persiste comuniquese a [email protected]"; } return(Resultado); }