Ejemplo n.º 1
0
        /// <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;
        }
Ejemplo n.º 2
0
        /// <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;
        }