public Boolean Cancelar(ref string error, ref Modelo.Factura factura, string rutaCertificado, string rutaKey) { var _rutaCertificadoPem = String.Format("{0}{1}", rutaCertificado, ".pem"); var _rutaKeyPem = String.Format("{0}{1}", rutaKey, ".pem"); ServicioCertificado _servicioCertificado = new ServicioCertificado(this._logger); _servicioCertificado.CreaArchivoExtPEM(rutaCertificado, _rutaCertificadoPem); _servicioCertificado.CreaArchivoKeyPEM(rutaKey, _rutaKeyPem, factura.Sucursal.ClavePrivada); cancelResponse _respuestaCancelacion = null; try { CancelSOAP cancela = new CancelSOAP(); cancel can = new cancel(); can.username = Resources.UsuarioFinkokP; can.password = Resources.ContraFinkok; can.taxpayer_id = factura.Sucursal.Rfc; can.cer = RegresaEN64(File.ReadAllText(_rutaCertificadoPem)); can.key = RegresaEN64(File.ReadAllText(_rutaKeyPem)); UUIDS nim = new UUIDS(); string[] uuidString = new string[] { factura.FolioFiscal }; nim.uuids = uuidString.ToArray(); can.UUIDS = nim; _respuestaCancelacion = cancela.cancel(can); if ((_respuestaCancelacion != null) && (_respuestaCancelacion.cancelResult != null)) { factura.AcuseCancelacion = _respuestaCancelacion.cancelResult.Acuse; factura.FechaCancelacion = DateTime.Now; factura.Estatus = "Cancelada"; } return(true); } catch (Exception e) { this._logger.EscribirError(e.ToString()); return(false); } }
public Boolean GeneraCFDI(ref string error, Modelo.Factura factura, string rutaGuardadoCFDI, string rutaCertificado, string rutaKey, string rutaXSLT, string rutaCarpetaTemp, ICollection <DetalleTicket> productos = null) { try { ServicioCertificado _servicioCertificado = new ServicioCertificado(_logger); factura.NoCertificadoEmisor = _servicioCertificado.GetNumeroCertificado(ref error, rutaCertificado); if (String.IsNullOrEmpty(factura.NoCertificadoEmisor)) { return(false); } this.Certificado = _servicioCertificado.GetCertificado(rutaCarpetaTemp, rutaCertificado, factura.Sucursal.RutaCer); if (String.IsNullOrEmpty(this.Certificado)) { return(false); } GenerarXML(ref error, rutaGuardadoCFDI, factura); factura.CadenaOriginal = _servicioCertificado.GetCadenaOriginal(ref error, rutaGuardadoCFDI, rutaXSLT); if (String.IsNullOrEmpty(factura.CadenaOriginal)) { return(false); } this.SelloDigital = _servicioCertificado.GetSelloDigital(ref error, rutaKey, factura.Sucursal.ClavePrivada, factura.CadenaOriginal); if (String.IsNullOrEmpty(this.SelloDigital)) { return(false); } GenerarXML(ref error, rutaGuardadoCFDI, factura); return(true); } catch (Exception e) { GenerarFin(); _logger.EscribirError(e.ToString()); return(false); } }