/// <summary> /// PROFACT /// </summary> /// <param name="spathString"></param> /// <param name="sNombre_ArchivoTMP"></param> /// <param name="emisor_rfc"></param> /// <param name="serie"></param> /// <param name="folio"></param> /// <param name="idError"></param> /// <param name="Error"></param> /// <param name="uuid"></param> /// <param name="fechaTimbre"></param> /// <param name="xmlTimbrado"></param> /// <param name="Parametros"></param> /// <param name="sRutaCER"></param> /// <param name="sRutaKey"></param> /// <param name="sPWDKEYCER"></param> /// <returns></returns> public bool lfPROFACTCreaCFDI(string spathString, string sNombre_ArchivoTMP, string emisor_rfc, string serie, string folio, ref int idError, ref string Error, ref string uuid, ref DateTime fechaTimbre, ref string xmlTimbrado, string Parametros, string sRutaCER, string sRutaKey, string sPWDKEYCER) { throw new Exception("Test"); bool bandera = false; string usuarioIntegrador = "F751+m6fg1og+m1ujRDubw=="; xmlTimbrado = @spathString + "\\" + sNombre_ArchivoTMP + ".xml"; string comprobanteBase64 = Convert.ToBase64String(System.IO.File.ReadAllBytes(xmlTimbrado)); string idComprobante = string.Concat(emisor_rfc, "-", serie, "-", folio, "-", DateTime.Now.ToShortDateString()); ServicioProfact.Timbrado servicio = new ServicioProfact.Timbrado(); var resultados = servicio.TimbraCFDI(usuarioIntegrador, comprobanteBase64, idComprobante); string tipoExcepcion = resultados[0].ToString(); //Numero de error string numeroError = resultados[1].ToString(); //Descripcion del resultado string descripcion = resultados[2].ToString(); //Xml timbrado string xml = resultados[3].ToString(); //Codigo bidimensional //byte[] codigoBidimensional = (byte[])(resultados[4]); //Cadena timbre string cadenaTimbre = resultados[5].ToString(); if (numeroError == "3") { if (lfPROFACTCreaRegistroEmisor(sRutaCER, sRutaKey, sPWDKEYCER, emisor_rfc, usuarioIntegrador)) lfPROFACTCreaCFDI(spathString, sNombre_ArchivoTMP, emisor_rfc, serie, folio, ref idError, ref Error, ref uuid, ref fechaTimbre, ref xmlTimbrado, Parametros, sRutaCER, sRutaKey, sPWDKEYCER); BitacoraController.gfLogFacturaRegistroError("PROFACT", string.Concat("REGISTRO_EMISOR|", "-", emisor_rfc), Parametros); } if (numeroError == "0") { idError = int.Parse(numeroError); Error = descripcion; uuid = cadenaTimbre.Split('|')[3]; fechaTimbre = DateTime.Parse(cadenaTimbre.Split('|')[4]); xmlTimbrado = xml; return true; } else BitacoraController.gfLogFacturaRegistroError("PROFACT", string.Concat("NO TIMBRO|", "-", descripcion), Parametros); return bandera; }
/// <summary> /// /// </summary> /// <param name="sRutaCER"></param> /// <param name="sRutaKey"></param> /// <param name="sPWD"></param> /// <param name="sRFCemisor"></param> /// <param name="sUsuarioIntegrador"></param> /// <returns></returns> public bool lfPROFACTCreaRegistroEmisor(string sRutaCER, string sRutaKey, string sPWD, string sRFCemisor, string sUsuarioIntegrador) { bool bandera = false; string usuarioIntegrador = sUsuarioIntegrador; string rfcEmisor = sRFCemisor; string archivoCerBase64 = Convert.ToBase64String(System.IO.File.ReadAllBytes(@sRutaCER)); string archivoKeyBase64 = Convert.ToBase64String(System.IO.File.ReadAllBytes(@sRutaKey)); string contrasena = sPWD; ServicioProfact.Timbrado servicio = new ServicioProfact.Timbrado(); var resultados = servicio.RegistraEmisor(sUsuarioIntegrador, sRFCemisor, archivoCerBase64, archivoKeyBase64, sPWD); //Tipo de excepcion string tipoExcepcion = resultados[0].ToString(); //Numero de error string numeroError = resultados[1].ToString(); //Descripcion del resultado string descripcion = resultados[2].ToString(); //Xml no aplica en registro emisor string xml = resultados[3].ToString(); //Codigo bidimensional no aplica en registro emisor Bitmap codigoBidimensional = resultados[4] as Bitmap; //Cadena timbre no aplica en registro emisor string cadenaTimbre = resultados[5].ToString(); //Vefificamos que el resultado haya sido exitoso if (numeroError == "0") bandera = true; return bandera; }