public EntResultadoCancelacion CancelarComprobante(string emisorRFC, string uuid) { try { //Extraemos la configuración del archivo bool ambienteProductivo = ConfigurationManager.AppSettings.GetValues("ambienteProductivo")[0].ToBoolean(); string usuarioIntegrador = ConfigurationManager.AppSettings.GetValues("usuarioIntegrador")[0]; //Establecemos las credenciales para el permiso de conexión Conector conector = new Conector(ambienteProductivo); conector.EstableceCredenciales(usuarioIntegrador); //Cancelamos el comprobante a traves de una petición al PAC Profact.TimbraCFDI.ResultadoCancelacion resultadoCancelacion = conector.CancelaCFDI(emisorRFC, uuid); EntResultadoCancelacion resultado = new EntResultadoCancelacion() { Exitoso = resultadoCancelacion.Exitoso, Mensaje = resultadoCancelacion.Descripcion }; return(resultado); } catch (Exception ex) { throw ex.GetBaseException(); } }
private void btnCancelaCFDI_Click(object sender, EventArgs e) { //En este ejemplo se muestra como cancelar un comprobante xml, previamente timbrado //Inicializamos el conector el parámetro indica el ambiente en el que se utilizará //Fasle = Ambiente de pruebas //True = Ambiente de producción Conector conector = new Conector(false); //Establecemos las credenciales para el permiso de conexión //Ambiente de pruebas = mvpNUXmQfK8= //Ambiente de producción = Esta será asignado por el proveedor al salir a productivo conector.EstableceCredenciales("mvpNUXmQfK8="); //Rfc Emisor string rfcEmisor = txtRfcEmisorCancelacion.Text.Trim(); //Folio Fiscal - UUID string folioFiscal = txtFolioFiscalCancelacion.Text.Trim(); //Obtenemos el xml por medio del conector y guardamos resultado ResultadoCancelacion resultadoCancelacion; resultadoCancelacion = conector.CancelaCFDI(rfcEmisor, folioFiscal); //Verificamos el resultado if (resultadoCancelacion.Exitoso) { //El comprobante fue cancelado exitosamente MessageBox.Show("Cancelación exitosa " + resultadoCancelacion.Descripcion); } else { //No se pudo cancelar, mostramos respuesta MessageBox.Show(resultadoCancelacion.Descripcion); } }