Visual Basic.NET - Descarga Masiva XML SAT

   
Vista:
Imágen de perfil de Alan

Descarga Masiva XML SAT

Publicado por Alan (9 intervenciones) el 17/01/2015 22:58:39
Hola, el propósito de este foro es realizar un sistema de descarga masiva del SAT. Espero entre los que deseen cooperar llegar a un sistema funcional.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alan

Descarga Masiva XML SAT

Publicado por Alan (9 intervenciones) el 17/01/2015 23:49:29
Bien el programa estara en vb.net al formulario principal le agregaremos un webBrowser el cual direccionaremos a la siguiente pagina:

https://portalcfdi.facturaelectronica.sat.gob.mx/

Tendremos que tener una cuenta en el SAT para acceder ala pagina recomiendo entrar con el RFC es mas facil.

Una vez dentro y apodremos acceder a los controles de la pagina, lo que aremos es consultar un mes en comprobantes recibidos.

Una vez mostrados se llenara un grid con los registros el grid se llama, masivapg0 el cero va en incremento hasta un total aproximado de 33 paginas el cual nos da 500 registros maximo hay que tener cuidado con empresas que reciban mas de 500 facturas al mes se recomienda hacer la consulta por rango de semanas.

Bueno una vez teniendo nuestro grid lleno lo recorreremos con la siguiente instruccion:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Dim elementos As HtmlElementCollection
Try
    elementos = wb.Document.GetElementById("masivapg0).FirstChild.All
Catch ex As Exception
    'No se encontraron documentos salimos de la rutina
    
End Try

Dim cont As Integer = 0

'                    Este bucle se ejecutara por cada registro que encuentre en el grid

For Each elemento As HtmlElement In elementos
    
    'Aqui obtengo en valores los datos del registro como UUID, RFC etc,.
    If UCase(elemento.TagName) = "SPAN" Then
        cont = cont + 1

        If elemento.InnerText <> "" Then
            valores = valores & "'" & elemento.InnerText & "',"
        Else
            valores = valores & "'',"
        End If
 
        If cont = 12 Then
            ' Aqui ejecutaremos el codigo par ala descarga del registro recien leido
 
 
            'Inicializamos los valores y el contador para proxima inserccion
            cont = 0
            valores = ""
        End If
    End If
Next

Bueno hasta aqui ya podemos recorrer nuestro grid ahora viene lo interesante cada vez que damos clic al descargar un xml se manda llamar este script de la siguiente manera:

onclick="return AccionCfdi('RecuperaCfdi.aspx?Datos=J/b0WEwPdD60SrK0mxtaLlWc1tnJO88baWlgqL9UhesWUqtfVgUIpKi+xjg10Zcgzcr3+LHS0mCykvmq3mItECUCFGuoxwpt+JvpVpC7x+iGDMC47iVSafOCxwkPzy8qsgUFEfpVMIfp9TqvhMD5cC5Hq1huMfsrRT8ZxL8U8EeM4PvT9MIB4srS2HMlAKmzC4YrGU2TZT7qAh9ApfWR6HrmM8bfglZNgSTCMCnP+w+2JKtJYSlQTb2/W7eTflPTWykFF9upCOGwJ7E7S5IZ8OlpIxSYlG78vUe57VOmSmR4asZ8rgJwBwoi//2WJOYwjANZVzCoJjVnvDt28WMO3CkUEbcbUJUV+frmsMlADmwTBAaJMkBk4r1V08X0o7iyreQbnpR0GS2rZsXsxsvZt5mL0ohlTJiTLZypJTUJEvjSskD9her3fpOPm/yJz9sEctUY9iH8kSqFOT1sGMJvGyOtnHdpP0FE+P1Mo=','Recuperacion');"

Si nos fijamos se manda llamar un script con dos parametros el script es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function AccionCfdi(blobUri, argumento) {
    if (rfcvalido) {
        MantieneSesion();
 
        var event = window.event;
        var opciones = "";
        if (argumento == "Detalle") {
            opciones = "width=5,height=5,scrollbars=yes,menubar=no,status=no,directories=no,location=no,toolbar=no,resizable=yes,titlebar=no";
            window.open(blobUri, "DetalleCfdi", opciones);
        }
        else if (argumento == "Recuperacion") {
            opciones = "width=5,height=5,scrollbars=yes,menubar=no,status=no,directories=no,location=no,toolbar=no,resizable=yes,titlebar=no";
            window.open(blobUri, "RecuperacionCfdi", opciones);
        }
        else if (argumento == "Acuse") {
            opciones = "width=5,height=5,scrollbars=yes,menubar=no,status=no,directories=no,location=no,toolbar=no,resizable=yes,titlebar=no";
            window.open(blobUri, "AcuseCancelacion", opciones);
        }
        if (event.stopstopPropagation) {
            event.stopPropagation();
        }
        else {
            event.cancelBubble = true;
        }
    }
}

Bueno en resumen lo que nos faltaria es mandar llamar este script desde nuestro bucle para descargar de forma masiva nuestros xml.

Cabe hacer mension que desde el webBrowser si se manda llamar el evento onClic de la imagen el webBrowser hace la descarga pero sale un mansaje de donde queremos guardar el archivo que en lugar de ayudar estorba ya que lo que queremos lograr es una descarga masiva y no estar escogiendo donde guardar los archivos descargados.

Lo que eh investigado que debemos de hacer es lo siguiente:

1.- Crear una instancia a la clase webClient
2.- Pasarle las cookies del webBrowser esto para la atuhtenticacion
3..- Usar el metodo DownloadFile del webClient

Este metodo nos dejara escojer la carpeta a la cual descargar nuestros XML sin necesidad de que salga la pantalla de descarga del Web Browser.

Espero con esta informacion sea suficiente para continuar con el programa.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alan

Descarga Masiva XML SAT

Publicado por Alan (9 intervenciones) el 20/01/2015 18:13:00
Como se daran cuent el SCRIPT manda llamar otra pagina que es la que gestiona la descarga ahora bien si nos brincamos el script y nos dirigimos directo la pagina con un codigo como este:

wb es nuestro WebBrowser

wb.Navigate("https://portalcfdi.facturaelectronica.sat.gob.mx/RecuperaCfdi.aspx?Datos=Gfbc5GblCcYyQKChyihHBlMtJ0j6BrCqf/RJGIW8mvtGZSaSPAkKARJbNgUEoV6O06mN/8zdpIi1X5k1mH7Ry6EzJY5TpAFtcapneqaFhZ7ndP6IsePIPiTESk/0vmvIfoqigtD3uH4VWxtVHcJo8oBmcKuzXnnEYGMpmUJyEyjDBu0engnRaBh4xX33v4gSAusvNzA6fJv7S4y2jFwqQZ0pVN6EU0YNBWyDeV81KHDWdyalrUycnnU5GmCM0Wx6ljSJGK4R7JMHAWgNePVATrG6FDg2xhJKBeAFvze1iR6ZujSv4TsCpwk+4SmY6WnH5Q7eSzHzPX0rHhouYGezaNnH6RulcvSoYH0VryIA2BcXJ6Q/uu+q+W62V26ALpRU5nqG5nQpEUeLI2q7ZP/Txt+vsGPqZIaa4p605ACLMFBnetTOZ5djRSoWBU/fbYQQe+Bd53jtMBZ/TWQyh3MbsXR2cE98y2xo9dGQFfouGq1")


La descarga se ejecuta correctamente, pero el web browser muestra la famosa pantalla de guardar archivo y nos pide la ruta donde deseamos descargarlo.

Si hay alguna manera de evitar esta ventana y si se ejecuta este código desde el bucle se podria obtener la descarga masiva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Miguel (353 intervenciones) el 20/01/2015 19:33:59
Con DownloadFile me parece que puedes hacerlo...

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alan

Descarga Masiva XML SAT

Publicado por Alan (9 intervenciones) el 20/01/2015 20:03:06
Gracias por tu respuesta y es correcto usando de la clase WebClient el metodo DownloadFile, sin embargo no me descarga el xml me descarga un xml con codigo de la URL:


Este es el codigo usado:

1
2
3
4
5
6
7
8
9
10
Dim URI As String = "https://portalcfdi.facturaelectronica.sat.gob.mx/RecuperaCfdi.aspx?......"
 
Dim wc As New WebClient
 
'Pasamos las cookies del webBrowser para mantener la session.
 
wc.Headers.Add(HttpRequestHeader.Cookie, wb.Document.Cookie)
 
'Descargamos el archivo
wc.DownloadFile(URI, "C:\test\archivo.xml")

Y esto es lo que descarga:

1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
    <head>
        <META HTTP-EQUIV="expires" CONTENT="0">
    </head>
    <body>
        <form method="POST" enctype="application/x-www-form-urlencoded" action="/nidp/wsfed/ep?id=SATx509Custom&sid=0&option=credential&sid=0"></form>
        <script language="JavaScript">
            <!--
                document.forms[0].submit();
            -->
        </script>
    </body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Javier Cabanillas (1 intervención) el 25/01/2015 02:34:06
Hola, ¿has logrado solucionar este último problema?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alan

Descarga Masiva XML SAT

Publicado por Alan (9 intervenciones) el 26/01/2015 16:44:53
Hola aun no ahora estoy intentando con el HttWebRequest, y segun lo que sigo investigando el problema esta en el traspaso de cookies .

Si tengo avance les informo.

Saludos y gracias por preguntar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Mariana (1 intervención) el 09/07/2016 17:51:19
Mi programa está trabajando desde hace rato para la descarga masiva de xml's desde el portal del SAT. Mi problema es que lo estoy tratando de instalar en una pc en particular y no me funciona.

He podido darle seguimiento a las rutinas y se queda 'congelado' en cuanto lee la siguiente linea:

1
wc1.DownloadFile(imgUrl, NuevoDirTemp & j & ".xml")

Aquí está el código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
wc1.Headers.Add(HttpRequestHeader.Cookie, GetGlobalCookies(wbSATCFDI.Document.Url.ToString))
For Each htmlElement In htmlElementCollection
	imgUrl = htmlElement.GetAttribute("id").ToString
	If imgUrl = "BtnDescarga" Then
		totch = htmlElement.OuterHtml.Length
		imgUrl = htmlElement.OuterHtml.Replace(Chr(34), "")
		strIni = InStr(imgUrl, "?Datos=")
		strFin = InStr(imgUrl, "=','Recuperacion');")
		imgUrl = imgUrl.Substring(strIni, strFin - strIni)
		imgUrl = "https://portalcfdi.facturaelectronica.sat.gob.mx/RecuperaCfdi.aspx?" & imgUrl
		wc1.DownloadFile(imgUrl, NuevoDirTemp & j & ".xml")
		countDescarRFC = countDescarRFC + 1
		j = j + 1
	End If
Next
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Alejandro Guia (4 intervenciones) el 29/01/2015 06:09:31
Hola estoy tratando de hacer igual un programa para leer informacion masiva de XML del sat y tengo el mismo problema, quiza les agrego un par de lineas compartiendo para este efecto el llenado y ejectucion del submit:

1
2
3
4
webBrowser1.Document.GetElementById("Ecom_User_ID").InnerText = rfc.Text;
webBrowser1.Document.GetElementById("Ecom_Password").InnerText = pwds.Text;
HtmlDocument document = webBrowser1.Document;
document.GetElementById("submit").InvokeMember("Click");

con estas lineas podemos de forma automatica hacer el login a la pagina, solo en los textbox de rfc el rfc de la cuenta que requerimos entrar y en pwds el password que dimos en el SAT, el codigo esta en C# y es muy simple pasarlo a VB.

en el codigo antes escrito
en la linea
elementos = wb.Document.GetElementById("masivapg0).FirstChild.All
no existe el "masivapg0" el que encontre fue:
elementos = wb.Document.GetElementById("DivContenedor").FirstChild.All
que me imagino es el correcto
aqui les escribo mi codigo por si ayuda en algo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
elementos = wb.Document.GetElementById("DivContenedor").FirstChild.All;
    string dato, valores = "", URI = "";
    int cont = 0;
    foreach (HtmlElement el in elementos)
    {
 
        if (el.TagName.ToUpper() == "SPAN")
        {
            cont++;
            if (el.InnerText != "")
                valores = valores + "'" + el.InnerText + "',";
            else
                valores = valores + "'',";
            if (cont == 12) // Aqui ejecutaremos el codigo par ala descarga del registro recien leido 
            {
 
                URI = "https://portalcfdi.facturaelectronica.sat.gob.mx/RecuperaCfdi.aspx?";
                //URI = wb.Url.ToString();
                WebClient wc = new WebClient();
                wc.Headers.Add(HttpRequestHeader.Cookie, wb.Document.Cookie); //Descargamos el archivo 
                wc.DownloadFile(URI, directorio);
                cont = 0;
                valores = "";
            }
        }
    }
 
}
    catch
{
//    MessageBox.Show("no hay datos");
//    return;
}

pero no puedo recorrer el grid y la informacion que me almacena es:

1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
    <head>
        <META HTTP-EQUIV="expires" CONTENT="0">
    </head>
    <body>
        <form method="POST" enctype="application/x-www-form-urlencoded" action="/nidp/wsfed/ep?id=SATx509Custom&sid=0&option=credential&sid=0"></form>
        <script language="JavaScript">
            <!--
                document.forms[0].submit();
            -->
        </script>
    </body>
</html>

si alguien tiene mas ideas?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alan

Descarga Masiva XML SAT

Publicado por Alan (9 intervenciones) el 29/01/2015 06:34:12
Que tal Alejandro tal vez no te recorre el grid porque el DivContenedor es un elemento anterior al masivapg0 de las etiquetas HTML que yo recorro ami si me recorre el grid yo lo encontre inspeccionando el elmento dentro del HTML.

Y tienes razón si guardas el código fuente de la pagina no te aparece el masivepg0 este se genera en tiempo de ejecución.

Según sigo investigando ese resultado que nos descarga es porque al pasarle las cookies al webClient no se estan pasando todas solo algunas por lo que hay que intentar con la libreria:

InternetGetCookieEx

De esta manera descartamos que sea la authenticacion por la cual no se descarge el xml y solo nos descargue eso.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Alejandro Guia (4 intervenciones) el 30/01/2015 05:55:47
Hola Alan, avance un poco mas pero no logro que me traiga el xml, me manda un texto de error que no puede bajarlo inclui una clase donde trae los cookies de la pagina te describo la clase:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace WindowsFormsApplication1
{
    internal static class CookieReader
    {
        private const int INTERNET_COOKIE_HTTPONLY = 0x00002000;
 
        [System.Runtime.InteropServices.DllImport("wininet.dll", SetLastError = true)]
 
 
 
        private static extern bool InternetGetCookieEx(
            string url,
            string cookieName,
            StringBuilder cookieData,
            ref int size,
            int flags,
            IntPtr pReserved);
 
 
        public static string GetCookie(string url)
        {
            int size = 512;
            StringBuilder sb = new StringBuilder(size);
            if (!InternetGetCookieEx(url, null, sb, ref size, INTERNET_COOKIE_HTTPONLY, IntPtr.Zero))
            {
                if (size < 0)
                {
                    return null;
                }
                sb = new StringBuilder(size);
                if (!InternetGetCookieEx(url, null, sb, ref size, INTERNET_COOKIE_HTTPONLY, IntPtr.Zero))
                {
                    return null;
                }
            }
            return sb.ToString();
        }
    }
    class Class1
    {
    }
}

y te pongo la rutina que lo llama
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
HtmlElementCollection elementos;
try
{
 
    elementos = wb.Document.GetElementById("masivapg0").FirstChild.All;
    string valores = "", URI = "";
    int cont = 0;
    string miuuid = "";
    WebClient wc;
    int conteos = 1;
    foreach (HtmlElement el in elementos)
    {
        total.Text=el.Children.Count.ToString();
        string traecookie;
        if (el.TagName.ToUpper() == "SPAN")
        {
            cont++;
            if (el.InnerText != "")
                valores = valores + "'" + el.InnerText + "',";
            else
                valores = valores + "'',";
            if (cont == 12)
            {
 
                miuuid = valores.Substring(1, 36) + ".xml"; // trae el nombre del xml
                URI = "https://portalcfdi.facturaelectronica.sat.gob.mx/RecuperaCfdi.aspx?";
                wc = new WebClient();
                traecookie = CookieReader.GetCookie(URI); // trae los cookies que usa la pagina
                wc.Headers.Add(HttpRequestHeader.Cookie,traecookie); // aplicamos los cookies
                wc.DownloadFile(URI, directorio+"\\"+miuuid); // bajamos el file
                cont = 0;
                valores = "";
                conteo.Text = conteos.ToString();
                conteos++;
            }
        }
    }
    MessageBox.Show("Proceso finalizado");
}
catch (Exception ex)
{
//    MessageBox.Show("no hay datos");
//    return;
}

con ello se graba la primera pagina pero el contenido no es el xml ya que hay un error en la comunicacion. si tienes un resultado mejor me comentas de favor.
saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alan

Descarga Masiva XML SAT

Publicado por Alan (9 intervenciones) el 30/01/2015 17:25:40
Que tal Alejandro claro que si, sabes solo un comentario en el codigo no se aprecia si le estas mandando el parametro Datos al pagina (URI):

Esta una vez armada con los datos debe de quedar como la siguiente:

URI="https://portalcfdi.facturaelectronica.sat.gob.mx/RecuperaCfdi.aspx?Datos=Gfbc5GblCcYyQKChyihHBlMtJ0j6B..."

Ahora bien la variable Datos se carga del elemento image (el mundo) de la pagina del SAT lo puedes inspeccionar el elemento para que veas como se manda exactamente.

Esos datos me imagino que es el UUID pero con un tipo de digestion MD5 o algo parecido pero no importa solo pon esos datos asi como salen e intenta nuevamente.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Marcel rhcpslash114@hotmail.com (2 intervenciones) el 03/02/2015 12:35:37
La solucion esta en la galletita como dice Alejandro, lee esta pagina y te ayudara:

http://www.codeproject.com/Tips/687705/Passing-Cookie-Value-from-webbr
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo (24 intervenciones) el 19/02/2015 01:37:26
Les dejo la funcion para la cookie en VB.net

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<DllImport("wininet.dll", CharSet:=CharSet.Auto, SetLastError:=True)> _
    Private Shared Function InternetGetCookieEx(ByVal pchURL As String, ByVal pchCookieName _
                                                As String, ByVal pchCookieData As StringBuilder, _
                                                ByRef pcchCookieData As UInteger, ByVal dwFlags As Integer, _
                                                ByVal lpReserved As IntPtr) As Boolean
    End Function
    Const INTERNET_COOKIE_HTTPONLY As Integer = &H2000
 
    Public Shared Function GetGlobalCookies(ByVal uri As String) As String
        Dim datasize As UInteger = CInt(strCache)
        'Dim datasize As UInteger = 8192
        Dim cookieData As New StringBuilder(CInt(datasize))
        If InternetGetCookieEx(uri, Nothing, cookieData, datasize, INTERNET_COOKIE_HTTPONLY, IntPtr.Zero) AndAlso cookieData.Length > 0 Then
            Return cookieData.ToString()
        Else
            Return Nothing
        End If
    End Function

Ahora el problema que tengo es que en algunos equipos si me funciona y en otros no, alguna ayuda el error que me marca es Error en el servidor remoto: (500) Error interno del servidor.

En mi equipo de desarrollo funciona ok (Win XP Profesional SP3), lo instalo en otro equipo con Win 7 1Gb de ram y funciona OK, pero lo instalo en otros 2 equipos con Win7 4Gb de ram y me marca el error que comento.

Lo unico diferente que puedo observar es el tamaño de la memoria.

Algo mas que puedo observar es la version de IE en donde si funciona esta la 8 y donde no la 9

Alguna ayuda????
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Alan

Descarga Masiva XML SAT

Publicado por Alan (9 intervenciones) el 19/02/2015 02:06:01
Hola Gerardo gracias por comentar, posiblemente con las caracteristicas que comentas el problema en si puede ser que la libreria solo funcione con equipos de 32 bits y en equipos de 64 se tenga que hacer alguna configuración especial dejame pruebo y te comento.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por gerardo (24 intervenciones) el 19/02/2015 19:22:01
Hola a todos

Definitivamente es Wininet.dll solo me funciona con la versión 8.xx

Instale el internet explorer 9 en una de las maquinas que si funcionaba y o sorpresa, dejo de funcionar, este instala la versión 9.xx de wininet.dll.

Instale el internet explorer 11 y tambine dejo de funcionar instala wininet.dll 11.xx

Intente registrando wininet.dll 8.xx en el directorio de mi aplicación, pero no lee la cookie, me manda lo que ustedes mencionan en posts anteriores.

1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
    <head>
        <META HTTP-EQUIV="expires" CONTENT="0">
    </head>
    <body>
        <form method="POST" enctype="application/x-www-form-urlencoded" action="/nidp/wsfed/ep?id=SATx509Custom&sid=0&option=credential&sid=0"></form>
        <script language="JavaScript">
            <!--
                document.forms[0].submit();
            -->
        </script>
    </body>
</html>

Con wininet.dll 9.xx o 11.xx si lee la cookie pero al momento que la envía al WS no la reconice y regresa el siguiente error:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head id="ctl00_Head1"><title>
 
</title><meta http-equiv="cache-control" content="no-cache" /><link href="Styles/sat.css" rel="stylesheet" type="text/css" /><link rel="shortcut icon" href="Images/favicon.ico" type="image/vnd.microsoft.icon" /><link rel="icon" href="Images/favicon.ico" type="image/vnd.microsoft.icon" />
</head>
<body>
    <form method="post" action="Error.aspx?aspxerrorpath=%2f+pointer%3b+onclick%3dreturn+AccionCfdi(%27RecuperaCfdi.aspx" id="aspnetForm">
<input type="hidden" name="__CSRFTOKEN" id="__CSRFTOKEN" value="/wEFJDFiNzE0ZDMwLWIyMmQtNGRhYy04Y2ZjLTg3MjNmZTg4MjMyMg==" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="ECKLTAJkzlxA8YUQOs4wKxIJjVCpEMPDs4TNWEegmOUdE5vkuoBk8HadM6EWh9c62YenEpjGq7WZSK1XNiJmOAHXdlMZckTSJ7IlfGrYJgxtqsAz8vXvlplpMVpiTgw/BHyFvx1uQLYZtU8kqUTCSn9uOFc=" />
 
 
<script src="/ScriptResource.axd?d=yZa9Z0Sj-Jlwg86i3S3WAHqRAai7UY3B7tiaPWTpKX0rT67QDO6fvnmKmhtlp1xeUd5vP5UK18fz4AJ84m9CShODTRkCI-7rCSuwqFQ_DIHzSADZJSukr-0989iA4PyNvA7oOnoxqkwoTZbnuS99A3n_XiUthm4IsdCar6CEpaHwkrYt0&amp;t=ffffffffb53e74b8" type="text/javascript"></script>
<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="AB827D4F" />
<input type="hidden" name="__VIEWSTATEENCRYPTED" id="__VIEWSTATEENCRYPTED" value="" />
 
    <div id="cuerpo_principal">
        <div id="encabezado">
            <div id="firma_busquedax">
                <img id="ctl00_PnlEncabezado" src="Images/headerRojo.jpg" height="70" width="970" />
            </div>
            <div id="encabezadoPortal">
            <table style="width: 960px; background-color: #EEEEEE; text-align: right; border-collapse: collapse; border-color: #EEEEEE" cellspacing="0" cellpadding="0">
                <tr>
                    <td style="width: 320px"></td>
                    <td style="width: 320px; font-size: 14px; text-align: center" rowspan="2">Factura Electrónica</td>
                    <td style="width: 320px; font-size: 10px"></td>
                </tr>
                <tr>
                    <td style="width: 320px; font-size: 10px"></td>
                    <td style="width: 320px; font-size: 10px"></td>
                </tr>
            </table>
            </div>
        </div>
 
        <div id="cuerpo">
 
<div style="width:100%; text-align:center; margin-top:50px" >
<h1>Ha ocurrido un error al procesar su &uacute;ltima acci&oacute;n</h1>
<p>Si reporta este error, favor de indicar la siguiente referencia: 0a355597-1923-4cd8-9929-a348d3541e5f</p>
</div>
 
        </div>
    </div>
    <div class="footer">
 
    </div>
    </form>
</body>
</html>

Alguien ya soluciono el problema o ya le esta funcionando la aplicación, por favor compartan.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por pedro (1 intervención) el 21/02/2015 00:40:04
platico mi experiencia por si le sirve a alguien, para el ie9, dentro de codigo para extraer el contenido del atributo "onclick" ya no existe de manera directa, me imagino que esta encapsulado, yo no no lo encontre :S pero existe el atributo "OuterHtml" reemplacen lo que no sirve y con eso ya funciona.


saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por gerardo (24 intervenciones) el 22/02/2015 03:11:23
Hola a Todos

Resuelto mi problema

Internet explorer 9 y 11 agrega este atributo

style="cursor: pointer;"

Y como yo hacia un

cadena.Substring(valor inicial fijo, largo variable)

Pues no tenia bien la cadena y por eso el servidor del SAT me respondia con un error

Ahora localizo el inicio que puede ser variable y listo

Saludos a Todos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por gerardo (24 intervenciones) el 24/02/2015 02:08:27
Hola a todos

Alguien sabe como descargar mas de 500 archivos, ya que en en los grid que forma el filtro, solo muestra hasta 500 comprobantes y tengo un caso en que son 1200 documentos por mes.

A ver si alguien tiene la solucion.

Saludos a todos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Fernando (8 intervenciones) el 24/02/2015 23:58:31
Gerardo, gracias por la funcion, la he querido incorporar y aun no me funciona, el codigo es el siguiente:

Dim wc As New WebClient

wc.Headers.Add(HttpRequestHeader.Cookie, GetGlobalCookies("https://portalcfdi.facturaelectronica.sat.gob.mx"))
wc.DownloadFile(New Uri("https://portalcfdi.facturaelectronica.sat.gob.mx/" & vecxml(i).urlblob), strfile)


podrias ayudarme a implementarla por favor.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por gerardo (24 intervenciones) el 25/02/2015 19:52:17
Aqui la tienes

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Dim htmlDocument As HtmlDocument = Me.WebBrowser1.Document
Dim prueba As String = htmlDocument.GetType.ToString
Dim htmlElementCollection As HtmlElementCollection = htmlDocument.Images
Dim cadIni, CadFin As Integer
For Each htmlElement As HtmlElement In htmlElementCollection
Dim imgUrl As String = htmlElement.GetAttribute("id")
If imgUrl = "BtnDescarga" Then
imgUrl = Replace(htmlElement.OuterHtml, Chr(34), "")
 
'En estads dos variables, localizas la cadena del comproBante
cadIni = InStr(imgUrl, "dato=?")
cadFin = InStr(imgUrl, "','Recuperacion')")
 
imgUrl = imgUrl.Substring(cadIni, fadFin - cadIni)
imgUrl = "https://portalcfdi.facturaelectronica.sat.gob.mx/" & imgUrl
 
'Guardo la cadena en un listBox oculto en el formulario del WebBrowser
ListBox1.Items.Add(imgUrl)
End If
Next
 
Dim URI, archivo As String
Dim wc As New WebClient
wc.Headers.Add(HttpRequestHeader.Cookie, GetGlobalCookies(WebBrowser1.Document.Url.ToString))
 
'recorro el listBox y voy descargando uno por uno
For i = 0 To ListBox1.Items.Count - 1
URI = ListBox1.Items.Item(i).ToString.Trim
wc.DownloadFile(URI, ruta a guardar)
next
 
 
<DllImport("wininet.dll", CharSet:=CharSet.Auto, SetLastError:=True, PreserveSig:=True)> _
Private Shared Function InternetGetCookieEx(ByVal pchURL As String, ByVal pchCookieName _
As String, ByVal pchCookieData As StringBuilder, _
ByRef pcchCookieData As UInteger, ByVal dwFlags As Integer, _
ByVal lpReserved As IntPtr) As Boolean
End Function
 
Const INTERNET_COOKIE_HTTPONLY As Integer = &H2000
 
Public Shared Function GetGlobalCookies(ByVal uri As String) As String
'Utilizo strCache porque en algunos casos no me funciona con 4096
'Dim datasize As UInteger = CInt(strCache)
Dim datasize As UInteger = 8192
Dim cookieData As New StringBuilder(CInt(datasize))
If InternetGetCookieEx(uri, Nothing, cookieData, datasize, INTERNET_COOKIE_HTTPONLY, IntPtr.Zero) And Also cookieData.Length > 0 Then
Return cookieData.ToString()
Else
Return Nothing
End If
End Function


Si te funciona, Comentame si te funciona

Saludos
P.D. me debes una elodia bien friolenta, jajajajajaja
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo (24 intervenciones) el 25/02/2015 20:30:48
Lo de la elodia bien friolenta te lo dejo a tu consideracion jajaja

Osea una chela bien fria

Por cierto la linea de codigo siguiente, no le hagas caso no sirve para nada

Dim prueba As String = htmlDocument.GetType.ToString

en esta variable
cadIni = InStr(imgUrl, "dato=?")

es
cadIni = InStr(imgUrl, "?dato=")

localizas esa porcion del texto, pero tienes que enviar desde donde dice
"RecuperaCfdi.aspx?Dato=........" hasta donde termina el parametro antes de la palabra "Recuperacion"

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Fernando (8 intervenciones) el 25/02/2015 21:45:57
Gracias Gerardo, ya funcionó todo OK.


De donde eres?, pasame tu direccion y c.p. con gusto te hago llegar un pequeño presente.


Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por informatica-soporte (2 intervenciones) el 26/02/2015 15:06:19
Pues yo buscando esto encontré un complemento, que es el de abrir los archivos xml a pdf, aunque por ahora solo es uno a uno puedo mandarlo a llamar desde linea de comandos las veces que quiera: http://www.taringa.net/posts/economia-negocios/18512851/Como-descargar-XML-y-conversion-MASIVA-a-PDF-SAT.html de este enlace me fui a uno que manda a el generador. Espero les resuelva uno que otro detalle.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo (24 intervenciones) el 26/02/2015 15:34:00
Gracias Informatica por el aporte

Tambien considero que dentro del proyecto tenemos que hacer la parte de la generacion de la representacion impresa en PDF el detalle creo que esta en el CBB.

Por si alguien desea colaborar, los datos que lleva el CBB son los mismos que se envian para hacer la peticion al WS del SAT.

rfcEmisor
rfcReceptor
importe
UUID

Gracias Fernando creo que lo mejor es compartir, te comento no soy desarrollador profesional pero si un apasionado de la informatica y el desarrollo, pero a lo largo de mi vida me he topado con gente que se lleva conocimientos a la tumba (esto de la tumba en sentido figurado), y que no son capases de compartir mas sin embargo tambien he conocido mucha gente que si le gusta compartir y pues como a mi me han compartido, me gusta compartir algo de lo poco que se (snif snif, jajaja).

Al final del camino el sol sale para todos.

Te dejo mi correo por aquello de la elodia jajaja

computer_si@prodigy.net.mx

Y pues a darle que es mole de olla con la representacion impresa

Buen dia
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alan

Descarga Masiva XML SAT

Publicado por Alan (9 intervenciones) el 26/02/2015 18:27:39
Gracias por Comentar Generado y efectivamente comparto la misma idea que tu sobre el compartir, si inicie este foro fue por lo mismo porque había aplicaciones que ya lo hacían pero no decían el como y gracias a tus aportaciones y los comentarios de los interesados ya tenemos esta aplicacion.

Sobre la impresión del PDF es importante mencionar que hay dos tipos
1.- Cuando haces la factura en el mismo SAT
2.- Cuando timbras con un pac tu factura.

En el caso uno si sale la factura completa con el codigo bidimencional, pero en el caso dos solo sale la informacion basica del xml al darle click en ver detalle.

Yo hice un hibrido entre el completo y el basico en resumen sale un pdf como una factura sin el codigo bidimencional.

Para esto hay que usar crystal reports en el origen de datos seleccionar cualquier xml.
Despues arrastras los controles que te interesen y armas tu documento pdf.

Al fina para imprimir solo cambias el origen de datos hacia el xml que quieres que cargue la información y listo.

Este seria el codigo .

Dim cr As New CrystalDecisions.CrystalReports.Engine.ReportDocument
Dim PathReport As String = Server.MapPath("crCFDI.rpt")

If IO.File.Exists(PathReport) Then
cr.Load(PathReport, CrystalDecisions.Shared.OpenReportMethod.OpenReportByDefault)
End If



Dim ds As New Data.DataSet
ds.ReadXml("cfdi.xml")


cr.SetDataSource(ds)

cr.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, "reporte")

Ahora que si quieres hacer un CFDi con todo y su codigo bidimencional esta es la libreria que debieras de usar.

ThoughtWorks.QRCode

Saludos cordiales
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo (24 intervenciones) el 27/02/2015 01:18:57
Gracias Alan

Solo dos cosas

En mi equipo tengo instalado el VS 2010, pero no he instalado el CR, segun tengo entendido se tiene que descargar no se de donde e instalarlo.

EL otro punto es que tambien tenemos que encontrar la forma que nos permita descargar cuando son mas de 500 ya que solo permite descargar coimo maximo 500, pero e visto por ahi los programas que si te permiten mas de 500.

Ya baje el codigo de la pagina antes de hacer la peticion y despues que la hace los dos en tiempo de ejecucion, pero no encuentro o no entiendo en que punto le puedes quitar la limitacion de los 500.

Si alguien sabe, por favor comenten.

Hace calor una chela jajajajajaja
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo (24 intervenciones) el 05/03/2015 18:18:53
Buenas a todos

Alguien ya encontro la forma de poder descarar mas de 500 xml

Help

Saludos GRC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por sms salvador_mendieta@hotmail.com (7 intervenciones) el 05/03/2015 20:50:07
es posible que me puedas enviar tu código correcto , y con gusto también te envió un presente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo computer_si@prodigy.net.mx (24 intervenciones) el 06/03/2015 06:04:56
Hola Salvador

El codigo esta publicado, que necesitas en concreto ???

Saludos GRC

P.D. Nadie me ha enviado un presente, ni tan siquiera una chela, jajajaja.
mandenme un correo y les envio mi direccion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por sms salvador_mendieta@hotmail.com (7 intervenciones) el 07/03/2015 03:14:42
te envio todo tu codigo y me marca un error cuando lo ejecuto en esta linea:
Dim htmlElementCollection As HtmlElementCollection = htmlDocument.Images

object reference not set to an of an object


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Imports System.Text
Imports System.Net
Imports System.IO
Imports System.Runtime.InteropServices
 
Public Class Form1
 
    Private Sub BtnDescarga_Click(sender As Object, e As EventArgs) Handles BtnDescarga.Click
        Dim htmlDocument As HtmlDocument = WebBrowser1.Document
 
        Try
            Dim htmlElementCollection As HtmlElementCollection = htmlDocument.Images
 
 
 
 
        Dim ImagesFound As Integer
 
        For Each htmlElement As HtmlElement In HtmlElementCollection
            Dim imgUrl As String = htmlElement.GetAttribute("id")
            If imgUrl = "BtnDescarga" Then
                imgUrl = Replace(htmlElement.OuterHtml, Chr(34), "")
                ImagesFound = InStr(imgUrl, "','Recuperacion')")
                imgUrl = imgUrl.Substring(103, ImagesFound - 104)
                imgUrl = "https://portalcfdi.facturaelectronica.sat.gob.mx/" & imgUrl
                ListBox1.Items.Add(imgUrl)
            End If
        Next
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
        Dim URI, archivo As String
        Dim wc As New WebClient
 
        wc.Headers.Add(HttpRequestHeader.Cookie, GetGlobalCookies(WebBrowser1.Document.Url.ToString))
 
        For i = 0 To ListBox1.Items.Count - 1
            URI = ListBox1.Items.Item(i).ToString.Trim
            wc.DownloadFile(URI, "c:\HU")
        Next
 
    End Sub
 
    Const INTERNET_COOKIE_HTTPONLY As Integer = &H2000
 
    Public Shared Function GetGlobalCookies(ByVal uri As String) As String
        'Dim datasize As UInteger = CInt(strCache)
        Dim datasize As UInteger = 8192
        Dim cookieData As New StringBuilder(CInt(datasize))
        If InternetGetCookieEx(uri, Nothing, cookieData, datasize, INTERNET_COOKIE_HTTPONLY, IntPtr.Zero) AndAlso cookieData.Length > 0 Then
            'Return cookieData.ToString().Replace(";"c, ","c)
            Return cookieData.ToString()
        Else
            Return Nothing
        End If
    End Function
 
    <DllImport("wininet.dll", CharSet:=CharSet.Auto, SetLastError:=True, PreserveSig:=True)> _
    Private Shared Function InternetGetCookieEx(ByVal pchURL As String, ByVal pchCookieName _
                                                As String, ByVal pchCookieData As StringBuilder, _
                                                ByRef pcchCookieData As UInteger, ByVal dwFlags As Integer, _
                                                ByVal lpReserved As IntPtr) As Boolean
    End Function
 
End Class
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por sms salvador_mendieta@hotmail.com (7 intervenciones) el 07/03/2015 04:58:58
una pregunta en webBrowser1 que url le asignas por primera vez

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
'En estads dos variables, localizas la cadena del comproBante 
cadIni = InStr(imgUrl, "dato=?")   a qui no entiendo
cadFin = InStr(imgUrl, "','Recuperacion')")  a qui no entiendo
 
Dim htmlDocument As HtmlDocument = WebBrowser1.Document
Dim htmlElementCollection As HtmlElementCollection = htmlDocument.Images
Dim ImagesFound As Integer
 
For Each htmlElement As HtmlElement In htmlElementCollection
    Dim imgUrl As String = htmlElement.GetAttribute("id")
    If imgUrl = "BtnDescarga" Then
        imgUrl = Replace(htmlElement.OuterHtml, Chr(34), "")
        ImagesFound = InStr(imgUrl, "','Recuperacion')")
        imgUrl = imgUrl.Substring(103, ImagesFound - 104)
        imgUrl = "https://portalcfdi.facturaelectronica.sat.gob.mx/" & imgUrl
        ListBox1.Items.Add(imgUrl)
    End If
Next
 
 
'En estads dos variables, localizas la cadena del comproBante
cadIni = InStr(imgUrl, "dato=?")
cadFin = InStr(imgUrl, "','Recuperacion')")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Giovanni Bautista (1 intervención) el 09/03/2015 20:11:45
Que tal, disculpen en esta linea la parte de "And Also" me manda error de que no se encuentra declarado, alguien me podria decir que es o a que se refiere also por favor

If InternetGetCookieEx(uri, Nothing, cookieData, datasize, INTERNET_COOKIE_HTTPONLY, IntPtr.Zero) And Also cookieData.Length > 0 Then
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por gerardo (24 intervenciones) el 09/03/2015 21:47:23
Buenas tardes SAlvador

Puedes poner la misma con que inicias la cadena

https://portalcfdi.facturaelectronica.sat.gob.mx

Por otro lado el error que te marca en

Dim htmlElementCollection As HtmlElementCollection = htmlDocument.Images


Tienes que hacer el Import de la clase XML

Saludos GRC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por gerardo (24 intervenciones) el 09/03/2015 21:52:01
Hola Giovanni

No tengo a la mano mi equipo de desarrollo, pero es por la declaracion

Dim cookieData As New StringBuilder(CInt(datasize))

Tienes que hacer un import para el StringBuilder.

En cuanto este en mi equipo de desarrollo, les posteo todos los imports.

Saludos GRC

Referente al And Also, no seas baqueton y lee algun manual de programacion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por karina (1 intervención) el 09/03/2015 22:56:56
Buenas tardes,

He tratado de implementar la opcion de descarga de xml, pero al querellamar el evento de clic para enviar datos de cer, key y demas me envia el mensaje:

unable to get property 'initmessages' en los botones de buscar los archivos y
unable to get property 'get Token' evento del boton enviar

Alguien que em pueda auxiliar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por gerardo (24 intervenciones) el 09/03/2015 23:37:13
Buenas tardes Karina

Yo en lo personal y por cuestiones de seguridad, dejo que el cliente ingrese su FIEL o su CIEC, pero parece que mas arriba alguien comparte como lo hace.

Saludos GRC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por sms salvador_mendieta@hotmail.com (7 intervenciones) el 10/03/2015 23:55:46
' una pregunta en esta linea me marca error que deberia de ir en la ruta de guardar
wc.DownloadFile(URI, "c:\hu")



'recorro el listBox y voy descargando uno por uno
For i = 0 To ListBox1.Items.Count - 1
URI = ListBox1.Items.Item(i).ToString.Trim
wc.DownloadFile(URI, ruta a guardar)
next
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por sms salvador_mendieta@hotmail.com (7 intervenciones) el 10/03/2015 23:57:13
una pregunta en esta linea me marca error que deberia de ir en la ruta de guardar
wc.DownloadFile(URI, "c:\hu")



'recorro el listBox y voy descargando uno por uno
For i = 0 To ListBox1.Items.Count - 1
URI = ListBox1.Items.Item(i).ToString.Trim
wc.DownloadFile(URI, ruta a guardar)
next
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por sms salvador_mendieta@hotmail.com (7 intervenciones) el 11/03/2015 02:06:28
marca este error

an exception ocurred during a webclient request

ya funciona todo el codigo solo al final al querer bajar el XML marca este error
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por gerardo (24 intervenciones) el 12/03/2015 21:30:29
Buenas tardes Salvador

Veo que solo copias y tratas de adaptar el código a tus necesidades sin revisar, en mi caso la gran mayoría de lo que se es por ver e investigar.

WebCliente Download requiere dos parámetros

1. Lo que descargas
2. Hacia donde lo descargas incluyendo el nombre del archivo

En este caso lo que te falta es el nombre del archivo destino

wc.DownloadFile(URI, "c:\hu" & "\" & nombre temporal del archivo)

Yo lo que hago es guardar los archivos con el nombre de la literal con que recorro el for (0.xml, 1.xml, 2.xml, n.xml)

Y después abro el archivo, busco el UUID y renombro el archivo.

Saludos GRC

P.D. Espero mi chela bien fria
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por salvador (1 intervención) el 12/03/2015 22:37:04
gracias por el comentario. lo tomare encuenta.
despues de que baja los archivos xml . el contenido de cada uno es esto



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head id="ctl00_Head1"><title>
 
</title><meta http-equiv="cache-control" content="no-cache" /><link href="Styles/sat.css" rel="stylesheet" type="text/css" /><link rel="shortcut icon" href="Images/favicon.ico" type="image/vnd.microsoft.icon" /><link rel="icon" href="Images/favicon.ico" type="image/vnd.microsoft.icon" />
</head>
<body>
    <form method="post" action="Error.aspx?aspxerrorpath=%2f%3cimg+name%3dBtnDescarga+width%3d25+height%3d25+title%3dDescargar+class%3dBtnDescarga+id%3dBtnDescarga+style%3dcursor%3a+pointer%3b+onclick%3dreturn+AccionCfdi(%27RecuperaCfdi.aspx" id="aspnetForm">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="b3TiFw1Y6DdPzGMlRNELa9BI8fqKCGlzeQ7iQzSZMhl14Gq7MTLNvG8tmy/Tlth5VVFCppdPrlfN+NcuNh+/bbm7k5Fz57JSY3KvwpCedl4cKKz4dRvLHDBX2Ntb/F57bmJFRycFa3+udLcRMcNZk9yeqcI=" />
 
 
<script src="/ScriptResource.axd?d=yZa9Z0Sj-Jlwg86i3S3WAHqRAai7UY3B7tiaPWTpKX0rT67QDO6fvnmKmhtlp1xeUd5vP5UK18fz4AJ84m9CShODTRkCI-7rCSuwqFQ_DIHzSADZJSukr-0989iA4PyNvA7oOnoxqkwoTZbnuS99A3n_XiUthm4IsdCar6CEpaHwkrYt0&amp;t=ffffffffb53e74b8" type="text/javascript"></script>
<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="AB827D4F" />
<input type="hidden" name="__VIEWSTATEENCRYPTED" id="__VIEWSTATEENCRYPTED" value="" />
 
    <div id="cuerpo_principal">
        <div id="encabezado">
            <div id="firma_busquedax">
                <img id="ctl00_PnlEncabezado" src="Images/headerRojo.jpg" height="70" width="970" />
            </div>
            <div id="encabezadoPortal">
            <table style="width: 960px; background-color: #EEEEEE; text-align: right; border-collapse: collapse; border-color: #EEEEEE" cellspacing="0" cellpadding="0">
                <tr>
                    <td style="width: 320px"></td>
                    <td style="width: 320px; font-size: 14px; text-align: center" rowspan="2">Factura Electrónica</td>
                    <td style="width: 320px; font-size: 10px"></td>
                </tr>
                <tr>
                    <td style="width: 320px; font-size: 10px"></td>
                    <td style="width: 320px; font-size: 10px"></td>
                </tr>
            </table>
            </div>
        </div>
 
        <div id="cuerpo">
 
<div style="width:100%; text-align:center; margin-top:50px" >
<h1>Ha ocurrido un error al procesar su &uacute;ltima acci&oacute;n</h1>
<p>Si reporta este error, favor de indicar la siguiente referencia: 57fffa24-afca-4c4e-b514-38423e644cea</p>
</div>
 
        </div>
    </div>
    <div class="footer">
 
    </div>
    </form>
</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por gerardo (24 intervenciones) el 12/03/2015 23:20:26
Hola Salvador

Lo que te esta descargando es un respuesta de error del servidor del SAT, mismo que ya comente anteriormente, este error me costo 2 días de investigación, por lo que me gustaría que revisaras bien tu código ya que la respuesta y solución ya la di.

Saludos GRC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Alejandro (6 intervenciones) el 19/03/2015 21:29:50
=O pero que buen aporteeeeeeeeeeeeeeeee! el unico error que tenia era en el datasize XD jajajajaaja muchas gracias a todos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por sms (7 intervenciones) el 20/03/2015 14:49:46
Muchas gracias ya funciono
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Victor Huerta (1 intervención) el 24/03/2015 21:05:30
Hola chicos,

Estoy tratando de desarrollar una aplicacion en C# que me permita bajar de manera masiva los xml, me dieron como referencia este link, ya lo he leido varias veces pero no logro interpretar su conocimineto para llevar acabo dicho progrma.

Lo que he logrado es generar un WebBrowser que me muestra la pagina del sat y firmarme con para poder visualizar el grid donde muestra los xml.

No se si alguien de ustdes pudiera orientarme que paso seguir o si le fuera posible enviarme un tutorial.

Antemanomuchas gracias.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Alejandro alejandrosamaniego05@gmail.com (6 intervenciones) el 24/03/2015 22:03:09
Hola Victor Huerta, puedes contactarme a mi correo y te ayudo con tu app
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Miguel Salazar

Descarga Masiva XML SAT

Publicado por Miguel Salazar Mikejock@gmail.com (22 intervenciones) el 25/03/2015 17:50:51
Hola como estan?, esta muy interesante el tema, quiero contribuir, no se si ya terminaron o hasta donde llegamos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Alejandro (6 intervenciones) el 25/03/2015 20:51:33
Hola a todos, he visto que aun hay algunos que están batallando un poco, pero bueno es bueno aprender cosas nuevas, de todos modos si no quieren batallar, aquí les dejo el desarrollo que hice.

https://www.dropbox.com/s/ncumfl1zdom82cx/Recuperar%20CFDI.zip?dl=0

Solo para reforzar lo que ya menciono en la misma app, los datos no los guardo en ningún lado, los datos solo son usados para obtener un respuesta del SAT, en este caso los CFDI.

Cualquier cosa/error/sugerencia pueden mandarme un correo.

Saludos !
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por gerardo (24 intervenciones) el 26/03/2015 02:52:00
Hola Miguel Salazar

Solo falta la parte para poder descargar mas de 500 cfdi, ya que el SAT cuando son mas de 500, solo te muestra los primeros 500.

Si tienes algo, seria binvenido tu aporte.

Saludos GRC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Miguel s

Descarga Masiva XML SAT

Publicado por Miguel s (22 intervenciones) el 26/03/2015 17:53:20
Yo lo resolvi haciendo la consulta por dia, pero si de mala suerte recibes mas de 500 por dia no tengo la solucion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Alejandro (6 intervenciones) el 26/03/2015 18:07:17
Hola chic@s,

Acabo de actualizar el link de dropbox, aquí les dejo el nuevo https://www.dropbox.com/s/ncumfl1zdom82cx/Recuperar%20CFDI.zip?dl=0

Y pues sinceramente yo creo que no se pueden descargar mas de 500 ya que no existe de momento un WS del SAT que te regrese esa información y ya que el SAT solo muestra nada mas 500 pues habrá que conformarse :S
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo (24 intervenciones) el 26/03/2015 18:41:30
Buenos dias Alejandro

Fijate que en la red existe un programa que si lo hace, te permite descargar mas de 500 en recibidos, y es la parte que estoy investigando.

Saludos GRC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Marco Antonio (6 intervenciones) el 30/03/2015 07:49:30
Es relativamente fácil, digamos que hacemos la primera consulta y vemos que fecha y hora de emisión tiene el ultimo comprobante del lote de 500, entonces la segunda consulta sera a partir de ese ultimo comprobante, el lío es interactuar con los controles que proporciona la pagina del SAT, sin embargo es mas sencillo hacer las consultas manualmente, todo se puede pero el desarrollo lleva su tiempo, dejo un demo de mi proyecto a ver que tal les parece http://goo.gl/GGs3o4

Alejandro Probe tu proyecto pero al dar clic en procesar manda a la pagina: NetIQ Access Manager para evitarlo en el elemento
<a href="/nidp/app/login?id=SATUPCFDiCon&amp;sid=0&amp;option=credential&amp;sid=0">Contraseña</a>
debes de invocar htmlElement.InvokeMember("click") en lugar de poner poner la dirección en
webBrowser.Navigate("https://cfdiau.sat.gob.mx/nidp/app/login?id=SATUPCFDiCon&sid=0&option=credential&sid=0")

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Miguel Salazar

Descarga Masiva XML SAT

Publicado por Miguel Salazar (22 intervenciones) el 30/03/2015 17:21:04
Yo creo que esta un poco facil, podemos partir en 3 consultas de 8hrs por dia, y en caso de ser mas pesada para la empresa que se consulta pues podemos hacer la consulta hasta por hr y asi queda resuelto sin bronca, Pienso que la solución de marco es buena, pero creo que pierde la facilidad para el usuario , en el sentido de que ellos tienen que estar poniendo los rangos manualmente, ya no se seria una descarga masiva automatica... ya estoy haciendo la prueba por dia y funciona sin problemas, nadamas me falta hacer la asignación del rango de hora y listo. Si a alguien le interesa, le puedo compartir parte de mi codigo lo tengo hecho en c# y vb.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por juanp.delagarza (1 intervención) el 30/03/2015 22:24:43
Muchas gracias por el codigo, para aquellos que programan en c# les copio como converti el codigo espero les sirva

// DllImport
using System.Runtime.InteropServices;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
        static extern bool InternetGetCookieEx(string pchURL, string pchCookieName, StringBuilder pchCookieData, ref uint pcchCookieData, int dwFlags, IntPtr lpReserved);
        const int INTERNET_COOKIE_HTTPONLY = 0x00002000;
 
 
        //proceso de descarga
        public int contadorDescarga = 0;
        public void procesarDescarga()
        {
 
            if (contadorDescarga < xmlaDescargar.Count)
            {
            progressBar1.Value = 0;
 
 
 
            WebClient webClient = new WebClient();
 
            string cc = "";
 
            uint datasize = 8192;//blog
 
            StringBuilder cookieData = new StringBuilder((int)datasize);
            string dw_path = System.Convert.ToString(webBrowser1.Document.Url);
            //MessageBox.Show("url " + dw_path);
            if (InternetGetCookieEx(dw_path, null, cookieData, ref datasize, INTERNET_COOKIE_HTTPONLY, IntPtr.Zero) && cookieData.Length > 0)
            {
                cc = cookieData.ToString();
            }
            else
            {
                cc = "";
            }
            webClient.Headers.Add(HttpRequestHeader.Cookie, cc);
 
 
 
 
 
            webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
            webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
 
 
 
 
                frametxt.Text = "https://portalcfdi.facturaelectronica.sat.gob.mx/RecuperaCfdi" + xmlaDescargar[contadorDescarga];
 
                webClient.DownloadFileAsync(new Uri("https://portalcfdi.facturaelectronica.sat.gob.mx/RecuperaCfdi" + xmlaDescargar[contadorDescarga]), @"c:\adescarga\file" + contadorDescarga + ".xml");
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Descarga Masiva XML SAT

Publicado por Neftali (1 intervención) el 31/03/2015 21:10:01
Hola buen día! Estuve leyendo las intervenciones y me parece muy bien esta iniciativa, quiero contribuir al proyecto, estoy en la misma situación, estoy desarrollando una aplicación similar.
Me gustaría apoyarlos con los reportes, si alguien puede ponerse en contacto conmigo para darme los requerimientos de los reportes, con gusto colaboraré. Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Descarga Masiva XML SAT

Publicado por Netzen (22 intervenciones) el 01/04/2015 02:11:36
Que lenguaje estas usando?, tengo un proyecto en vb .net que puedo compartir
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Raymundo ray_gomora@hotmail.com (3 intervenciones) el 01/04/2015 23:33:32
Buenas tardes Geraro, estoy viendo que eres una eminencia es esto, tome tu codigo y lo cargue en una plaicacion nada mas tengo una pregunta el Style="cursor.pointer" donde lo cargas especificamente.

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Netzen (22 intervenciones) el 02/04/2015 01:04:56
Dejo el link de un proyecto funcionando que descarga los XML del sat, es proyecto vb .NET no son pedazos de código, es proyecto en vb .NET, este código fue armado con lo copilado en estos blogs, por lo que creo que es justo postear el resultado de esto.

http://1drv.ms/1G5Go4u
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Raymundo (3 intervenciones) el 02/04/2015 03:56:44
Muchísimas gracias Netzen me quitaste mucho stress de encima, con esto termino mi proyecto que bueno que existen este tipo de foros para ayudarnos a los que carecemos de conocimiento..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Descarga Masiva XML SAT

Publicado por Netzen (22 intervenciones) el 02/04/2015 09:58:45
Que bueno que te sirvió, ojalá pronto nos presentes alguna mejora y seguir haciendo esto más útil para todos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Marco Antonio (6 intervenciones) el 04/04/2015 07:54:51
Para quienes les gusta usar LINQ

For Each imgUrl As String In From htmlElement As HtmlElement In htmlElementCollection Let imgUrl1 = htmlElement.GetAttribute("id") Where imgUrl1 = "BtnDescarga" Select Replace(htmlElement.OuterHtml, Chr(34), vbNullString)
'En estads dos variables, localizas la cadena del comproBante
cadIni = InStr(imgUrl, "?Datos=")
cadFin = InStr(imgUrl, "','Recuperacion')")

imgUrl = imgUrl.Substring(cadIni, (cadFin - cadIni) - 1)
imgUrl = "https://portalcfdi.facturaelectronica.sat.gob.mx/RecuperaCfdi.aspx?" & imgUrl
'Guardo la cadena en un listBox oculto en el formulario del WebBrowser
ListBox1.Items.Add(imgUrl)
Next
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Marco Antonio (6 intervenciones) el 04/04/2015 08:14:50
adjunto el proyecto de Netzen modificado para el uso de LINQ y una captura de que es lo que pasa si se pone directamente la dirección para el usuario y contraseña al navegar y no dese el tag contraseña como comente antes.

Captura-de-pantalla-18
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Netzen (22 intervenciones) el 04/04/2015 08:33:00
Al que le pase esto basta con que le de click en ir a Sat y se redireccionara a la página del Sat
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por JOSE JORGE AGUILAR (2 intervenciones) el 06/04/2015 19:30:45
ESTA BIEN SOLO QYE HAY QUE HACER LA ACTULIZACION CUANDO ALLA ACABADO DE CARGAR LA PRIMERA PANTALLA
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo computer_si@prodigy.net.mx (24 intervenciones) el 07/04/2015 04:10:10
Hola a todos

Me tome unos dias de vacaciones, pero la cosquilla de revisar el foro.

Estoy nuevamente hasta el 13 de Abril.

Solo una pregunta para Marco Antonio: no entiendo eso del LINQ me puedes explicar.


Buenas tardes Alejandro

Estoy descargando tu aplicacion, pero me gustaria mas que compartieras tu codigo si puedes enviame una copia.


Buenas tardes Miguel Salazar

A las consultas que te refieres son por programacion??? o manualmente desde el WebBrowser en la pagina del SAT

Si puedes enviame codigo para analizarlo.

Y los dejo porque estoy disfrutando de unas merecidas vacaciones con Mi esposa y mis hijas.

Saludos y Hasta pronto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Miguel salazar

Descarga Masiva XML SAT

Publicado por Miguel salazar (22 intervenciones) el 07/04/2015 15:44:37
Si, de hecho la apliccion que hice todo es por programacion, sin pantalla de navegacion manual, funciona muy bien
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Netzen (22 intervenciones) el 07/04/2015 23:03:51
Estoy trabajando en una nueva versión y por supuesto publicare el proyecto completo, todas sus colaboraciones son bienvenidas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo (24 intervenciones) el 13/04/2015 23:32:11
Buenas tardes a todos

Pues de regreso a la Realidad

Hola Miguel me podrias compartir tu codigo para analizar la parte de las consultas.

Saludos GRC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Ruth D (2 intervenciones) el 04/06/2015 00:07:09
Hola Gerardo:

Espero que me puedas ayudar, la verdad es que no soy muy buena con el excel en cuestiones de programación, asi que, lo que hice fue copiar tal cual tu "proyecto" y pegarlo en una macro creada a la que el puse nombre y lo quise arrancar al asignarselo a una figura, pero desde la primera linea me indica: Error de compilación Se esperaba fin de la instruccion, no se que estoy haciendo mal, pero como te repito, no soy muy diestra en esto.

De antemano gracias por tu ayuda

Atte. Ruth
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Ruth (2 intervenciones) el 04/06/2015 00:12:13
Hola Netzen:

Ya guarde la carpeta zip de tu enlace, me podrias indicar porfavor como se utiliza esto

De antemano gracias

Atte. Ruth
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Netzen (22 intervenciones) el 04/06/2015 00:41:33
Es un proyecto para visual studio 2010 pero sin problema te puedo pasar un exe, incluso estoy por poner una página para su descarga y poner las colaboraciónes
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Delfino III Salinas Sepulveda (1 intervención) el 16/06/2015 07:23:45
juanp.delagarza, tu traduccion del codigo es incompleta

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lazz

Descarga Masiva XML SAT

Publicado por Lazz (2 intervenciones) el 10/07/2015 22:25:48


Hola alguien me podría ayudar?, no logro convertir este codigo a C#

imgUrl = Strings.Replace(htmlElement.OuterHtml, Strings.Chr(34), "")

Alguien tiene alguna idea?, ya recurrí a varios programas y paginas para hacer la conversión de los códigos pero no me correo aún :(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lazz

Descarga Masiva XML SAT

Publicado por Lazz (2 intervenciones) el 10/07/2015 23:14:39
Hola juanp.delagarza me podrás pasar el codigo en c#?
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por José (3 intervenciones) el 16/10/2015 22:18:01
yo lo resolvi para los emitidos, pero la parte de recibidos aun no me queda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por leonardo leonardo.lopez.g@gmail.com (6 intervenciones) el 13/03/2016 22:50:05
lo puedes volver a subir la liga de dropbox ya no esta activa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Rodolfo Reyes (2 intervenciones) el 24/04/2015 17:12:23
Que tal
Por si a alguien le interesa , encontré en internet una librería que permite integrar a tu desarrollo la descarga masiva, directamente de los servidores del SAT, de los comprobantes que emites o recibes, trae un demos para VB, http://www.facturando.mx/productos/libreria-descargar-cfdi-sat/ espero les sirva, es fácil de integrar y funciona sin problema.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por ricardo (2 intervenciones) el 02/09/2015 03:42:12
Antes que nada, muchísimas gracias por toda la información que compartiste.

mi problema es el siguiente, si al firmarse en el portar se pone el RFC o el Passworr mal, manda un mensaje de error y no se como captalo, para controlarlo por código. Esto lo necesito por que el web borwser lo tengo oculto para que el usuario no interactue con el. entonces lo que quiero es camptarlo yo aceptarlo y en un MsgBox yo avisarle al usuario y que se firme de nuevo.

de antemano muchas gracias por su atención.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia gerar2ac517@me.com (44 intervenciones) el 02/07/2015 02:45:11
Tengo una duda, estoy usando un programa independiente para programar del tipo Visual Basic, en el no hay una funcionaria que me haga colecciones HTML.

Soy novato en este tema y me gustaría aprender. En mi programa, le puse una clase, con la cual puedo descargar las cookies en general del sistema, o especificarle una en especial del sitio que esté viendo.

Pero cuando obtengo la Cookie del sitio web que se está mostrando, ya previamente me logueé con mi RFC y CIEC, hice una consulta de facturas recibidas. allí es cuando obtengo la Cookie. pero no me aparece ningun objeto "Masivapg0"


Solo me salen un montón de caracteres como 6 lineas de puros caracteres. ¿Qué estoy haciendo mal?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Alejandro (6 intervenciones) el 18/12/2015 15:56:53
Ok principalmente una disculpa para todos aquellos que me han contactado y no he tenido la oportunidad/tiempo de responderles, tratare de hoy por la tarde liberarles mi código de la aplicación de escritorio que yo uso para recuperar todas (o en su mayoría... 12 mil facturas por día) las facturas del SAT.

Nuevamente una disculpa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por leonardo leonardo.lopez.g@gmail.com (6 intervenciones) el 13/03/2016 22:44:02
Hola quien me puede ayudar, quiero descargar cfdi de la pagina del sat estoy realizando un par de pruebas con htmlunit, si acceso por esta url https://portalcfdi.facturaelectronica.sat.gob.mx/ me manda al form de FIEL para que desde ahi puedas accesar, lo que yo quiero es ingresar por contraseña entonces ingreso por esta url https://cfdiau.sat.gob.mx/nidp/app/login?id=SATUPCFDiCon&sid=0&option=credential&sid=0 pero al accesar con htmunit,me direcciona a una paguina donde muestra el perfil del usuario y de ahi no pido pasar tal parece que direcciona a una paguina diferente, ademas al imprimir ese html del perfil, en un input del mismo html me imprime un token en xml.

este es parte de mi codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
public void submittingForm() throws Exception {
	HtmlPage page1 = null;
	try (final WebClient webClient = new WebClient()) {
 
		// Get the first page
		final HtmlPage page = webClient.getPage("https://portalcfdi.facturaelectronica.sat.gob.mx/");
		page1 = webClient.getPage("https://cfdiau.sat.gob.mx/nidp/app/login?id=SATUPCFDiCon&sid=0&option=credential&sid=0");
 
		webClient.getOptions().setUseInsecureSSL(true);
 
//	       WebResponse response = page1.getWebResponse();
//	       String content = response.getContentAsString();
//			 System.out.println(" Resultados :::: "+content);
			System.out.println(" Resultados :::: "+page);
		// Get the form that we are dealing with and within that form, 
		// find the submit button and the field that we want to change.
		final HtmlForm form = page1.getFormByName("IDPLogin");
 
 
 
 
		form.getInputByName("Ecom_User_ID").setValueAttribute("dato");
		form.getInputByName("Ecom_Password").setValueAttribute("dato);
		//final HtmlTextInput textField = form.getInputByName("userid");
 
		// Change the value of the text field
		// textField.setValueAttribute("root");
		final HtmlSubmitInput button = form.getInputByName("submit");
		// Now submit the form by clicking the button and get back the second page.
		page1 = button.click();
 
		//WebResponse response = page1.getWebResponse();
		//List<NameValuePair> content = response.getResponseHeaders();
		System.out.println(""+page1.asXml());
//	        System.out.println(page2.getBaseURL());
//	        System.out.println(page2.getBody().getIndex());
//	        System.out.println(page2.isHtmlPage());
	}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Netzen (22 intervenciones) el 13/03/2016 23:01:33
Puedes revisar mi código en
http://descargacfdis.blogspot.mx/2016/03/descargar-cfdis-del-sat.html?m=1

Estaré publicando actualizaciones y mejoras con ayuda de quien guste
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Emanuel Villicaña (1 intervención) el 08/12/2016 19:59:51
Gracias por tu aporte

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por CHRISTIAN (2 intervenciones) el 09/04/2015 22:50:36
Buen día

Antes que nada un agradecimiento a todos los que participan en este aparente "pequeño" proyecto pero que a muchos nos costó bastantes dolores de cabeza. Gracias por el aporte de su tiempo, conocimientos y código.

En lo personal me ayudó a terminar lo que ya llevaba iniciado e incluso ya viendo como lo resolvieron parece que no estaba tan perdido.

Comparto el resultado final con la combinación del código que tan amablemente comparten y parte de lo que yo hice, espero les sirva.

En terminos generales el sistema pide usuario y contraseña para que se capturen en textbox, también pide la carpeta donde desean que se guiarden los archivos xml y estos los guarda con el nombre del folio fiscal contenido en cada archivo.

Por cualquier duda o comentario quedo a sus ordenes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar

Descarga Masiva XML SAT

Publicado por Aldo cp-aldo@cqo.org.mx (8 intervenciones) el 24/04/2015 16:52:48
Hola, soy nuevo en esto de la programación jeje. agradezco a todos sus aportaciones y estoy intentando realizar un proyecto conforme a sus instrucciones, solo que tengo una duda al probar tu archivo Crhistian

Cuando introduzco RFC y Contraseña me da el error de que son incorrectos.

Pero ya verifique y si están bien mis datos, ¿A que se deberá?}

Saludos y gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por CHRISTIAN (2 intervenciones) el 29/04/2015 00:40:13
Lo unico que se me ocurre Aldo es que cheques que capturas correctamente mayúsculas y minúsculas. Y si no, trata de actualizar el java en la maquina donde lo estás ejecutando. Lo tengo trabajando con varios usuarios sin problema.

De cualquier manera quedo a tus ordenes si te surge alguna otra duda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por leonardo leonardo.lopez.g@gmail.com (6 intervenciones) el 13/03/2016 22:44:57
Hola quien me puede ayudar, quiero descargar cfdi de la pagina del sat estoy realizando un par de pruebas con htmlunit, si acceso por esta url https://portalcfdi.facturaelectronica.sat.gob.mx/ me manda al form de FIEL para que desde ahi puedas accesar, lo que yo quiero es ingresar por contraseña entonces ingreso por esta url https://cfdiau.sat.gob.mx/nidp/app/login?id=SATUPCFDiCon&sid=0&option=credential&sid=0 pero al accesar con htmunit,me direcciona a una paguina donde muestra el perfil del usuario y de ahi no pido pasar tal parece que direcciona a una paguina diferente, ademas al imprimir ese html del perfil, en un input del mismo html me imprime un token en xml.

este es parte de mi codigo

public void submittingForm() throws Exception {
HtmlPage page1 = null;
try (final WebClient webClient = new WebClient()) {

// Get the first page
final HtmlPage page = webClient.getPage("https://portalcfdi.facturaelectronica.sat.gob.mx/");
page1 = webClient.getPage("https://cfdiau.sat.gob.mx/nidp/app/login?id=SATUPCFDiCon&sid=0&option=credential&sid=0");

webClient.getOptions().setUseInsecureSSL(true);

// WebResponse response = page1.getWebResponse();
// String content = response.getContentAsString();
// System.out.println(" Resultados :::: "+content);
System.out.println(" Resultados :::: "+page);
// Get the form that we are dealing with and within that form,
// find the submit button and the field that we want to change.
final HtmlForm form = page1.getFormByName("IDPLogin");




form.getInputByName("Ecom_User_ID").setValueAttribute("dato");
form.getInputByName("Ecom_Password").setValueAttribute("dato");
//final HtmlTextInput textField = form.getInputByName("userid");

// Change the value of the text field
// textField.setValueAttribute("root");
final HtmlSubmitInput button = form.getInputByName("submit");
// Now submit the form by clicking the button and get back the second page.
page1 = button.click();

//WebResponse response = page1.getWebResponse();
//List<NameValuePair> content = response.getResponseHeaders();
System.out.println(""+page1.asXml());
// System.out.println(page2.getBaseURL());
// System.out.println(page2.getBody().getIndex());
// System.out.println(page2.isHtmlPage());
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Marcel (2 intervenciones) el 24/04/2015 17:45:01
Buen día.

Para todo aquel que se haya cansado de buscar y no encontrar, aqui tengo a la venta este programa que hace eso, les dejo el manual para los que le interesen, el costo es de $500.00 pesos.

https://www.dropbox.com/s/jc9po2neckhszen/manual.pptx?dl=0
propaganda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo (24 intervenciones) el 24/04/2015 22:25:06
Buenas tardes Marcel

Creo que este es un foro de ayuda y aportes para elaborar aplicaciones y no de venta

Tambien te comento que mi aplicacion tambien la vendo pero no en este foro, en todo caso te recomiendo que tus publicaciones las hagas en Mercado Libre por ejemplo, para no quitarle el sentido a este foro.

Saludos GRC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Lo permiten ?

Publicado por cARLOS (2 intervenciones) el 05/09/2015 20:53:33
Bueno, pues si lo permiten yo tambien pondre mi anuncio o es de desarrollo o permiten los anuncios ? como veo que no se borro el que colocaron, quiere decir que si se permiten ? gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Miguel Salazar

Descarga Masiva XML SAT

Publicado por Miguel Salazar (22 intervenciones) el 25/04/2015 01:48:07
SI amigo Marcel, esto es para colaboracion, no para lucro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Julio Vazquez (3 intervenciones) el 04/05/2015 19:13:36
Miguel ¿podrias dar mas informacion de como lo hiciste sin el webbrowser?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Miguel Salazar

Descarga Masiva XML SAT

Publicado por Miguel Salazar (22 intervenciones) el 04/05/2015 22:20:34
Claro que si amigo, aqui les pongo el codigo para todos aquellos que les interese, y si lo mejoran, estaria bueno que compartan.

https://mega.co.nz/#!lwIGRBKQ!yU2pTmjVPZOFVq1Zd0AI0EOs6dwAiHO1WJWRdEAs2N4

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Netzen (22 intervenciones) el 07/05/2015 07:39:00
Excelente, ya lo estoy checando y en breve pondre mi aportación, Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Alejandro alejandrosamaniego05@gmail.com (6 intervenciones) el 07/05/2015 21:39:04
Muchas gracias amigo Miguel, hoy por la tarde reviso el código y comparo con el que yo también compartí, ya si se puede mejorar algo te lo comento lo mas pronto posible o subo el código aquí para que todos puedan verlo.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Halcón Divino HlaconDivino@GMAil.Com (11 intervenciones) el 10/05/2015 05:28:48
Que tal Colegas

Estoy analizando el programa que postearon
Pero mi duda es que no se cumple ninguna de las 2 condiciones
O sea ni entra al "" if "" donde se autentifico y tampoco entra al de Clave Incorrecta
Yo esperaba que de perdido entrara al de Clave Incorrecta

Les copio el código que es con el que tengo problemas y el contenido del this._wbSat.Url

Espero me puedan aclara mi duda

Saludos
Halcón Divino

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if (this._wbSat.Url == new Uri("https://cfdiau.sat.gob.mx/nidp/app?sid=0"))
{
	this.Message(string.Format("Usuario {0} Autentificado correctamente.", this.cmbAccount.SelectedItem));
	if (this.rbtReceived.Checked)
	{
		this._wbSat.Navigate("https://portalcfdi.facturaelectronica.sat.gob.mx/ConsultaReceptor.aspx");
	}
	if (this.rbtSended.Checked)
	{
		this._wbSat.Navigate("https://portalcfdi.facturaelectronica.sat.gob.mx/ConsultaEmisor.aspx");
	}
}
if (this._wbSat.Url == new Uri("https://cfdiau.sat.gob.mx/nidp/app/login?sid=0&sid=0"))
{
	this.txtPassword.Focus();
	this.txtPassword.SelectionStart = 0;
	this.txtPassword.SelectionLength = this.txtPassword.Text.Length;
	this.Message("Clave CIEC incorrecta, favor de verificar RFC y Clave.");
}

El contenido de this._wbSat.Url
{https://cfdiau.sat.gob.mx/nidp/app/login?id=SATUPCFDiCon&sid=0&option=credential&sid=0&Ecom_User_ID=ABCD010101XYZ&Ecom_Password=12345678}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Netzen (22 intervenciones) el 10/05/2015 05:39:34
Trae varios detalles, ya los corregí, mañana posteo el proyecto con labels y puede descargar mas de 500 cfdi por mes
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Edén (22 intervenciones) el 10/05/2015 08:50:40
Listo, lo prometido es deuda, se corrigieron detalles, ojala esto siga evolucionando, alguien que agregue la administracion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Miguel Salazar

Descarga Masiva XML SAT

Publicado por Miguel Salazar (22 intervenciones) el 10/05/2015 19:34:22
Super bien, solo un detallito que yo creo que fue error de dedo.

Otra cosa que les ofrezco, tengo un proyecto de Recepción y validación de CFDI en el que podemos integrar esto con lo recibido, o uno de facturacion con la recepción, tiene reporteria muy util, y creo que seria bueno integrarlo con la descarga masiva y podeter tener tanto mis facturas integradas como lo que recibo, y podemos hacer un buen producto.

Si les interesa colaborar evisenme y lo subo a Github, para que lo trabajemos , est desarrollado con:
-*Telerik
-*SQL
-*VS2010

Yo les doy las librerias, me interesa que podamos hacer algo mas robusto en colaboración y despues podamos cobrar por implementarlo con nuestros clientes.

/*con error en lblStatus.Text */
flag1 = (this._wbSat.Url != new Uri("https://portalcfdi.facturaelectronica.sat.gob.mx/ConsultaEmisor.aspx") ? true : !(this._wbSat.Url != new Uri(this.lblStatus.Text)));
if (!flag1)

/*creo que deberi ser así. */
flag1 = (this._wbSat.Url != new Uri("https://portalcfdi.facturaelectronica.sat.gob.mx/ConsultaEmisor.aspx") ? true : !(this._wbSat.Url != new Uri(this._currentUrl)));
if (!flag1)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Netzen (22 intervenciones) el 11/05/2015 23:07:38
Yo tengo un componente para timbrar, sería cuestión de hacer la interfaz
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Halcón Divino HlaconDivino@GMAil.Com (11 intervenciones) el 15/05/2015 18:52:55
Muchas Gracias

Ya pude descargar los XML
El problema que tenia era que la contraseña estaba incorrecta.
Pero la lógica del programa no entra por el IF que debería de decir ""Clave CIEC incorrecta ""


Y como dice Miguel hay que hacer la siguiente corrección para los XML Emitidos en el código del programa C#

/*con error en lblStatus.Text */
flag1 = (this._wbSat.Url != new Uri("https://portalcfdi.facturaelectronica.sat.gob.mx/ConsultaEmisor.aspx") ? true : !(this._wbSat.Url != new Uri(this.lblStatus.Text)));
if (!flag1)

/*creo que deberi ser así. */
flag1 = (this._wbSat.Url != new Uri("https://portalcfdi.facturaelectronica.sat.gob.mx/ConsultaEmisor.aspx") ? true : !(this._wbSat.Url != new Uri(this._currentUrl)));
if (!flag1)

Nuevamente MUCHAS GRACIAS
Saludos
Halcón Divino
Monterrey, N.L.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Antonio (1 intervención) el 28/12/2015 20:05:37
Miguel,

estoy interesado en ser parte del proyecto.

saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Halcón Divino HlaconDivino@GMAil.Com (11 intervenciones) el 11/05/2015 22:55:43
EDEN ..... Que tal !!

Descargue el proyecto del 10 de Mayo que posteaste pero revisando el código en la parte donde no logro autentificar el RFC o que me diga que la Clave es incorrecta sigue igual. o sea el código es el mismo

No se a que se deba o no se si me puedan apoyar

Al dar DEBUG al proyecto línea por línea me doy cuenta de que no se cumple ninguna de las 2 condiciones
O sea ni entra al "" if "" donde se autentifico y tampoco entra al ""IF"" de Clave Incorrecta
Yo esperaba que de perdido entrara al de Clave Incorrecta

Les copio el código que es con el que tengo problemas y el contenido del this._wbSat.Url



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if (this._wbSat.Url == new Uri("https://cfdiau.sat.gob.mx/nidp/app?sid=0"))
{
	this.Message(string.Format("Usuario {0} Autentificado correctamente.", this.cmbAccount.SelectedItem));
	if (this.rbtReceived.Checked)
	{
		this._wbSat.Navigate("https://portalcfdi.facturaelectronica.sat.gob.mx/ConsultaReceptor.aspx");
	}
	if (this.rbtSended.Checked)
	{
		this._wbSat.Navigate("https://portalcfdi.facturaelectronica.sat.gob.mx/ConsultaEmisor.aspx");
	}
}
if (this._wbSat.Url == new Uri("https://cfdiau.sat.gob.mx/nidp/app/login?sid=0&sid=0"))
{
	this.txtPassword.Focus();
	this.txtPassword.SelectionStart = 0;
	this.txtPassword.SelectionLength = this.txtPassword.Text.Length;
	this.Message("Clave CIEC incorrecta, favor de verificar RFC y Clave.");
}

El contenido de this._wbSat.Url
{https://cfdiau.sat.gob.mx/nidp/app/login?id=SATUPCFDiCon&sid=0&option=credential&sid=0&Ecom_User_ID=ABCD010101XYZ&Ecom_Password=12345678}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Netzen (22 intervenciones) el 11/05/2015 23:02:54
Revisa tu contraseña, debe ser eso, voy a revisar el código, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Juan Carlo (1 intervención) el 21/02/2016 00:31:33
Descargue el código y funciona muy bien!! Gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo (24 intervenciones) el 11/05/2015 19:05:40
Hola Netzen

Ya lograste la bajada de mas de 500????

Yo en lo personal no he podido por falta de tiempo me puedes compartir como lo hiciste.

Saludos y Gracias anticipadas.

Es lo malo de estar fuera de estos rumbos cada quien hace lo que quiere JAJAJAJA no se suponia que el proyecto hera en VB.NET bueno pero creo que ha dado resultado poquito de VB.NET y poquito de C# y creo que todos hemos ganado verdad colegas o mejor me cierro la boca y a seguir trabajando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Netzen (22 intervenciones) el 11/05/2015 23:06:16
El truco esta en descargar por día, si el contribuyente recibe más de 500 diarias puedes hacerlo por hora, en el proyecto viene que descargues por mes, este es practico para empresas que reciben menos de 500 al mes, en caso contrario descarga del día 1 al ultimo del mes, ojalá ne haya explicado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Miguel Salazar

Descarga Masiva XML SAT

Publicado por Miguel Salazar (22 intervenciones) el 11/05/2015 23:42:16
Puedes barjar la version de Eden.

Para los que quieren en VB.net aqui esta también.
https://mega.co.nz/#!owhxySbL!YZ4iMRaEvQ1AEDMKTNC875YeCOrTswnMPXHHZ4ZuJiI


Les comento que sistema de facturaci+on ya timbra y toda la cosa, pero como ven, quien se anima o solo Netzen, le damos.


saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Netzen (22 intervenciones) el 11/05/2015 23:54:37
Con que pac estas timbrando?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Miguel Salazar

Descarga Masiva XML SAT

Publicado por Miguel Salazar (22 intervenciones) el 11/05/2015 23:56:08
Finkok timbrado bajo demanda. 30c sin importan volumen
, tu?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Netzen (22 intervenciones) el 12/05/2015 00:38:51
Digifact y me los dejan hasta .25 pero si compro un buen, cualquiera de las dos opciones son buenas, pues manos a la obra, tengo un dominio podemos colgarnos de ahí o armar un blog
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Rolando (1 intervención) el 12/05/2015 04:38:27
Saludos, ya alguien lo ha hecho en VB 6 la descarga masiva de los XML, y si es asi, donde puedo conseguir el codigo, para implementarlo. Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Halcón Divino HlaconDivino@GMAil.Com (11 intervenciones) el 12/05/2015 06:43:50
Colegas
Me pueden Ayudar

Estoy ejecutando el programa en C# y estoy analizando que no puede autentificar el RFC ni tampoco se va por el lado de que la cuenta es incorrecta.

Total no se cumple ninguna de las 2 condiciones
1. si es correcta
2. El RFC y Password. son incorrectos

De perdido debería de entra a una de estas 2 condiciones ...pero no entra a ninguna !!!
¿ Porque ???
Supongan que le pongo un RFC y Password incorrecto debería de entrar a la condición que manda el mensaje de """ Clave CIEC incorrecta, favor de verificar RFC y Clave. """ ... Pero no ni siquiera entra.


Que otros requisitos debo de tener
Tengo una Laptop de 64bits con Window 7 Profesional y Explorer 11 con todos las actualizaciones al día
También tengo instalado el Chilkat dotnet 4

Que mas Debo de tener ??? algún otro software o librería ???
Por ejemplo la wininet.dll como se que se esta correctamente cargando al proyecto ??
Requiero Java ???

Les agradesco su ayuda
Gracias
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Netzen (22 intervenciones) el 12/05/2015 06:47:56
Revisa que puedas entrar a la página del Sat sin problema, lo que hace el programa es que hace una instancia del explorador y se loguea, prueba el exe en otra PC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Miguel Salazar

Descarga Masiva XML SAT

Publicado por Miguel Salazar (22 intervenciones) el 12/05/2015 17:25:37
Entra en tu explorador al sitio y navegalo por completo, puede que tengas bloqueado la ejecucion de JS, agrega el sitio a sitios de confianza.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Alex (3 intervenciones) el 12/05/2015 23:49:34
Hola Amigos Muy buenas tades me he desvelado bastante y e estado siguiendo este foro desde el principio ya que soy aprendiz aun en la programacion, les comento que he avanzado vastante he analizado los codigos pero aun sigo con dudas en el arte de la progamacion.
Hoy les quiero comentar que me gustaria agregarle una utilidad al la descarga masiva de xml, la cual intento realizar ahora y la cual me gustaria compartir con ustedes, lo que intento hacer es poner un boton para buscar la carpeta donde descargaron los XML y cargar el contenido de la carpeta en un DataGridView, hasta ahora lo que he logrado es que abra la ventana del buscador de archivos y me cargue un solo archivo al DataGridView, pero aun no logro que me cargue todo el contenido de la carpeta.
Acontinuacion les dejo el codigo que he realizado el cual les comento
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Imports System.Data
Imports System.IO
Imports System.Xml
Imports System.Array
 
 
Public Class Form1
 
    Dim Modulo As Object
 
    Public Property Multiselect As Boolean
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim openFileDialog1 As New OpenFileDialog()
        'Dim FolderBrowserDialog1 As New FolderBrowserDialog()
        openFileDialog1.InitialDirectory = "c:\"
        openFileDialog1.Filter = "xml files (*.xml)|*.xml"
        openFileDialog1.FilterIndex = 2
        openFileDialog1.RestoreDirectory = True
        Me.OpenFileDialog1.Multiselect = True
        If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
 
            Try
 
                Dim xmlDoc As New System.Xml.XmlDocument
                Dim xmlFile As String = ""
                Dim root As XmlElement = Nothing
                Dim ds As New DataSet
 
                TextBox1.Text = openFileDialog1.FileName()
                xmlFile = openFileDialog1.FileName
                ds.ReadXml(xmlFile)
                DataGridView1.DataSource = ds.Tables(0)
 
            Catch ex As Exception
                MessageBox.Show("El archivo no es un XML valido :(")
            End Try
 
        End If
 
    End Sub

El codigo anterior es funcional pero como les comento solo me carga un Archivo XML y lo que busco es que me cargue el contenido total de la carpeta XML por fila en el DataGridView.
Espero les sea de interes y podamos juntos relizar este aporte, yo creo que sera de mucha utilidad.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Descarga Masiva XML SAT

Publicado por Aldo (8 intervenciones) el 13/05/2015 01:01:59
Hola Alex,

Mira yo tambien soy aprendiz en esto de la programación, fijate que en una consulta que hice me indicaron que se tendria que hacer un Listbox ahi buscar el arbol del directorio y de ahi pasarlo en un data grid, aunque eh visto que en un listview con formato de columnas tambien se puede.

Saludos y si se algo de inmediato lo posteo aca.

=)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Halcón Divino HlaconDivino@GMAil.Com (11 intervenciones) el 13/05/2015 05:40:07
Netzen / Miguel Salazar
O Cualquier otro Miembro del foro que me pueda ""Orientar""

Es con esta instrucción con la que tengo dudas o no le entiendo mdel todo :
if (this._wbSat.Url == new Uri("https://cfdiau.sat.gob.mx/nidp/app?sid=0"))

Si el contenido de this._wbSat.Url es el siguiente:
https://cfdiau.sat.gob.mx/nidp/app/login?id=SATUPCFDiCon&sid=0&option=credential&sid=0&Ecom_User_ID=ABC010101XYZ&Ecom_Password=12345678

Como es que en tiempo de ejecución pueda ser igual a este valor
https://cfdiau.sat.gob.mx/nidp/app?sid=0

Como es que funciona la clase Uri para que pueda ser verdadera la condición

Cualquier comentario me sería util

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE MIGUEL

Descarga Masiva XML SAT

Publicado por JOSE MIGUEL (22 intervenciones) el 13/05/2015 06:30:32
Practicamente eso sucede cuando mandas los parametros :
https://cfdiau.sat.gob.mx/nidp/app/login?id=SATUPCFDiCon&sid=0&option=credential&sid=0&Ecom_User_ID=ABC010101XYZ&Ecom_Password=12345678

te redireciona a :
https://cfdiau.sat.gob.mx/nidp/app?sid=0

y el handler lo cacha y ya hace lo que debe. no se si quedo claro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Miguel Salazar

Descarga Masiva XML SAT

Publicado por Miguel Salazar (22 intervenciones) el 13/05/2015 06:36:26
Alex, usa esta funcion o implmentala como debe para que puedas mostrar todo, esta facil.
**ACLARO, no es la solucion, si no que implementes su uso para hacer eso.
Te crea un DT con la definición de los atributos principales del XML.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Private Function DataTableOfIEnum(ByVal dtRows As IEnumerable(Of XElement)) As DataTable
            'Crea Datatable a partir de lo que Elementos obtenidos de dtRows "Consulta XML que es un IEnumerable<XElement>"
 
            Dim dtDescrValue As New DataTable()
            Try
 
                Dim rows As IEnumerable(Of XElement) = If(TryCast(dtRows, List(Of XElement)), dtRows.ToList())
                For Each dtColumn As XAttribute In rows.First().Attributes()
                    'Crea Columnas 
                    dtDescrValue.Columns.Add(dtColumn.Name.ToString(), GetType(String))
                Next
 
                For Each dtRow As XElement In rows
                    'Crea cada registro "Row"
                    Dim dtDescrRow As DataRow = dtDescrValue.NewRow()
                    For Each dtColumn As XAttribute In dtRow.Attributes
                        'Asigna valores de cada column de "Row"
                        dtDescrRow(dtColumn.Name.ToString()) = dtRow.Attribute(dtColumn.Name.ToString()).Value
                    Next
                    dtDescrValue.Rows.Add(dtDescrRow)
                Next
            Catch e As Exception
                'En caso de Error regresa un Data table con Id: "Error", Descr: Message de error. 
                _ErrorMessUser = "Error al cargar datos: " & e.Message
                dtDescrValue = Nothing
            End Try
            Return dtDescrValue
        End Function
    End Class
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Alex (3 intervenciones) el 13/05/2015 17:45:53
Gracias Miguel Salazar , lo implementare y mostrare los resultados, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo (24 intervenciones) el 13/05/2015 18:30:27
Hola Netzel

Si entendi tu logia, de hecho es lo que estaba tratando de hacer pero no se como, tu envias una consulta a la pagina del SAT es correcto??? a diferencia mia que cacho la consulta que el usuario genera del SAT . no se si me explique.

La verdad no quiero reinventar la rueda si ya lo implemento alguine, podrian apoyarme.

Desde ya Gracias y Saludos GRC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Netzen (22 intervenciones) el 13/05/2015 20:12:00
Así es de esa forma funciona
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de jose

Descarga Masiva XML SAT

Publicado por jose (22 intervenciones) el 14/05/2015 04:23:55
Netzen, viste mi mensaje en el inbox?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Netzen (22 intervenciones) el 14/05/2015 04:27:33
Si, te contesto mas tarde
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Halcón Divino HlaconDivino@GMAil.Com (11 intervenciones) el 15/05/2015 20:59:21
Para el caso de las descargas de mas de 500 XML por día habrá forma de hacerlo por un rango de Horas ???
O como se pudiera hacer ???

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Netzen (22 intervenciones) el 15/05/2015 21:03:19
Así es, puedes meter el control de hora para descargar por hora, si lo agregas compártelo eso lo ocupan empresas con demasiada recepción
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Halcón Divino HlaconDivino@GMAil.Com (11 intervenciones) el 16/05/2015 13:22:07
Netzen
Que tal !!!
Claro que lo compartiría ... pero no soy experto en estas clases de navegación ... lamentablemente si requiero un poco de apoyo.

Para poder hacer una consulta por rango de horas tendría que dar ""SET" o Asignar valores a las siguientes variables
- document.getElementById('ctl00_MainContent_CldFecha_DdlHora');
- document.getElementById('ctl00_MainContent_CldFecha_DdlMinuto');
- document.getElementById('ctl00_MainContent_CldFecha_DdlSegundo');

- document.getElementById('ctl00_MainContent_CldFecha_DdlHoraFin');
- document.getElementById('ctl00_MainContent_CldFecha_DdlMinutoFin');
- document.getElementById('ctl00_MainContent_CldFecha_DdlSegundoFin');

Mas o menos a como lo están haciendo para las variables de la fecha
- document.getElementById('DdlAnio');
- document.getElementById('ctl00_MainContent_CldFecha_DdlMes');
- document.getElementById('ctl00_MainContent_CldFecha_DdlDia');

En otras palabras seguiría la misma línea de programación que están usando.

Y una ultima duda Solo se están descargando los XML ""VIGENTES"" ... ¿ Es correcto ?? o estoy equivocado

Saludos
Halcón Divino
Monterrey
Nuevo León
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Alejandro (3 intervenciones) el 16/05/2015 16:07:47
Así es. De los cancelados solo están los pdf.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Halcón Divino HlaconDivino@GMAil.Com (11 intervenciones) el 16/05/2015 16:23:58
Estoy adecuando el método GetSendedDocuments(int year, int month, int day) para incluir la Hora de inicio y final.
Como estoy en PRUEBAS estoy dejando en código duro la Hora inicial y Final
La Hora Inicial es las 13:00:00 y la Final 15:59:59

La asignación de los valores de la Hora inicial y Final la estoy poniendo debajo de la Fecha ctl00_MainContent_CldFechaInicial2_Calendario_text para que se den una idea donde estoy colocando el código.

El Problema que tengo es que si me respeta la Hora Inicial pero no me respeta la Hora final es como si tuviera 23:59:59
Ya cheque los nombres de las variables de la hora final y parecen estar bien
No se si entre la asignación de la Hora inicial y la Hora final debería de haber alguna lógica que permita que espere a que se asigne los valores de las horas.
O no se que me falte ...pero la hora final no me la esta tomando .

Cualquier apoyo se los agradesco.
Saludos


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
DateTime dateTime = new DateTime(year, month, day);
HtmlElement htmlElement1 = this._wbSat.Document.GetElementById("ctl00_MainContent_CldFechaInicial2_Calendario_text");
if (htmlElement1 != null)
{
	htmlElement1.SetAttribute("value", dateTime.ToString("dd/MM/yyyy"));
}
HtmlElement elementById2 = this._wbSat.Document.GetElementById("ctl00_MainContent_CldFechaInicial2_BtnFecha2");
if (elementById2 != null)
{
	elementById2.InvokeMember("click");
}
 
while (true)
{
	flag = true;
	Application.DoEvents();
	elementById = this._wbSat.Document.GetElementById("datepicker");
	flag2 = (elementById == null ? true : !elementById.Style.Contains("visibility: visible"));
	if (!flag2)
	{
		break;
	}
}
 
#region Set atributo de la Hora Inicial
HtmlElement elementById4 = this._wbSat.Document.GetElementById("ctl00_MainContent_CldFechaInicial2_DdlHora");
if (elementById4 != null)
{
	elementById4.SetAttribute("value", "13");
}
HtmlElement elementById5 = this._wbSat.Document.GetElementById("ctl00_MainContent_CldFechaInicial2_DdlMinuto");
if (elementById5 != null)
{
	elementById5.SetAttribute("value", "00");
}
HtmlElement elementById6 = this._wbSat.Document.GetElementById("ctl00_MainContent_CldFechaInicial2_DdlSegundo");
if (elementById6 != null)
{
	elementById6.SetAttribute("value", "00");
}
#endregion
 
#region Set atributo de la Hora Final
HtmlElement elementById7 = this._wbSat.Document.GetElementById("ctl00_MainContent_CldFechaFinal2_DdlHora");
if (elementById7 != null)
{
	elementById7.SetAttribute("value", "15");
}
HtmlElement elementById8 = this._wbSat.Document.GetElementById("ctl00_MainContent_CldFechaFinal2_DdlMinuto");
if (elementById8 != null)
{
	elementById8.SetAttribute("value", "59");
}
HtmlElement elementById9 = this._wbSat.Document.GetElementById("ctl00_MainContent_CldFechaFinal2_DdlSegundo");
if (elementById9 != null)
{
	elementById9.SetAttribute("value", "59");
}
#endregion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Halcón Divino HlaconDivino@GMAil.Com (11 intervenciones) el 16/05/2015 19:39:24
Continuando con mis pruebas de poder consultar por un rango de HORAS les comento que para el Método GetReceivedDocuments(int year, int month, int day) SI puedo hacer la consulta.

La Hora de inicio que estoy usando es 14:00:00 y la final es la 14:59:59
Esta codificado en forma fija sobre el programa que anexo porque son pruebas

Este código es muy similar al que estoy usando en el método GetSendedDocuments(int year, int month, int day) (ver post anterior) . ... Solo cambian los nombres de las variables.

Pues no entiendo que pasa ... En Recibidos SI funciona y en Enviados NO funciona ... bueno medio funciona porque solo me toma la Hora de inicio como les describí en el post anterior.

Cualquier ayuda es buena.




#region Set atributo de la Hora Inicial
HtmlElement elementById4 = this._wbSat.Document.GetElementById("ctl00_MainContent_CldFecha_DdlHora");
if (elementById4 != null)
{
elementById4.SetAttribute("value", "14");
}
HtmlElement elementById5 = this._wbSat.Document.GetElementById("ctl00_MainContent_CldFecha_DdlMinuto");
if (elementById5 != null)
{
elementById5.SetAttribute("value", "00");
}
HtmlElement elementById6 = this._wbSat.Document.GetElementById("ctl00_MainContent_CldFecha_DdlSegundo");
if (elementById6 != null)
{
elementById6.SetAttribute("value", "00");
}
#endregion

#region Set atributo de la Hora Final
HtmlElement elementById7 = this._wbSat.Document.GetElementById("ctl00_MainContent_CldFecha_DdlHoraFin");
if (elementById7 != null)
{
elementById7.SetAttribute("value", "14");
}
HtmlElement elementById8 = this._wbSat.Document.GetElementById("ctl00_MainContent_CldFecha_DdlMinutoFin");
if (elementById8 != null)
{
elementById8.SetAttribute("value", "59");
}
HtmlElement elementById9 = this._wbSat.Document.GetElementById("ctl00_MainContent_CldFecha_DdlSegundoFin");
if (elementById9 != null)
{
elementById9.SetAttribute("value", "59");
}
#endregion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Alejandro (3 intervenciones) el 17/05/2015 15:37:49
Halcón Divino, a tu pregunta sobre si solo se descargaban los XML vigentes, te dí una respuesta errónea, están todos los xmls, con status vigente o cancelado, los que no están son los xmls de acuse de cancelación, solo se encuentran los pdfs, con el mismo uuid del XML pero con extensión pdf, valga la redondancia.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Halcón Divino HlaconDivino@GMAil.Com (11 intervenciones) el 29/05/2015 05:43:10
Alejandro

Si te trae todos los vigentes y los cancelados , como tu dices pero no los XML (me refiero al cfdi timbrados) de los que están Cancelados l

Pero los cancelados no se procesan a como esta el método ProcessResult

Si quieren capturar los CFDI cancelados tendría que agregarse al método ProcessResult lo siguiente

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
if (elementBtnDescarga.Count == 0)
{
	IEnumerable<HtmlElement> htmlElements = elementRenglon.GetElementsByTagName("span").Cast<HtmlElement>();
	IEnumerable<HtmlElement> htmlElements1 = htmlElements.Where<HtmlElement>((HtmlElement span) =>
	{
		bool innerText = span.InnerText != "";
		return innerText;
	});
 
	string DatosDelRenglon = htmlElements1.Aggregate<HtmlElement, string>("", (string current, HtmlElement span) =>
	{
		string str = string.Concat(current, span.InnerText, "|");
		return str;
	});
 
 
	char[] chrArray = new char[] { '|' };
	// 0 UUID 1 RFC Emisor 2 Nombre Emisor 3 RFC Receptor 4 Nombre Receptor 5 Fecha Emision6 Fecha Timbrado7 PAC 8 Total 9 Tipo CFDI 10 Estatus 11 Fecha Cancelacion
	string[] aDatosDelRenglon = DatosDelRenglon.Split(chrArray);
	try
	{
		if (aDatosDelRenglon[10] == "Cancelado")
		{
			String FechaCancelacion = aDatosDelRenglon[11];
			String FechaEmision = aDatosDelRenglon[05];
			// La lógica que deses agregar para identificar los cancelados
 
		}
	}
	catch
	{
		// Continua adelante o con el siguiente renglón de la tabla
 
	}
 
}


Y si solo se quiere filtrara los cancelados habría que incluir en los métodos de GetReceivedDocuments y en el e GetSendedDocuments algo así

1
2
3
4
5
6
7
#region Set atributo de Estatus
HtmlElement elementById10 = this._wbSat.Document.GetElementById("ctl00_MainContent_DdlEstadoComprobante");
if (elementById10 != null)
{
	elementById10.SetAttribute("value", "0");
}
#endregion

El 0 es Cancelado y el 1 sería Vigente



Y por Ultimo
Aún sigo sin poder acotar la HORA de CFDI Emitidos tal como lo expuse en el post anterior
Si alguien pudiera apoyarme

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de jose

Descarga Masiva XML SAT

Publicado por jose (22 intervenciones) el 01/06/2015 23:09:02
Dame oportunidad de terminar unos proyectos y si lo armo, se los paso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Carlos (2 intervenciones) el 13/06/2015 06:11:24
Pues yo descargue pero no me deja se queda colgada la pantalla cuando le doy en "consultar" de ahi no permite la descarga......
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Netzen (22 intervenciones) el 13/06/2015 08:19:12
Revisa que puedas entrar al Sat con tu explorador predeterminado y descarga un par de facturas manualmente y posteriormente inténtalo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por carlos (4 intervenciones) el 14/06/2015 04:21:53
En el sat, entra perfecto, el detalle es que en la aplicacion se queda como el cursor statico y solo gira cuando se mueve el mouse, si lo dejo ahi trabajando a ver si termina, nunca terminaa....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Netzen (22 intervenciones) el 14/06/2015 08:04:44
sistema operativo, nombre del explorador y versión del explorador?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por carlos (4 intervenciones) el 14/06/2015 15:29:07
Hola gracias, Windows 7, chrome 43.0.2357.124
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Netzen (22 intervenciones) el 14/06/2015 21:13:15
Prueba con una versión reciente de explorer
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Raymundo ray_gomora@hotmail.com (3 intervenciones) el 16/06/2015 18:55:21
Buenas Netzel me parece interesante la propuesta que hacen tu y Miguel pues bien les comento que tambient engo un sistema de facturacion y quiero agradecerles el aporte que han hecho con esto de las descargas masivas ya que es algo que me han estado pidiendo mis clientes, les comento que tambien estoy timbrando con Finkok y cualquier aporte que pueda hacer con todo gusto, utilizo 2 librerias para la generacion del xml y el timbrado, esto lo hago por el ahorro de tiempo en la programacion y solo me enfoco al diseño, pero me gustaria hacer todo por mi mismo, tanto generar el xml que no es complicado por que ya tengo parte de eso como el sellar que esto si me ha costado trabajo entenderlo, si ustedes tienen algo que me pueda ayudar se los agradesco y voy a seguir de cerca este foro y en lo que pueda ayudar con gusto gracias nuevamente y saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Rojas (2 intervenciones) el 30/06/2015 21:50:40
que tal buena tarde alguien me podria dar un ejemplo de como mostrar los xml descargados en un datagridview??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Miguel Salazar

Descarga Masiva XML SAT

Publicado por Miguel Salazar (22 intervenciones) el 30/06/2015 22:10:41
Crea una clase que se llama comprobante con los campos que trae, genera una lista, la llenas y en el datasource de tu grid le asignas la lista y ya.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Rojas (2 intervenciones) el 30/06/2015 23:25:37
pero quiero mostrar varios xml a la vz , un ejemplo, en una carpeta tengo 10 xml que descargue con el software de DESCARGA MASIVA XML SAT despues con un boton abro un form que me muestra un data grid y un folderbrowserdialog donde debo seleccionar la ruta donde se encuentran almacenados mis xml, al seleccionar la ruta, doy clic en un boton para q muestre los xml almacenados en esa ruta en un data grid dejo el codigo que estoy usando


1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim ds As New DataSet
        Dim archivo As String
        Dim dir As New DirectoryInfo(TextBox3.Text.Trim)
 
        For Each file As FileInfo In dir.GetFiles()
            archivo = TextBox3.Text.Trim & "\" & file.Name
            Dim leer As XmlTextReader = New XmlTextReader(archivo)
            ds.ReadXml(TextBox3.Text.Trim & "\" & archivo & ".xml")
            Me.DataGridView1.DataSource = ds.Tables(0)
        Next
 
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Miguel Salazar

Descarga Masiva XML SAT

Publicado por Miguel Salazar (22 intervenciones) el 01/07/2015 00:16:36
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if (open.ShowDialog(this) == System.Windows.Forms.DialogResult.OK)
{
	txtArhivoXMLCfdi.Text = open.SelectedPath;
	if (!string.IsNullOrEmpty(open.SelectedPath))
	{
		foreach (
			string nombreArchivo in
				Directory.GetFiles(open.SelectedPath, @"*.xml", SearchOption.TopDirectoryOnly))
		{
			_listaArchivos.Add(new FileXMLCFDI(idTemp, 0, nombreArchivo));
			idTemp++;
		}
	}
}
gvArchivosXML.DataSource = _listaArchivos;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por carlos (4 intervenciones) el 04/07/2015 17:12:16
a ustedes les manda a veces un mensaje de error:

"Ha ocurrido un error al procesar su ultima accion."

a que se debe o por que pasa ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Alvaro Ampudia (2 intervenciones) el 04/07/2015 20:42:19
creo que acaban de cambiar el portal del SAT... yo hice unas modificaciones la semana pasada al codigo de Miguel Salazarp para utilizarlo por consola, y lo puse a funcionar a final de Junio.... y funcionó perfectamente... pero en el portal del SAT ya pusieron una opción para seleccionar todos los CFDI que queremos descargar, y después ir a descargarlos en un ZIP...
Son una mentada de madre los del SAT.. hasta en sus portales son burocráticos, en vez de descargar directo el ZIP, tienes que ir a otra página para descargar el ZIP...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por moises (1 intervención) el 07/07/2015 19:07:44
Alguien sabra acerca de este error o de estos cambios como afectan el codigo ? Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Miguel Salazar

Descarga Masiva XML SAT

Publicado por Miguel Salazar (22 intervenciones) el 08/07/2015 15:46:17
Pues en realidad no facts, es otra opción para desecharlos pero en realidad como está el sistema no requiere ambio a menos que quieras descargar el zip , pues tendrás que hacer el cambio que yo creo que no vale la pena y si sí, pues compartan .
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Halcón Divino HlaconDivino@GMAil.Com (11 intervenciones) el 17/07/2015 21:48:29
Como podrán a ver analizado el método ""wbSAT_DocumentCompleted"" solo se ejecuta cuando se termina de dar CLICK al botón Descargar.

Alguna idea de como se pudiera Adecuar el programa para poder descargar los XML de 10 RFC diferentes de tal forma que se pueda autentificar las veces necesarias pero que a su vez se ejecute el método wbSAT_DocumentCompleted

Cualquier idea es buena.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por José (3 intervenciones) el 21/07/2015 21:08:09
Hola buen día, he revisado información en la red y encontré una aplicación que descarga más de 500 xml, ¿alguien tendrá el código o una idea de como realizarlo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Mauricio Sanchez mauribarajas8@gmail.com (2 intervenciones) el 29/07/2015 00:34:56
Hola que tal, estuve revisando el software para la descarga de +500 intentando hacerlo por horas
como Halcon Divino, pero creo que el problema persiste en que en el SAT tampoco tiene el filtro de horas, o mas bien no funciona.

Saludos.
Si alguien tiene algo subirlo para poder ayudar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por blind chairas2002@hotmail.com (1 intervención) el 31/08/2015 17:18:55
mi yo tengo un codigo que te autentifica las veces que quieres y te descarga por dia -
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Sergio (2 intervenciones) el 31/08/2015 22:09:00
hola buenos dias descargue tu codigo y solo me aparece cargando las facturas pero estas no cargan tendras alguna idea como soluciono este problema saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por leonardo leonardo.lopez.g@gmail.com (6 intervenciones) el 13/03/2016 23:02:01
hola me podrias ayudar si es que ya pasaste por esto, veo que tu desarrollo lo estas realizando en java lo que pasa es que ingreso la paguina del sat y me manda al form de la fiel y mejor modifico la url para ingresar por contraseña yal accesar por htmlunit me mandanda a una paguina de perfil del cual imprimo el html y no es el menu para descargar los xml.

public void submittingForm() throws Exception {
HtmlPage page1 = null;
try (final WebClient webClient = new WebClient()) {

// Get the first page
final HtmlPage page = webClient.getPage("https://portalcfdi.facturaelectronica.sat.gob.mx/");
page1 = webClient.getPage("https://cfdiau.sat.gob.mx/nidp/app/login?id=SATUPCFDiCon&sid=0&option=credential&sid=0");

webClient.getOptions().setUseInsecureSSL(true);

// WebResponse response = page1.getWebResponse();
// String content = response.getContentAsString();
// System.out.println(" Resultados :::: "+content);
System.out.println(" Resultados :::: "+page);
// Get the form that we are dealing with and within that form,
// find the submit button and the field that we want to change.
final HtmlForm form = page1.getFormByName("IDPLogin");




form.getInputByName("Ecom_User_ID").setValueAttribute(" user");
form.getInputByName("Ecom_Password").setValueAttribute("pass");
//final HtmlTextInput textField = form.getInputByName("userid");

// Change the value of the text field
// textField.setValueAttribute("root");
final HtmlSubmitInput button = form.getInputByName("submit");
// Now submit the form by clicking the button and get back the second page.
page1 = button.click();

//WebResponse response = page1.getWebResponse();
//List<NameValuePair> content = response.getResponseHeaders();
System.out.println(""+page1.asXml());
// System.out.println(page2.getBaseURL());
// System.out.println(page2.getBody().getIndex());
// System.out.println(page2.isHtmlPage());
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Mauricio Sanchez mauribarajas8@gmail.com (2 intervenciones) el 27/07/2015 21:36:12
Hola buen día
estuve leyendo su aporte y me parece genial ya que estoy realizando un
proyecto sobre este tema.

podrías pasarme la calve de cifrado para la descarga.

Gracias
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Sergio sergioalejandro_91@hotmail.com (2 intervenciones) el 31/08/2015 22:05:44
hola buenos dias descargue tu codigo y solo me aparece cargando las facturas pero estas no cargan tendras alguna idea como soluciono este problema saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por victor (1 intervención) el 09/11/2015 21:41:29
resolviste el problema, donde se queda cargando facturas, se queda enciclado esperando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rafael

Descarga Masiva XML SAT

Publicado por Rafael ralosoft@hotmail.com (12 intervenciones) el 03/11/2016 06:11:31
miguel salazar, buen dia fijate que estoy tratando de desarrollar la app asp.net de descarga masiva xml y me gustaria realizarla sin webbrowser ya que asp no contiene la herramienta en si, yo tengo un codigo en php que descarga los xml sin problemas si gustas podemos intercambiar codigos pero como te comento yo lo requiero sin el webbrowser, seria con webclient no se si me podrias ayudar, saludos. mi correo es ralosoft@hotmail.com o el de ralova.rrc@gmail.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Jose pepe.brito@gmail.com (1 intervención) el 10/10/2015 01:50:26
Alguien interesado en trabajar para una consultora Internacional desarrollando aplicaciones para facilitar el calculo de impuestos.
Experiencia en desarrollo de aplicaciones relacionadas con CFDI, Factura electrónica. Etc.
Enviar su CV a pepe.brito@gmail.com con copia a Jose.brito@mx.ey.com

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia gerar2ac517@me.com (44 intervenciones) el 23/11/2015 15:54:05
Estoy trabajando con Javascript y por medio del mismo pude hacer lo que hacen ustedes con VB.NET.
1) Extraje el código web
2) Analizé el código web, en busca de eventos "BTNDescarga onclick="
3) Hecho esto removi el Recupera.AccionCFDi o algo así por "https://portalcfdi.facturaelectronica.sat.gob.mx/"+cadena extraída
4) Paso todas las variables que me extraiga del código fuente a una matriz de datos.
5)En la matriz se almacenan todos los enlaces de descarga.


Cuando copio y pego uno de los enlaces generados en un navegador cualquiera me pide que me identifique con Usuario y CIEC.
Hecho esto, se descarga el XML sin mayor preámbulo.

La cuestión es cuando lo quiero descargar desde código, en vez de generarme un XML normal, me genera lo siguiente:
1
2
3
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="https://cfdicontribuyentes.accesscontrol.windows.net/v2/wsfederation/?wa=wsignin1.0&amp;wtrealm=https%3a%2f%2fportalcfdi.facturaelectronica.sat.gob.mx&amp;wctx=rm%3d0%26id%3dpassive%26ru%3d%252fRecuperaCfdi.aspx%253fDatos%253dkQOsJGVwD8sDoZrJpUP%252bLK9Wg536uW1c240WA2zvRSwMK%252begLlALYuuyqVIoiLU%252b%252b2NA1gly5lJ3hnwrS0DFD9YxM3LtOWQmxXOWnZrTPg8tn0kfkpUTJgUi0N0TxiQQlSnnkt2W5P5smEIIhIqJGoY9qlbnBrlgfDwY1yj3tqDQpKHBnF%252f%252fMT0ClKNKj2Iu89e4ZT3s2oYbhK87xMKUQ7sUjekMRTnnEEFcBF79iXNpZvJdY696EjGi2%252be1b6HUDFrdtQWlvx7zeEF4PiU0vcW5sn4Hrt8iDGUvf43UXtFKIyXNcBycnwn0dtmf4fsxvK%252b4HGBuTbLTHIOc3eWjaZrKcQ1wtAX17siauLICXxpWTifGNVUKpRKrmWoYmEeNUgojqDnn4%252fcxYVitWHoZ69LdjQroNmkpmCYXW8pTLsl%252fOG2oSXR8rtRwMmm2mmAyOSo8FQDhABwm%252fvSXZT%252bnA2KBU8JlZ5ZaMs8R6loDzxU%253d&amp;wct=2015-11-23T14%3a39%3a46Z&amp;wreply=https%3a%2f%2fportalcfdi.facturaelectronica.sat.gob.mx%2f">here</a>.</h2>
</body></html>

Presiento que debo identificarme con Id y pass en el código. Alguien tiene idea de como hacerlo?
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Miguel Salazar (1 intervención) el 23/11/2015 23:57:56
Pensaria que talvez debes manejar las cookies como lo hicimos en la plicación de escritorio para que almacenes los datos de la sesion , si no cada vez tendras que iniciar sesion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia gerar2ac517@me.com (44 intervenciones) el 24/11/2015 03:04:14
Hay una clase donde aparentemente puedes abrir un socket HTTP para descargar archivos, aunque en mi foro me sugieren que tal vez debería de preguntar al dueño de la página web como acceder desde la API.



Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia gerar2ac517@me.com (44 intervenciones) el 24/11/2015 06:39:36
Tienes razón, por ahi va la idea, en mi lenguaje hay un socket HTTP de conexión segura: HTTPSecureSocket

Y debes hacer una requisición a la cabecera o RequestHeader. así:

downloadSocket.SetRequestHeader(CookieName,CookieValue)

Ahora creo que debo encontrar la manera correcta de conseguir el nombre del cookie y el valor de Cookie.

Porque usando estos parámetros, ahora mi archivo descargado dice algo distinto:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Bad Request</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Bad Request - Invalid Header</h2>
<hr><p>HTTP Error 400. The request has an invalid header name.</p>
</BODY></HTML>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia gerar2ac517@me.com (44 intervenciones) el 25/11/2015 17:41:58
Listo. Al fin lo logré, ya puedo descargar los XML exitosamente.

En mi clase logré darme cuenta de estas cosas:

La cadena de texto con los valores a pasar como Cookie al Header del servidor del SAT, está compuesta por 4 Cookies y un elemento que no encontré:

Estos son los nombres de las cookies de las que se compone la cadena de texto, obviamente con sus respectivos valores de cookie, no solo los nombres:
FedAuthCONT
FedAuthCONT1
ASP.NET_SessionId
__CSRFCOOKIE


Para poder armar la cadena como a ustedes les sale en su programa, hago lo siguiente:
CookieName = Cookie1.name + "="+ Cookie1.value + ";"+ Cookie2.name + "="+ Cookie2.value + ";"+Cookie3.name + "="+Cookie3.value+";"+Cookie4.name+";"+Cookie4.value


PERO me doy cuenta de una cosa. Su Cookie de ustedes en al principio trae un valor SITESERVER=ID y un value como tipo XML.
que a mi no me sale, no se si salga de alguna parte en especifico.

También no se si haya consecuencias de no usarlo o si salga malformado el XML.


Mientras tanto ya lo probé y ya lo puedo descargar.

Al final hago lo siguiente:

HTTPSECURESOCKET.HEADERREQUEST("COOKIE",COOKIENAME)

En mi caso uso HttpSecureSocket, ustedes usan WebClient en VB.NET



Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Miguel Salazar

Descarga Masiva XML SAT

Publicado por Miguel Salazar (22 intervenciones) el 27/11/2015 00:26:52
Compartes la aplicación¨?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 01/12/2015 21:01:44
Por supuesto.

Solo lo adecuo y listo, tengo un problema:

ya probé descargando todo el código fuente con GetElementByID HTML y descarga el código fuente entero de la página.
y luego analizar con NTHField que es una especie de REGEX inclusive probé con Regex y obtengo lo mismo.

Cuando hay 500 facturas en un mes, se supone que hay 500 facturas.

Está conformado de 33 tablas de 15 elementos cada una y la tabla 34 tiene 5 elementos, dándonos un total de 500 facturas.

Ahora mi pregunta es porque solo tengo 478?

inclusive intente cachar todas las imágenes con el nombre "BtnDescarga", con el atributo "onclick", del siguiente modo, y todas las junto en un array o matriz, de este modo:

var enlacesjuntos;
var images = document.getElementsByName('BtnDescarga');
var srcList = [];
for(var i = 0; i < images.length; i++) {
srcList.push(images[i].getAttribute('onclick'));
};
window.status = srcList.join()



Es que está raro, según yo, de este modo examino toooooodo el código. No se si tenga que recorrer tabla por tabla.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 01/12/2015 22:36:30
Jejejejejejeje. me respondo a mi mismo. Estoy bien burro.

Obvio descargo 478, cuando no especifico que solo quiero facturas vigentes, cuando selecciono facturas recibidas.

En facturas recibidas no hay ningún enlace de descarga para descargar las canceladas.
por lo tanto la tabla tendrá facturas canceladas y vigentes.

Y cuando elijo que solo me descargue facturas vigentes, entonces si me descarga las 500's
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 16/12/2015 00:16:49
lo que no se es en las facturas emitidas, como se llama el control de donde obtienes el año.

Veo una variable que se llama Var Year = GetYear(); quiero entender que de allí toman el año, pero no sabría como recuperar ese valor.

para crear la carpeta de año conforme al valor del mismo.



Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Armando de la Vega (1 intervención) el 17/12/2015 18:12:50
@Gerardo lograste hacer funcionar tu código?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 17/12/2015 18:50:50
Estoy en eso, gracias, estoy viendo que el año y mes en las facturas emitidas, se obtienen de distinto control que en las facturas recibidas, por ejemplo:

Por ejemplo, yo así saco el año de emisión, en facturas emitidas, para crear una carpeta con el nombre del año:

+"function GetEmittedYear()" _
+"{ " _
+ " var e = document.getElementById('hfInicial').value;" _
+ " return e" _
+"};"


Para el mes emitido:
+"function GetEmittedMonth()" _
+"{ " _
+ " var e = document.getElementById('ctl00_MainContent_CldFechaInicial2_Calendario_text').value.substring(5,3);" _
+ " return e" _
+"};"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Halcón Divino (1 intervención) el 23/12/2015 19:56:23
COLEGAS ... Pregunta
Hubo algún cambio en la pagina web de descarga del SAT hoy Diciembre ????

Es que ahora no descargar los XML .


Si entras te darás cuenta en el portal del SAT que ahora te dice que se GENERO UNA SOITUD de DESCARGA la cual podrás RECUPERAR en la opción Recupera Solicitudes de descarga

Alguien sabe como soluciona esto ???
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de jose

Descarga Masiva XML SAT

Publicado por jose (22 intervenciones) el 23/12/2015 23:29:27
Acabo de probar, pero mi codigo lo deje con el panel del browser. y si funciona bien .
descargamasiva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por alonso luna (5 intervenciones) el 03/01/2016 23:13:43
Hola, buenas tardes

Alguien ha podido mostrar los cancelados en los comprobantes recibidos, en la matriz que regresa para mostrarlos, ya que hasta el momento en lo personal, solo me regresa los vigentes.

saludos y gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Saul Hernandez saul31925@hotmail.com (1 intervención) el 05/02/2016 20:06:06
Hola oye estoy interesado en el programa me lo podras pasar para estuduio , bueno codigo fuente y programa o solo programa
ya que esta haciendo un programa igual pero en java pero no resulto bueno fallafa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por asencio rmasenciop@gmail.com (5 intervenciones) el 08/02/2016 21:55:30
Hola Colegas

no se si tengan la oportunidad de apoyarme, no he podido generar el listado de documentos, es decir, no he podido realizar la búsqueda actualmente, logro iniciar sesión y acceder a la página de consulta correctamente, pero al momento de querer invocar el botón para la búsqueda, no me esta actualizando el document por tanto no veo ningún link de descarga.

Este es mi fragmento de código:
1
2
3
var docto = wbEmitidos.Document;
docto.GetElementById("ctl00_MainContent_TxtUUID").SetAttribute("value", "un UUID");
docto.GetElementById("ctl00_MainContent_BtnBusqueda").InvokeMember("Click");


según entiendo, esto debería disparar el postback y actualizar el grid en donde se muestran el documento y la descarga, sin embargo no puedo conseguir que se llene, al principio supuse que podría se un problema con los Cookies pero si ya se accede a la página de busqueda entonces no creo que sea el problema.

Alguna sugerencia de por donde pueda estar mi problema :|
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 08/02/2016 23:36:55
Hola Asencio.

Estas aplicando mal las cosas.

ctl00_MainContent_TxtUUID es el nombre del control un "INPUT" común y corriente.
lo que tu estas haciendo con SetAttribute, es aplicarle atributos de estilo CSS.

Quizás te hayas confundido por que los demás controles del formulario vienen ocultos por Hoja de Estilo (CSS)

Pero no es el caso de ese INPUT TXTUUID ni de el botón de búsqueda.


solo asignarle un value al control:
docto.GetElementById("ctl00_MainContent_TxtUUID").Value ="UN UUID";

respecto al InvokeMember click del btnBusqueda, es correcto.


Así podrás efectuar una búsqueda por folio Fiscal o UUID.


Por cierto, has logrado descargar mas de 500 XML por mes. yo me encuentro con un problema para poder procesar el control que representa la animación, llamado: ctl00_MainContent_UpdateProgress1


El cual si cambian sus atributos CSS antes y después de efectuada la consulta.


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por asencio rmasenciop@gmail.com (5 intervenciones) el 09/02/2016 02:58:49
Hola Gerardo Garcia, de antemano muchas gracias por responder.


Lamentablemente no entendí por completo tu solución. considerando el hecho de que que el metodo GetElementById devuelve un elemento HtmlElement, este no cuenta con una propiedad Value asignable

Intentando darle vuelta a la solución, opte por asignar los valores mediante el DomDocument, siendo este el ejemplo:

1
2
3
4
5
6
IHTMLDocument2 htmlDoc = docto.DomDocument as IHTMLDocument2;
var folioFiscal = htmlDoc.all.item("ctl00_MainContent_TxtUUID", 0);
folioFiscal.Value = "Un UUID";
 
var busqueda = htmlDoc.all.item("ctl00_MainContent_BtnBusqueda", 0);
busqueda.click();

Sin embargo el resultado es el mismo, sigo sin obtener un cambio en el documento que demuestre que se realizó alguna búsqueda.

Estoy seguro de que la invocación del evento del botón esta funcionando correctamente, derivado de que si cambia el css de los paneles de resultados:

ctl00_MainContent_ValidationSummary1
ctl00_MainContent_PnlNoResultados
ctl00_MainContent_PnlResultados


Si embargo pareciera que lo que no ocurre es la actualización que debería de venir con el PostBack, es decir los datos.

Respecto a lo de descargar mas de 500 documentos, pues primero permiteme descargar 1 ja ja :), si mencionas que el problema es de estilos, podría estar en el el valor que tenga en la propiedad Style

Para el caso de HtmlDocument:
WebBrowser1.Document.GetElementById("ctl00_MainContent_UpdateProgress1").Style

Para el caso de DomDocument:
WebBrowser1.Document.DomDocument.GetElementById("ctl00_MainContent_UpdateProgress1").Style.Display
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 09/02/2016 16:30:21
Bueno, tienes razón.


Es que tu estas usando VB.net, y yo directo Javascript.
Yo veo que tu usas el control txtUUID, ese control es para buscar solo un xml con un folio fiscal en especifico.
Dicho control no tiene atributos de estilo que te impidan usarlo.

En mi caso yo hago esto:

1
2
3
function setDDLUUID() {
document.getElementById('ctl00_MainContent_TxtUUID').value = '94CD386C-66F8-4555-BBCD-5F1A9148FD3E'";
}

después ejecutas el click del botón para hacer la búsqueda



para sacar los enlaces de descarga del mes deberías buscar así:
var Images = document.getElementsByName('BtnDescarga'), su atributo onclick

y luego analizar images y reemplazar return Accioncfdi, por el comienzo de la dirección
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Carlos (1 intervención) el 09/02/2016 19:53:22
Hola Gerardo Garcia! Saludos...crees que puedas compartir tu codigo? Solo la parte donde haces la descarga? Estoy utilzando nightwatch.js & selenium ;tengo problemas al descargar los xml....al momento solo puedo descragar xml como este

1
2
3
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="https://cfdicontribuyentes.accesscontrol.windows.net/v2/wsfederation/?wa=wsignin1.0&amp;wtrealm=https%3a%2f%2fportalcfdi.facturaelectronica.sat.gob.mx&amp;wctx=rm%3d0%26id%3dpassive%26ru%3d%252fRecuperaCfdi.aspx%253fDatos%253dm6rOabkdIfSCUD%252b%252bBC1K3Ian0c%252f1j7SsYpFYIczIZ5e88L5mAKtqpTtW5UBoJ3uqCaRBBbgHaXfZ9t40LoKOxvoz8YnsSCRJ4I5It5nhwdbSELsNXD42kvW35iOeFye4l%252fOQiIdBA5b9sOkWU8Yk7qGr0yCUdStcIMkrNhVyRkwjyOIWPcpR190IziglLjOzGMRY%252fmcJRlIWU8kcvgo4bu2pQ3tFiC0dCrsyxWtOkW3apssw4MVh1e6di0Md6EDPe6IVUSX0UDIuYTpfnC89C%252bNLiL0rc4qmTabu1Xnq7DcCEcv%252fcM9%252fy%252bnk2YCP12kTXzEKJHFZI%252fEqnkrPBKQZVMx76wK7G55gH8ybp%252bBHLWsc1%252fbPuxKVbbdHtwDUPvrRHwH30cGMbat4BBXD8jbkylp1rDfmOQh72R5c9LSnQjrw13l%252f6YBFKpnIAAG2VC1t2lGiFZLPb6fTVAJtr8UC2iUUoO%252bfEDJhXGXNuTRYX8w%253d&amp;wct=2016-02-09T18%3a43%3a58Z&amp;wreply=https%3a%2f%2fportalcfdi.facturaelectronica.sat.gob.mx%2f">here</a>.</h2>
</body></html>

justo lo que lo posteaste anteriormente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por asencio (5 intervenciones) el 09/02/2016 22:03:28
Hola Gerardo García


Fijate que me vi obligado en la necesidad de pasar el WebControl a un control visible para hacer el proceso paso a paso, el detalles que vi es que estaba utilizando el System.Windows.Forms.WebBrowser, como mi proyecto es WPF el control es System.Windows.Controls.WebBrowser, en este segundo, la ejecución del evento del botón se realiza sin problemas.

De momento ya estoy descargando los documentos, pero sigo con algunos detalles para sincronizar correctamente. posterior a solucionar el problema de la sincronización de los postbacks realizaré las pruebas con descargas de mas de 500 documentos.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 11/02/2016 01:20:50
Hola Ascencio

En efecto, el txtUUID parece ser que tenga un atributo de invisible, este es el código fuente donde se alude: <input name="ctl00$MainContent$TxtUUID" type="text" maxlength="36" id="ctl00_MainContent_TxtUUID" disabled="disabled" class="aspNetDisabled" style="width:450px;text-align: center">
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 11/02/2016 01:46:15
Según estuve leyendo en otro foro. Una vez hecha la consulta. se espera a que el control: ctl00_MainContent_PnlResultados sea visible una vez visible, se pueda descargar los XML.

Es que en mi caso está hecho distinto, con uno bloque de código hago la consulta. Espero a que se quite la animación que dice "Espere un momento" y una vez que se quita y se llena el grid, ahora si presióno un botón con el cual tengo un código que captura con GetElement todas las incidencias de BTNDESCARGA y lo clásico, agarro el enlace,le corto el principio del texto, lo concateno con el texto: https://portalcfdi-bla-bla-bla y el resultado de enlaces los almaceno en una matriz de datos.


Pero ahora veo que debería de automatizar mi código y procesar ese control PnlResultados, pero no tengo idea de como hacerlo, para no tener que hacer dos acciones y a su vez resolvería el problema para descargar un día y después otro día y otro día hasta acabar todos los días del mes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 11/02/2016 02:20:07
También vi en uno de los proyectos de aquí que analizan la animación que yo quería analizar, pero no la comprendo, se que usan un While para esperar a que se quite la animación "Espere un momento", una vez que se quita, se prosigue con la captura del grid.

este es el código que ponen:

1
2
3
4
5
6
7
8
9
10
11
While True
	flag = True
	Application.DoEvents()
	Dim htmlElement2 As System.Windows.Forms.HtmlElement = Me._wbSat.Document.GetElementById("ctl00_MainContent_UpdateProgress1")
	If (Not (htmlElement2 Is Nothing)) Then
		If (htmlElement2.Style = "display: none;" AndAlso num > 100000) Then
			Exit While
		End If
		num = num + 1
	End If
End While

Alcanzo a entender lo siguiente:
1) se hace un While para que Mientras sea verdadero, pero verdadero que?
2) Si ctl00_MainContent_UpdateProgress1 no tiene nada, entonces pasar al siguiente IF
3) Si el atributo de estilo CSS de ctl00_MainContent_UpdateProgress1 es igual a display: none; y tambien num es igual a 100000
entonces salir de While
4) suman mas 1 por cada vez que sea cierto el while hasta llegar a 100,000

La cuestión es que yo quiero aterrizar esto en Javascript y ya me bloquee

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 11/02/2016 03:42:29
Ahora entiendo que hacen un While (true) para hacer un bucle infinito, hasta que el evento UpdateProgress1 cuando siga siendo oculto Display:none y num sea igual a 100000 entonces romper el bucle, bueno salir del bucle y entonces proseguir.

lo que no se es si pueda hacer ese While (true) en javascript, creo que probare en FiddleJS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 11/02/2016 04:27:25
Me puse a estudiar ese código y parece que lo he entendido. les paso una muestra para que me digas si estoy un error o no.
Lo he pasado a Javascript, y me parece que debería de funcionar así:

1
2
3
4
5
6
7
8
9
10
11
var num = 0;
while (true) {
var flag = true;
var HtmlElement2 = document.getElementById('ctl00_MainContent_UpdateProgress1');
If (HtmlElement2 !== null) {
            If (HtmlElement2.getAttribute('style') == ‘display: none;’ && num > 100000) {
break;
            }
num++;
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Luis (1 intervención) el 11/02/2016 05:12:22
Hola a todos:

He descargado el código que compartido por Edén:
Descarga Masiva XML SAT
Publicado por Edén (21 intervenciones) el 10/05/2015 08:50:40


pero tengo un problema ya que algunas veces recibo un mensaje de error:

Se detectó System.ArgumentNullException
Nombre del parámetro: uriString

Esto ocurre en la linea:
1
flag = (_wbSat.Url != new Uri("https://portalcfdi.facturaelectronica.sat.gob.mx/ConsultaReceptor.aspx") ? true : !(_wbSat.Url != new Uri(_currentUrl)));

El parámetro que marco en Negrita no siempre se asigna, ¿Alguien que haya solucionado este problema?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 11/02/2016 06:01:55
Me puse a depurar mi código con JsFiddle y funciona el Bucle y probé rompiendo el bucle con otro valor y funciona.
Obvio en Jsfiddle como no existe ctl00_MainContent_UpdateProgress1 pues el bucle correrá infinitamente.

Pero ya montado en la interfaz, como ese control si existe,no debería tener problemas, este es el código:

1
2
3
4
5
6
7
8
9
10
11
12
var num = 0;
while (true) {
  var flag = true;
  var HtmlElement2 = document.getElementById('ctl00_MainContent_UpdateProgress1');
  if (HtmlElement2 !== null) {
    if (HtmlElement2.getAttribute('style') == 'display: none;' && num > 100000) {
      break;
    }
  }
  num++;
  //alert(num);
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por FERNANDO HERNANDEZ (8 intervenciones) el 11/02/2016 06:26:21
Tengo una duda Gerardo.

¿como haces para que tu codigo javascript interactue con el contenido de la pagina del sat?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 11/02/2016 06:40:08
Hola Fernando Hernandez

Uso un lenguaje de programación llamado RealBasic (multiplataforma) y uso un VisorHTML y atreves de allí con un plugin ejecuto código Javascript e intervengo el código fuente del SAT
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por FERNANDO HERNANDEZ (8 intervenciones) el 11/02/2016 06:45:57
oh, muy interesante, gracias por tu pronta respuesta.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por asencio rmasenciop@gmail.com (5 intervenciones) el 11/02/2016 13:37:17
Hola colegas, buen día.


Como tal ya pude resolver los detalles que tenia, efectivamente Gerardo Garcia, hay que poner bucles de espera para dar tiempo a los controles para que actualicen su estado posterior al postback que se hace (recordando que la página está en .net por las extensiones .aspx).

en mi caso yo no espero el estado del progres ctl00_MainContent_UpdateProgress1, en su lugar espero el cambio en los controles a los que estoy accediendo en el momento, por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
docto.GetElementById("ctl00_MainContent_RdoFechas").InvokeMember("Click");
while (docto.GetElementById("ctl00_MainContent_RdoFechas").GetAttribute("onclick") != "")
{
     //Espera a que se procese la selección del tipo de busqueda
     Application.DoEvents();
}
 
..
...Asigno las fechas
..
docto.GetElementById("ctl00_MainContent_BtnBusqueda").InvokeMember("Click");
 
while (docto.GetElementById("ctl00_MainContent_PnlNoResultados").Style.Contains("none")
                && docto.GetElementById("ctl00_MainContent_PnlResultados").Style.Contains("none"))
{
       //Espero al panel de resutados o al panel de falta de los mismos (opcionalmente pordrias poner al panel de validación)
        Application.DoEvents();
}

Espero les sea de ayuda, en mi caso la línea de DoEvents() es la que hace la magia, si no se usa se genera un bloqueo (en el caso de .net) en el proceso y esto evita que se actualice el estado de los controles posteriores.

Actualmente ya he podido descargar de mas 200 documentos, tanto por UUID's y por fechas, me falta descargar los recibidos por fecha y las pruebas de mas de 500 documentos, de momento yo no he tenido la necesidad de inyectar js, espero les sea de ayuda.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 11/02/2016 19:00:40
Estimado Asencio, muchas gracias por tu respuesta. realmente es muy ilustrativa y me encuentro trabajando en ello.

Tu sabes si hay alguna alternativa a Application.DoEvents() en JavaScript?
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por asencio (5 intervenciones) el 12/02/2016 00:04:21
Según entiendo vuelve a generar un load derivado de que cada uno de esos invokes genera postbacks. asi que podrías ir validando el origen de cada load.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por VioletaM violeta.mendez001@gmail.com (5 intervenciones) el 23/02/2016 23:40:32
Hola amigos, el link de mega esta roto!

¿Alguien tiene el link del proyecto que estan construyendo para bajarlo y seguir aportando?

Alguien que me lo pase, por fis.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de jose

Descarga Masiva XML SAT

Publicado por jose mikejock@gmail.com (22 intervenciones) el 24/02/2016 04:12:18
ya lo puse de nuez.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Violeta (5 intervenciones) el 26/02/2016 00:51:37
Muchas gracias!

Ahora se me ocurre hacer lo siguiente;

Descarga Masiva de XML de manera Simultanea, como el logeo es por navegador, habra alguna forma de indicarle al webbrowser que utilize otro navegador?

Asi si tenemos explorer, firefox, crome, opera etc podemos descargar de forma masiva y simultanea de varios RFcs.

Creen que sea posible?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por JL licjleal@gmail.com (14 intervenciones) el 26/02/2016 01:10:14
Que tal Gerardo disculpa te moleste, me podras pasar el codigo fuente de java script de como le haces para obtener las facturas emitidas por favor te agradecere demasiado...

Saludos

Que bueno que exista este tipo de comunidades
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo (24 intervenciones) el 26/02/2016 14:47:41
Buenos días Violeta

Hasta donde tengo entendido, el Web Browser, solo funciona con IE, ya que es de Microsoft.

Saludos GERC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por JL (14 intervenciones) el 26/02/2016 17:55:51
Que tal Gerardo no se si viste mi mensaje....

Ando buscando ayuda sobre la descarga masiva de xml del SAT y vi que tu andabas haciendolo con JavaScript podrias compartir?

Gracias.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Andres Chavez (2 intervenciones) el 11/04/2016 08:17:34
Jose como fue que lograste descargar los xml que interesante!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo García (44 intervenciones) el 11/03/2016 18:09:22
Buenos Dias


Acabo de ponerme a descargar XML de marzo.
y no me había percatado hasta hoy que unos XML si los descarga y otros no.

Podrían probar a descargar?
No se si haya fallas en el servidor del SAT.

Porque este fin de semana, hubo unas fallas medio raras. Consultabas un RFC, y te daba los XML de un RFC totalmente distinto.
Para el dia lunes dejó de hacer esas cosas raras.


Como les comentaba hay archivos que no descarga y dicen: Object Moved / Object Moved to/ ErrorDescarga.




Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por blind1986 chairas2004@hotmail.com (2 intervenciones) el 11/03/2016 21:19:42
un problema es que también se están repitiendo en la busquedas hay que poner el filtro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Violeta (5 intervenciones) el 13/03/2016 22:02:31
EL problema es del SAT, todos los soft de descarga existentes estan sin funcionar inclusive el consentido del SAT, CONTPAQi con su XML en linea.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 14/03/2016 05:36:05
Compañeros, después de estos largos días de angustia por temor a que hubieran cambiado algo en la página y hubiera que reprogramar.


Hoy a las 10:34 GMT +6.00 He consultado facturas recibidas del mes de marzo, y las he descargado todas, sin archivos malformados como antes.


Ahora lo que veo es que tendré que modificar mi código para analizar cuando venga malformado el código, y en tal caso eliminar el XML.



Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por leonardo leonardo.lopez.g@gmail.com (6 intervenciones) el 14/03/2016 05:43:48
Hola quien me puede ayudar, quiero descargar cfdi de la pagina del sat estoy realizando un par de pruebas con htmlunit, si acceso por esta url https://portalcfdi.facturaelectronica.sat.gob.mx/ me manda al form de FIEL para que desde ahi puedas accesar, lo que yo quiero es ingresar por contraseña entonces ingreso por esta url https://cfdiau.sat.gob.mx/nidp/app/login?id=SATUPCFDiCon&sid=0&option=credential&sid=0 pero al accesar con htmunit,me direcciona a una paguina donde muestra el perfil del usuario y de ahi no pido pasar tal parece que direcciona a una paguina diferente, ademas al imprimir ese html del perfil, en un input del mismo html me imprime un token en xml.

este es parte de mi codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
public void submittingForm() throws Exception {
HtmlPage page1 = null;
try (final WebClient webClient = new WebClient()) {
 
// Get the first page
final HtmlPage page = webClient.getPage("https://portalcfdi.facturaelectronica.sat.gob.mx/");
page1 = webClient.getPage("https://cfdiau.sat.gob.mx/nidp/app/login?id=SATUPCFDiCon&sid=0&option=credential&sid=0");
 
webClient.getOptions().setUseInsecureSSL(true);
 
//	WebResponse response = page1.getWebResponse();
//	String content = response.getContentAsString();
//	System.out.println(" Resultados :::: "+content);
System.out.println(" Resultados :::: "+page);
// Get the form that we are dealing with and within that form, 
// find the submit button and the field that we want to change.
final HtmlForm form = page1.getFormByName("IDPLogin");
 
 
 
 
form.getInputByName("Ecom_User_ID").setValueAttribute("dato");
form.getInputByName("Ecom_Password").setValueAttribute("dato");
//final HtmlTextInput textField = form.getInputByName("userid");
 
// Change the value of the text field
// textField.setValueAttribute("root");
final HtmlSubmitInput button = form.getInputByName("submit");
// Now submit the form by clicking the button and get back the second page.
page1 = button.click();
 
//WebResponse response = page1.getWebResponse();
//List<NameValuePair> content = response.getResponseHeaders();
System.out.println(""+page1.asXml());
//	System.out.println(page2.getBaseURL());
//	System.out.println(page2.getBody().getIndex());
//	System.out.println(page2.isHtmlPage());
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Violeta (5 intervenciones) el 14/03/2016 20:55:02
Les comparto este código express que utilize para sobrellevar estas fallas del SAT.

Una vez descagargado valido que tenga el nodo y si no lo tiene lo elimino.

Public Function getXMValid(ByVal path As String) As Boolean
Dim res As Boolean = False
Dim Findstring = IO.File.ReadAllText(path)
Dim Lookfor As String = "cfdi:"

If Findstring.Contains(Lookfor) Then
res = True
End If

getXMValid = res
End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 15/03/2016 15:33:33
Les comento que aun sigue presentando fallas el SAT, ya no tanto.


Por ejemplo hasta ayer a las 10:30 de la noche puede descargar varios meses sin problema.
Hasta las 12:00pm ya empezó de nuevo a descargar una parte en blanco y otra normales.


Entonces, opté por saltarme los XML varios para evitar error:
Try
#pragma BreakOnExceptions false

Dim xDocument As New XmlDocument

xDocument.LoadXml(f.item(i))


ProcessNode(xDocument.FirstChild)
GrabarCFDiRecibido(xDocument)
//añadir un pragma



Catch err As XmlException
Msgbox "Archivo: " + (str(g.name) + Endofline + EndOfLine+ "XML Malformado o Vacio")

End Try
//quitar el pragma
end if


Ahora tengo en mente, por cada archivo ilegible o en blanco crear un recordset para hacer un reporte de archivos dañados, que me diga Hora de descarga, nombre del archivo, y causa del error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 15/03/2016 17:34:12
Finalmente, después de vario rato, pensé en algo para hacer que Después de presionar el Botón Buscar CFDI no choque al querer establecer un nuevo día para buscar.

Ustedes usan Application.DoEvents para esperar a que los controles se desocupen, es decir esperar a que el letrero emergente de "Espere un momento" desaparezca para proseguir a elegir un nuevo día y presionar el botón Buscar.


En VB.Net existe Application.DoEvents y en el programa que uso RealBasic también existe.
Pero como ya comenté, para hacer lo que ustedes hacen "webscrapping", necesito inyectar código Javascript para intervenir la página y que interactue con mi código de RB.

Pero en Javascript, no existe un "Applications.ªDoEvents" como tal, entonces pensé en "SetTimeOUT" para contar en reversa X milisegundos para ejecutar un código.


Entonces, ejecuto esta función, justo después de presionar el botón de BUSCAR, y cuento 5000ms(5 segundos) para cambiar al siguiente día.

Y funciona.


Ahora el problema sería que hay veces que el servidor del SAT habrá veces que tarde mas en responder a la consulta, y en ese caso no aplicará esta solución.
Entonces tengo que trabajar en obtener la cantidad de Milisegundos que tarda el control en liberarse para pasarle ese valor a SetTimeOut.

No se si esté en lo correcto, respecto a este planteamiento.


Este es el código del que les hablo:

1
2
3
4
5
6
function setDDLday() {
  setTimeout(function(){
  var DaySelector = document.getElementById('ctl00_MainContent_CldFecha_DdlDia').setAttribute('style','width: 45px'); //Quitamos CSS
  document.getElementById('ctl00_MainContent_CldFecha_DdlDia').value = '02' //Volvemos a asignar otro dia
  }, 5000);
  }"

Y acto seguido, presiono el botón buscar:

1
2
3
function DoQuerySAT() {
  document.getElementById('ctl00_MainContent_BtnBusqueda').click();
  }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por FERNANDO HERNANDEZ (8 intervenciones) el 16/03/2016 00:48:39
Buenas tardes Gerardo.

Creo que el uso del SetTimeOut es necesario, pero no de esa forma, yo mas bien esperaria a que se mostraran los resultados o en su defecto el mensaje de no resultados por medio del SetTimeOut, esto es, cuando den click al Boton Buscar CFDI, deberas activar el SetTimeOut para que a un tiempo futuro verifiques si ya mostro los resultados, de ser asi cambias de dia, de lo contrario vuelves a lanzar el SetTimeOut, para volver a verificar asi indefinidamente hasta obtener los resultados.

Ejemplo

1
2
3
4
5
6
7
8
9
setTimeout(VerificaResultados,100);  //Ejecutar por primera vez en el evento del boton de Buscar CFDI
 
function VerificaResultados()
{
  if($("#ctl00_MainContent_PnlNoResultados").is(":visible")||$("#ctl00_MainContent_PnlResultados").is(":visible"))
    //Cambiar de dia
else
   setTimeout(VerificaResultados,100);
}

seria algo asi. lo puse con jquery, pero si no lo tienes a la mano en la pagina, podrias cambiarlo para accesarlo directo con el DOM.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 19/03/2016 06:29:30
Efectivamente, así es como debe de comportarse, gracias.

Lo entendi asi.
1) Ejecuto un SetTimeOut.
2) Este SetTimeout deberá ejecutar la función "VerificaResultados" a un intervalo de 100ms, es decir debe ejecutar la función seleccionada
pasados los 100ms.
3) Abajo he declarado la función "VerificaResultados", donde hacemos lo siguiente:
3.1) Analizamos si el Panel de Resultados "O" el "Panel de NO Resultados" está visible.
Si la premisa es correcta, entonces mostrar una alerta diciendo "Hay Resultados". Notase que uso un alert para probar la función, una vez probada cambio a ejecutar mi código para capturar los xml de la rejilla.

De lo contrario, es decir en caso de no estar visibles ninguno de los dos paneles, volver a ejecutar con los mismos 100ms el SetTimeOut.
O sea que no se dejará de ejecutar hasta que los paneles sean visibles.

Chequé el código y le moví unos detallados para que funcionara, y ya funciona,salvo por una cosa.

Cuando Hay resultados, o sea cuando el Panel de Resultados está visible no hay ningún problema, pero cuando está visible el panel de NO RESULTADOS, no hace nada

Y efectivamente ya revisé el código fuente de la página y así dice, el letrero que dice "No existen registros que cumplan con los criterios de búsqueda ingresados, intentar nuevamente"
y este letrero se encuentra de una etiqueta H2 con clase "Subtitle" y a su vez este se encuentra dentro de ctl00_MainContent_PnlNoResultados.


Este es el código como lo tengo hasta el momento:

setTimeout(VerificaResultados,100);
function VerificaResultados() {
if ($('#ctl00_MainContent_PnlNoResultados').is(':visible')||$('#ctl00_MainContent_PnlResultados').is(':visible')) {
alert('Hay resultados');
} else {
setTimeout(VerificaResultados,100);
};
};
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 19/03/2016 06:58:11
Hola de nuevo.

Como te mencionaba, incluso ya probé poniendo solito el PNLnoResultados y nada, pero lei que la función "IS" de Jquery tiene ese fallo al evaluar "Visible" para ver si un control está visible. Cuando en su atributo CSS dice: display:inline, igual te devuelve un valor falso como si aun estuviera oculto, entonces estoy tratando de darle la vuelta.

Mientras tanto reformé el código para prepararlo para dos Condiciones, una vez acabando de pasar el Letrero de "Espere un momento"
Condición 1: En caso de que el PNLResultados sea visible, entonces descargar las facturas de la rejilla (Por ahora, decir con un Alert "Si hay resultados")

Condición 2: En caso de que PNLNOResultados sea visible, entonces cambiar de día (Por ahora, decir con un Alert "NO hay resultados").

Este es mi código:

1
2
3
4
5
6
7
8
9
10
setTimeout(VerificaResultados,100);
          function VerificaResultados() {" _//Quitamos CSS
                               if ($('#ctl00_MainContent_PnlNoResultados').is(':visible')) {
                                           alert('No hay resultados');
                               } else if ($('#ctl00_MainContent_PnlResultados').is(':visible')) {
                                           alert('Si hay resultados');
                               } else {
                                      setTimeout(VerificaResultados,100);
                                };
          };



Lo curioso es que si creo lo que lei respecto a esa deficiencia del IS Visible de jQuery, porque lo cambio a ":hidden" y así si me evalua sin problema cuando el control está oculto.

No se si habrá modo de evaluar el display:inline
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 19/03/2016 07:38:20
Listo!!!!!!.


Ya lo resolví, me puse a investigar y si, a veces no todos los controles los puedes consultar con Visible, pero lo resolví, Analizando su CSS cuando sea Distinto a "None", entonces,mostrar la alerta, así:

1
2
3
4
5
6
7
8
9
10
setTimeout(VerificaResultados,100);
          function VerificaResultados() {
                               if ($('#ctl00_MainContent_PnlNoResultados').css('display') != 'none') {
                                           alert('No hay resultados');
                               } else if ($('#ctl00_MainContent_PnlResultados').is(':visible')) {
                                           alert('Si hay resultados');
                                } else {
                                      setTimeout(VerificaResultados,100);
                                };
          };


Entonces queda así el código,ahora si ya me toca a mi armar la secuencia, meter esto en un módulo y hacerlo interactuar con el resto de mi código.

Espero les sirva para cualquiera que se encuentre en el mismo predicamento.

y Muchas gracias Fernando Hernandez por tus acertados comentarios
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 21/03/2016 00:57:48
Colegas, les paso el código que use para procesar los estados de descarga.
Como mencionaba, esperamos a que los controles o paneles carguen, es decir cambien su estado a visible por sus atributos CSS.

Obtengo 3 Resultados:
1) Hay Resultados = con el cual yo puedo invocar mi modulo que descarga todas las facturas existentes
2) Hay mas de 500 registros = con el cual yo invoco el modulo para descargar día por día, recorriendo los 31 días del mes.
3) No hay Resultados = Depende en donde me encuentre, si estoy consultando el mes en general, pues no hago nada, si estoy consultando el día de un mes, entonces lo uso para cambiarme de día.


Este es el código en Javascript (Solo analiza estos tres estados):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
setTimeout(VerificaResultados,100);
              function VerificaResultados() {
                               if ($('#ctl00_MainContent_PnlNoResultados').css('display') != 'none') {
                                           document.title = 'No Hay Resultados';
                               } else if ($('#ctl00_MainContent_PnlResultados').css('display') != 'none') {
                                                       if ($('#ctl00_MainContent_PnlLimiteRegistros').is(':visible')) {
                                                                  document.title = 'Hay mas de 500 registros disponibles para descargar';
                                                       } else {
                                                                  document.title = 'Hay Resultados';
                                                       };
                               } else {
                                      setTimeout(VerificaResultados,100);
                                };
               };

Saludos y Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por JL (14 intervenciones) el 21/03/2016 06:42:42
Gerardo me podrias guiar un poco solo estoy con cURL viendo pero al momento de generar el token en wsfederation es lo que me falta me podrias ayudar?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 21/03/2016 07:05:54
Perdón mi ignorancia, pero que intentas lograr con el token?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por JL (14 intervenciones) el 21/03/2016 07:09:15
Gracias por contestarme, lo estoy haciendo con cURL y php, ando mas o menos perdido.

Hago un post ha https://cfdiau.sat.gob.mx/nidp/app/login?id=SATUPCFDiCon&sid=1&option=credential&sid=1

Pero no me deja pasar el login no se si me puedas guiar, hacemos el post y envio lo que es RFC y clave y agarro las cookies pero al momento de dar el otro POST me envia a las credenciales creo que no tomo el token del wsfederation que regresa o que estoy haciendo mal?.

Te agradezco.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 21/03/2016 17:25:20
Mira, una cosa es una cosa y otra es otra cosa.

1) Si no has podido ni entrar al sistema, estas entrando de un modo erróneo. (Identificarte con RFC y Ciec para entrar al sistema).

Para esto tu tienes que entrar así:
1
Dim Acceso as String = "https://cfdiau.sat.gob.mx/nidp/app/login?id=SATUPCFDiCon&sid=0&option=credential&sid=0&Ecom_User_ID=" + txtRFC.text.uppercase + "&Ecom_Password=" + txtCIEC.TEXT

En mi caso ves expresada esta variable del tipo String para mi lenguaje, tu tendrás que adaptarla a PHP que es lo que me dijiste que usas.
1) Como vez es una cadena de texto, Donde como te habrás dado cuenta añado mi RFC y CIEC para poder entrar al sistema.

Así de sencillo es.
Esta variable deberás cargarla como un sitio normal a que cargar, como si dijeras:
1
http://www.google.com


Al cargar este sitio que te menciono, te mostrará una pantalla con credenciales, será esta dirección:
1
https://cfdiau.sat.gob.mx/nidp/app?sid=0
.

Cuando te arroje esta dirección, significa que tus credenciales son correctas.

Ahora que creo a que te refieres con cookies y token.

Yo he visto varios que guardan cookies para entrar al sistema.

En mi caso no fue necesario.


En mi caso simplemente hice uso de un IF al cargar "https://cfdiau.sat.gob.mx/nidp/app?sid=0", en mi caso lo hice el evento terminar carga de mi visor HTML, el cual posee una variable que se llama URL, entonces si URL = "https://cfdiau.sat.gob.mx/nidp/app?sid=0", entonces, ahora carga "https://portalcfdi.facturaelectronica.sat.gob.mx/ConsultaReceptor.aspx" --para facturas recibidas
o "https://portalcfdi.facturaelectronica.sat.gob.mx/ConsultaEmisor.aspx" -- para facturas emitidas

Según veo hay una función en PHP en la que puedes analizar cuando el documento acabe de cargar:
1
$(document).ready(function()
.

No estoy muy seguro de esto, pero puedes probar.


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 21/03/2016 17:30:53
Leyendo de nuevo tu correo.

Ya capto mejor lo que hiciste:

1) te iniciaste con Usuario y contraseña.
2) Te manda a las credenciales. ¿cierto?

OJO: Si te manda a las credenciales, y a la esquina superior derecha dice tu RFC y cerrar sesión. Es normal, así tiene que ser, eso indica que entraste correctamente al sistema. No esperes a que te mande directamente a la página del SAT, porque eso no sucederá.

Tu tienes que redirigir el navegador a las paginas que te mencioné, depende si quieras cargar facturas recibidas o emitidas



Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 21/03/2016 17:52:04
Por cierto, ahora que recuerdo, hablando de cookies, porque de todos modos son necesarias para descargar cada uno de los enlaces a los XML, para poder pasárselas a la cabecera del cliente de descarga.

Como mencioné hace tiempo uso a parte de mi programa uso Javascript.(para el webscrapping)
así como ustedes usan VB.net y otro elemento que no recuerdo el nombre que incluyen (para el webscrapping) también.


El punto es que muchos de aquí usan winininet.dll para captar las cookies y de allí hacer el armado de la cookie tal, como nos la pide el SAT.

En mi caso vi que en Javascript, puedes usar "document.cookie" para leer las cookies, pero sucede que solo lee las cookies de la web que estas viendo, no es capaz de leer todas las cookies navegadas. Corrijanme si me equivoco.

Por lo tanto al hacer alert('document.cookie') obtengo un mensaje en blanco.

Así que tuve que recurrir a un plugin de un tercero para poder obtener acceso a todas las cookies,(para windows) el problema es que para que funcione, necesito cargarlo con un visor de HTML el cual es mas lento y tarda en dibujar el sitio.


No se si haya manera de obtener las cookies con puro javascript, para prescindir de este plugin y usar mi navegador normal para una navegación fluida.



Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por JL (14 intervenciones) el 21/03/2016 19:42:59
Agradezco tu respuesta y explicacion, dejame hago pruebas y te mantengo al tanto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por JL (14 intervenciones) el 21/03/2016 19:47:02
Si si me aparece mi RFC, dejame hago pruebas muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por JL (14 intervenciones) el 21/03/2016 21:46:17
Que tal Gerardo. . Con php no me esta dejando eso de las credenciales podrias decirme como le hiciste con javascript... creo que voy a tener que cambiarlo a javascript. ..

Espero y me puedas continuar ayudando. Te agradezco
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por JL (14 intervenciones) el 21/03/2016 22:39:06
Que tal Gerardo.

Mira lo que hago ahorita para empezar es esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
// Crear un nuevo recurso cURL
$ch = curl_init();
 
// Establecer URL y otras opciones apropiadas
curl_setopt($ch, CURLOPT_URL, "https://cfdiau.sat.gob.mx/nidp/app/login?id=SATUPCFDiCon&sid=0&option=credential&sid=0&Ecom_User_ID=elrfc&Ecom_Password=laclave");
curl_setopt($ch, CURLOPT_HEADER, 0);
 
// Capturar la URL y pasarla al navegador
curl_exec($ch);
 
// Cerrar el recurso cURL y liberar recursos del sistema
curl_close($ch);
?>

el problema es que me marca las credenciales pero sin el RFC no sabras en que este mal?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 22/03/2016 14:48:50
Bueno, para empezar vas bien cuando capturas el url y la cargas, pero no deberías cerrar el recurso curl, así estas matando la cookie según veo, porque no pruebas a abrir otro curl a ver que pasa?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por JL (14 intervenciones) el 22/03/2016 16:25:31
Que tal Gerardo, abusando de tu confianza tendras un correo o skype en el cual te pueda contactar?.

Te gradezco
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por alonso luna (5 intervenciones) el 29/04/2016 20:33:56
Hola, Buenos días

No se si aún has podido loguearte con PHP a la página del sat, yo sigo intentando hacerlo medinte CURL, pero creo que no esta pasando bien los parametros que se necesitan, de esta manera es como me ha funcionado.

1
2
3
4
5
<?php
$username = 'RFC';
$password = 'TuContraseña';
header("Location: https://cfdiau.sat.gob.mx/nidp/app/login?id=SATUPCFDiCon&sid=0&option=credential&  Ecom_User_ID=".$username."&Ecom_Password=".$password);
?>

espero te de un norte de como se le podria hacer, de la misma forma no se si te gustaria compartir información de como se le podria hacer en PHP.

Saludos !!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por JL (14 intervenciones) el 29/04/2016 22:36:40
Que tal alonso.

En realidad no me quede parado con eso no consegui ninguna ayuda sobre eso =( todo esta en visual o java nada en php o javascript =( tu tienes algo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por alonso luna (5 intervenciones) el 30/04/2016 00:48:59
Hola JL,
Le sigo buscando, hasta ahorita esto es lo que tengo, pero sigo sin poder hacer que se logue, a lo que he visto no esta mandando los parametros, pienso que ha de ser un detalle, pero hay que seguir buscando, yo posteare en http://stackoverflow.com, para ver si me pueden ayudar con eso.

cuando uso esta linea
1
echo curl_getinfo($ch, CURLINFO_EFFECTIVE_URL)
, me regresa esto :

https://cfdiau.sat.gob.mx/nidp/app/login?

probaste la linea que te mande, con esa linea si se loguea, pero ha de faltar algo, tu ya no le buscaste?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
            $username = "RFC";
            $password = "PW";
 
            $loginUrl = "https://cfdiau.sat.gob.mx/nidp/app/login?";
            try
            {
                $fields = array(
                    'id' => 'SATUPCFDiCon',
                    'sid' => '0',
                    'option' => 'credential',
                    'Ecom_User_ID' => $username,
                    'Ecom_Password' => $password
                );
 
                $fields_string = http_build_query($fields);
                $ch = curl_init();// initiate curl
 
                curl_setopt($ch, CURLOPT_URL, $loginUrl);
                curl_setopt($ch, CURLOPT_POST, true);  // tell curl you want to post something
                curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string); // define what you want to post
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // return the output in string format
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                //curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
                curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded', 'Content-Length: '.strlen($fields_string)));
                curl_setopt($ch, CURLOPT_VERBOSE, 1);
                curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0');
                curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 10);
                curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
 
                //ob_start();
                $output = curl_exec ($ch); // execute
                //echo curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
                //var_dump(curl_getinfo($ch));
                if (false === $output)
                {
                    throw new Exception(curl_error($ch), curl_errno($ch));
                }
 
                var_dump($output); // show output
                curl_close ($ch); // close curl handle
                /*if ($output)
                {
                    //echo curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
                    echo '-----';
                    $loginUrl = 'https://portalcfdi.facturaelectronica.sat.gob.mx/ConsultaEmisor.aspx';
                    $ch = curl_init();// initiate curl
                    curl_setopt($ch, CURLOPT_URL, $loginUrl);
                    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // return the output in string format                    
                    ob_start();
                    $post = curl_exec ($ch);
                    
                    //echo $postinfo;
                    //echo curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
                    var_dump($post); // show output
                    $result = ob_get_clean();
                    curl_close ($ch);
                }
                 * 
                 */
 
            }
            catch(Exception $e)
            {
                trigger_error(sprintf('Curl failed with error #%d: %s', $e->getCode(), $e->getMessage()), E_USER_ERROR);
            }
        ?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por JL (14 intervenciones) el 30/04/2016 00:55:28
Si sigo buscando en realidad y lo mismo me habia quedado en que no me logueaba solo lei que lo que nos hace falta es que si te fijas hace una validacion a una pagina tercera y es tomar eso que te regresa de la pagina tercera pero ahi me perdi la pagina tercera te regresa como un token u otras cookies. Aqui seguimos tu y yo ayudandonos ahi tienes mi correo para que me pases el link de tu publicación.

Gracias.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por alonso luna (5 intervenciones) el 30/04/2016 01:04:49
no veo tu correo, este es el mio mandame correo y ahi te regreso el link que te habia comentado: huesario24@gmail.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 28/03/2016 18:59:59
Hola que tal, Una pregunta, ustedes como analizan este mensaje de error: "En estos momentos el servicio de red presenta lentitud, favor de intentar nuevamente"

en el código fuente puedo ver que esto es el producto de una función llamada endRequest

que a su vez usa como parámetro:
1
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequest);


Es decir,me gustaría poder primero ver que no haya respuesta negativa o este mensaje de alerta y una vez que el código se asegure de que no hay este código de alerta,entonces proceder a hacer su código normal, o sea ver cuantos enlaces hay en cada una de las rejillas y bla ala blah.

Saludos y Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por CC (1 intervención) el 06/04/2016 21:12:39
Hola que tal creen que puedan ayudarme....tengo un problema con la descarga de los xml trabajo con javascript y al momento solo he conseguido esto :

1
2
3
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="https://cfdicontribuyentes.accesscontrol.windows.net/v2/wsfederation/?wa=wsignin1.0&amp;wtrealm=https%3a%2f%2fportalcfdi.facturaelectronica.sat.gob.mx&amp;wctx=rm%3d0%26id%3dpassive%26ru%3d%252fRecuperaCfdi.aspx%253fDatos%253dOI%252fUWe5lUYFK33MWzMFOV8Af%252fL85F0SYCPJNg6VTBGL62sVmrjKMvOLkpNS356hCcb6CoqrNleLm%252bSDlV2MeOamtyOG1J7Rkkj02%252fDNZHGI7I3EjyaSnYcILxupdo374x77LLxgADDpt2z9NREL3kWDP1TEFJ5uTWvEMykhf4O%252fuf%252bfSTert6RXGu0FtAzcAI5QQo4rZ4cTO%252frs5ihuKt66RcdYal%252fFWRKdD%252bm9i9Y7X1pcMsHySmowGEDH0VLCBNFHtfap4rizCDULnlZ7yFA8pTcz6UNmUoomLsXz9TPGWulLb1g8cLv9vixzdLu1dVbKg3VW6btgxIHzW3aMOUeSWCF2Fy0KSTYsLxbwQo2twvGxNYKu%252ftqriEKnM4253YlFlpx6ntNxKkrdeZFIz%252fe5qHRtDp17gPasJBWXbUJRzUdOr6pjtrBRc5ueF9UORgH861CCByf9Gm0tr2gD%252ftQwlqsrJsLPUjo4BRa16PPY%253d&amp;wct=2016-04-06T19%3a07%3a00Z&amp;wreply=https%3a%2f%2fportalcfdi.facturaelectronica.sat.gob.mx%2f">here</a>.</h2>
</body></html>


por lo que he leído en este foro se debe a la generación de cookies la cual aun no he podido resolver les agradeciera pudiesen ayudarme este es mi codigo

1
2
3
4
5
6
7
var https = require('https');
 
	var request = https.get(""+url obtenida+"", function(response){
 
	      response.setEncoding('utf8')
	      response.on('data', console.log) 										  
	});
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 11/04/2016 08:26:03
Yo también me quedé con las ganas de saber si se puede obtener las cookies mediante Javascript.
nunca pude.

Según lei, fue porque en Javascript se tiene la política de solo mostrar las cookies de la pagina actual y no la de una o tres atrás, o de otro dominio.

Se supone que las cookies en Javascript se sacan con document.cookies, y después se les da el tratamiento necesario.


Como comentaba yo uso RealBasic y javascript para desarrollar.

Es decir con Javascript hago todo el proceso de webscrapping y con RealBasic proceso lo que recabó mi script de Javascript.
y para las cookies uso un plugin de terceros en Realbasic, el cual estuvo medio caro. :( :(



Por otra parte, me estoy dando cuenta que ahora algunos archivos XML los está descargando con tres renglones en blanco, lo cual dificulta su lectura, pero cuando les borras esos espacios ya lo lee normalmente y se procesa normalmente.

A alguien mas le está pasando esto?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Ivan (2 intervenciones) el 21/10/2016 08:44:50
Justo lo que yo estoy tratando de hacer.

No es posible hacerlo en javascript porque son cookies seguras, y los navegadores no permiten a javascript leer esas cookies.

Que plug in usaste?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (2 intervenciones) el 21/10/2016 16:36:26
En RealBasic?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Ivan (2 intervenciones) el 21/10/2016 16:53:13
En XOJO realmente, pero es lo mismo. Lo de las cookies seguras es una funcion de seguridad de los navegadores y como xojo usa webkit o el navegador del sistema operativo, tiene esa misma limitacion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (2 intervenciones) el 21/10/2016 17:02:08
Christian MBS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 18/04/2016 05:44:48
Como esperar a que los controles de minutos y segundos sean visibles, para presionar el botón Buscar CFDi en Emitidos?

Hola Fernando.

Ahora me encuentro metiéndole mano a las facturas emitidas.

Veo que igual al hacer click en el RadioButton de Fechas, rdoFechas, automáticamente hace un PostBack.
Pensé que igual podría intervenir con un SetTimeOut para esperar a que los controles, ya sea el del rfc o el de los minutos y segundos sean visibles, para entonces poder presionar el botón buscar. Pero nada pasa.

Así lo estoy haciendo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
GetFirstDate();
  function WaitResults() {
            setTimeout(VerificaResultados,100);
              function VerificaResultados() {
                               if ($('#ctl00$MainContent$TxtRfcReceptor').is(':visible')) {
                                   alert('Hola Mundo');
                                } else {
                                      setTimeout(VerificaResultados,100);
                                };
               };
  };
 function GetFirstDate() {
  $('#ctl00_MainContent_RdoFechas').click();
  WaitResults();
  }


Obvio puse un alert con el mensaje hola mundo,para saber cuando ya cargue el panel después de presionar el RadioButton.
y después sustituir el alert con:

1
2
$('#ctl00_MainContent_CldFechaInicial2_Calendario_text').val('01/04/2016');
            $('#ctl00_MainContent_CldFechaFinal2_Calendario_text').val('02/04/2016');

Para establecer la fecha inicial y fecha final.


O que sugieres, que estoy haciendo Mal?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por FERNANDO HERNANDEZ (8 intervenciones) el 18/04/2016 21:48:31
Buenas tardes Gerardo.

La idea que estas implementando es correcta, solo que veo 2 pequeños errores

1) el id del input que intentas verificar es incorrecto if ($('#ctl00$MainContent$TxtRfcReceptor').is(':visible')) en lugar de eso deberia de ser if ($('#ctl00_MainContent_TxtRfcReceptor').is(':visible')), esto explica porque nunca se lanza el alert.

2) el atributo visible tampoco creo que debas verificarlo ya que el input esta visible siempre, en su lugar deberia de verificar el artributo disabled, cuando deje de estar deshabilitado significa que ya esta listo para presionar el boton buscar.
if (!$('#ctl00_MainContent_TxtRfcReceptor').is('[disabled=disabled]'))


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 18/04/2016 21:55:50
Perfecto, gracias lo probaré.

Respecto al Visible de Jquery, tienes mucha razón. Hay veces que no funciona, yo suelo usar .css != display:none

para cuando los atributos de css sean distintos a display:none, me lanze el alert, amenos eso fue lo que hice para procesar el mensaje de espere un momento y esperar a que el panel de resultados o el de no resultados sean visibles.


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 19/04/2016 04:35:05
Woooow, es cierto con Is Disabled puede leer si el control esta deshabitando, por ende cuando deje de estar deshabitado está listo para presionar el botón de búsqueda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 21/04/2016 09:04:46
Acabo de descubrir, porque con los otros Webservices que venían de prueba en mi programa cargaban sin problema.
Ahora veo que sucede como las descargas de los xml.

No se usa un socket normal. Se usa un socket de connexion segura: HTTPSecureSocket

y hago lo siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Dim mySoapSocket As new HTTPSecureSocket
  Dim sm as new SOAPMethod()
  sm.useSocket(mySoapSocket)
  dim sr as new SOAPResult
 
  Dim wsdl As String = mySoapSocket.get("https://consultaqr.facturaelectronica.sat.gob.mx/ConsultaCFDIService.svc?wsdl", 30)
  sm.WSDL = new XMLDocument(wsdl)
 
  TextArea1.text = sm.wsdl.ToString
 
  ///OJO aca:
  'sm.Parameter("Consulta")="?re=BEN9501023I0&rr=SARM8209281F1&tt=440.000000&id=EC609EC1-5F63-4333-A2B8-2EDC10B68075"
  sr= sm.Invoke("Consulta")
 
  msgbox sr.Result("CodigoEstatus")

1) Primero declaro mi Socket de conexión segura
2) Abro la dirección del webservice con mi socket
3) A mi SoapMethod le asigno la conexión de mi socket
4) Hasta donde entiendo así se le pasa parámetro a consulta. Pero al ejecutar me manda un error de parámetros incorrectos.

Si convierto a comentario esta linea de código, entonces ejecuta "Consulta" sin parámetros

y el Messagebox me dice: "N - 601: La expresión impresa proporcionada no es válida."


Que estaré haciendo mal??


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por GERARDO GARCIA (44 intervenciones) el 19/08/2016 17:02:20
Fernando.
Buenos Dias


Una pregunta.

estaba viendo que para establecer el día inicial para descargar las facturas emitidas, uso esto:
$('#ctl00_MainContent_CldFechaInicial2_Calendario_text').attr('style', 'width: 65px');"
$('#ctl00_MainContent_CldFechaInicial2_Calendario_text').val('"+ FechaInicialAnual + "');"
$('#ctl00_MainContent_CldFechaFinal2_Calendario_text').attr('style', 'width: 65px');"
$('#ctl00_MainContent_CldFechaFinal2_Calendario_text').val('"+ FechaFinalAnual+ "');"



Donde FechaInicialValue y FechaFinalValue tiene este formato 08/01/2016 o sea día/mes/año


Cuando hago una consulta del día 01 de enero de 2016 al 31 de enero de 2016, no hay problema, me arroja resultados.

El problema es el siguiente:

cuando yo hago una búsqueda del día inicial y final 08/01/2016 me dice que no hay resultados.
Pero si yo hago la misma búsqueda, no con código, sino seleccionando la fecha via el calendario de la página del SAT, así si me arroja resultados.


Estoy usando los valores correctos, o estoy omitiendo algo? Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 21/04/2016 06:09:55
Hola que tal, alguien ha logrado Validar los xml con el webservice pero con java o Javascript?

mi programa RealBasic tiene un módulo SOAP para poder agarra información de webservices, pasándole la dirección del Webservice como un método
un parámetro y un resultado.

Este es un ejemplo para comunicarse a un webservice y obtener el nombre de la compánía cercana en base al parámetro Ciudad = Nueva York.

Es el siguiente:
1
2
3
4
5
Dim sm As New SOAPMethod("http://www.webservicex.net/medicareSupplier.asmx?WSDL")
  dim sr as new SOAPResult
  sm.Parameter("City")="New York"
  sr= sm.Invoke("GetSupplierByCity")
  msgbox sr.Result("CompanyName")


Yo lo traté de Adecuar como creo que se invoca el Webservice del SAT sin saber en este webservice cual es el Parámetro, como invocarlo y como sacar la salida, así:

1
2
3
4
5
6
7
8
Dim sm As New SOAPMethod("https://consultaqr.facturaelectronica.sat.gob.mx/ConsultaCFDIService.svc?wsdl")
  dim sr as new SOAPResult
  sm.Parameter("ConsultaCFDI.Acuse")="?re=BEN9501023I0&rr=SARM8209281F1&tt=440.000000&id=EC609EC1-5F63-4333-A2B8-2EDC10B68075"
  sr= sm.Invoke("ConsultaCFDI.ConsultaCFDIServiceClient")
  msgbox sr.Result("ConsultaCFDI.Acuse.CodigoEstatus")
 
  dim s as string
  s= sr.Result("ConsultaCFDI.Acuse.CodigoEstatus")


Pero no me da nada, se queda pensando y tengo que parar el código


Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 21/04/2016 06:46:50
También probé así, siento que estoy mas cerca de lograrlo, pero no pasa nada:

1
2
3
4
5
Dim sm As New SOAPMethod("https://consultaqr.facturaelectronica.sat.gob.mx/ConsultaCFDIService.svc?wsdl")
  dim sr as new SOAPResult
  sm.Parameter("http://tempuri.org/IConsultaCFDIService/Consulta")="?re=BEN9501023I0&rr=SARM8209281F1&tt=440.000000&id=EC609EC1-5F63-4333-A2B8-2EDC10B68075"
  sr= sm.Invoke("http://tempuri.org/IConsultaCFDIService/Consulta")
  msgbox sr.Result("http://tempuri.org/IConsultaCFDIService/ConsultaResponse")
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Buenos dias Gerardo.

No se la sintaxis especifica del lenguaje que estas usando pero podrias intentar algo asi:

1
2
3
4
5
Dim sm As New SOAPMethod("https://consultaqr.facturaelectronica.sat.gob.mx/ConsultaCFDIService.svc?wsdl")
dim sr as new SOAPResult
sm.Parameter("expresionImpresa")="re=BEN9501023I0&rr=SARM8209281F1&tt=440.000000&id=EC609EC1-5F63-4333-A2B8-2EDC10B68075"
sr= sm.Invoke("Consulta")
msgbox sr.ConsultaResult.CodigoEstatus

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 21/04/2016 18:29:11
Ya lo logre!!!!!!.

No me sirvió el ?wsdl, lo cambie por:
1
https://consultaqr.facturaelectronica.sat.gob.mx/ConsultaCFDIService.svc?singleWsdl

Y mi código quedó así:

1
2
3
4
5
6
7
8
Dim wsdl As String = mySoapSocket.get("https://consultaqr.facturaelectronica.sat.gob.mx/ConsultaCFDIService.svc?singleWsdl", 30)
  sm.WSDL = new XMLDocument(wsdl)
 
 
  sm.Parameter("expresionImpresa") = "?re=BEN9501023I0&rr=SARM8209281F1&tt=440.000000&id=EC609EC1-5F63-4333-A2B8-2EDC10B68075"
  sr= sm.Invoke("Consulta")
 
  msgbox sr.Result("CodigoEstatus")

Y me arroja el Siguiente Mensaje: "S - Comprobante obtenido satisfactoriamente."


Pero como le hago para ver si es Vigente o Cancelado, ¿Debo usar otro Result envés de
1
CódigoEstatus


Saludos





Me respondo a mi mismo: Cambiando CodigoEstatus a Estado.

Así te dice Vigente o Cancelado.


Según entiendo esta cadena es la que va grabada en el código QR de una factura, cierto?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo (2 intervenciones) el 12/05/2016 22:30:49
Buenas tardes a todos

Si alguien desea el codigo en VB favor de indicarlo.

Cuando consumes el WS el servidor te responde con un arreglo.

Saludos GERC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por bladimir andrade (1 intervención) el 05/07/2016 17:23:25
saludos gerardo

me interesa el codigo en vb.

lo podrias publicar por favor.

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo García (44 intervenciones) el 07/07/2016 18:23:33
Hola Fernando Hernandez

que tal, oye, una pregunta cual es el tiempo en minutos que el SAT tiene para detectar la inactividad y cerrar sesión.

Porque luego me pasa cuando tengo muchos CFDi's tarda y el SAT cree que está inactivo y cierra sesión y entonces se corta la conexion y se interrumpen las descargas.

Claro que intervine el código de la salida, para los siguientes estado, previniendo cuando el servidor de SAT no está dando servicio o no encuentra la factura, en estos casos:
- <html>Object moved to ******</html>
- The Service is unavailable
- Cuando el XML viene en blanco.

Cuando cualquiera de estas tres condiciones se cumple, entonces no grabo el archivo

Como te comentaba para efectos de interactuar con mi lenguaje y operar el visor HTML, sacar variables y valores ocupo Javascript.
entonces a mi se me ocurre hacer un location.reload para forzar la recarga del navegador, pero necesito saber cada cuanto tiempo hay que recargar la página.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Carlos carlos.gil@sistemasmx.com (2 intervenciones) el 28/07/2016 02:49:51
Hola

Excelente trabajo. Alguien podría orientarme como conseguir el código de vb.net?

De antemano, gracias!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Javsan (1 intervención) el 03/12/2016 01:04:09
Asi es mi estimado, esa cadena es la que va grabada en el QR, se compone de RFC emisor, RFC receptor, total, UUID,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Roman Marquez (5 intervenciones) el 07/04/2016 21:07:44
Señores una felicitación, han hecho un trabajo bárbaro de gran ayuda para mucha gente.
Espero este tipo de comunidades sigan proliferando.

Hare la conversion que he bajado de aquí a C# como librería espero poder hacerlo y compartirlo
con ustedes.

Muchas Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Andres Chavez (2 intervenciones) el 11/04/2016 08:22:31
Cual fue el proyecto que bajaste? quizas pueda apoyar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por JL (14 intervenciones) el 11/04/2016 08:33:02
Yo sigo buscando para php o javascript no encuentro nada =(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Marco Aurelio (1 intervención) el 12/04/2016 17:04:31
Hola a todos. Una pregunta, a alguno de ustedes les pasa que cuando se lanza el clic al RadioButton para filtrar por fechas "ctl00_MainContent_RdoFechas" sale la ventana de "Espere un momento" y no se quita. Lo he dejado mas de 1 hora y no hace nada.

Saludos y gracias por el excelente aporte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por luis manuel (3 intervenciones) el 25/04/2016 17:56:41
Una pregunta alguien sabrá algún código para extraer el UUID de un conjunto de XML espero me puedan ayudar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo (2 intervenciones) el 12/05/2016 22:26:38
Hola Luis

Dependiende donde quieras leer el archivo, para que te des una idea con asp

1
2
3
4
5
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
objXML.async = False
objXML.Load ("nombre del XML")
 
folioFiscal = objXML.getElementById("UUID").value

Esto mismo lo puedes aplicar a Visual Basic y creo que tambien JavaScript .

Que por cierto desvirtuaron este Hilo ya que se supone que todo lo tratado aqui era de Visual Basic.

Saludos cordiales a todos GERC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Abelardo (1 intervención) el 30/08/2016 18:35:35
Esto lo hago con C#.. es un metodo para extraer el UUID de la factura XML

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public static List<Entidades.XMLFacturaHeader> GetUUID(XmlDocument xDocument, Entidades.XMLFacturaHeader oDdHeader)
{
	List<Entidades.XMLFacturaHeader> lHeader = new List<Entidades.XMLFacturaHeader>();
	XmlDocument xmlDoc = xDocument;
 
	if (xmlDoc.HasChildNodes)
	{
		XmlNodeList nodelist = xmlDoc.GetElementsByTagName("tfd:TimbreFiscalDigital");
		foreach (XmlNode node in nodelist)
		{
			oDdHeader.UUID = GetElement(node, "UUID");
			lHeader.Add(oDdHeader);
		}
	}
	return lHeader;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Violeta (5 intervenciones) el 09/05/2016 04:08:34
Quien de aquí esta desarrolando la descarga masiva sobre php?

Tengo unos aportes y requiero identificarlos para comenzar a colaborar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por JL (14 intervenciones) el 09/05/2016 04:13:31
Yo estoy tratando de sacarlo en php..

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por JL (14 intervenciones) el 09/05/2016 15:56:07
Me podrias pasar tu correo?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por FERNANDO HERNANDEZ (8 intervenciones) el 11/05/2016 15:38:12
Yo tambien he estado tratando de hacer una version en php, aunque aun no he logrado muchos avances.

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Gerardo Garcia (44 intervenciones) el 12/05/2016 06:58:32
Hola que tal!

Tengo una pregunta en mi entorno de programación al hacer el Socket Seguro HTTP para descargar los XMLs.

no recordaba que hay una propiedad de mi socket que dice "ConnectionType" = 3
he investigado y ese 3 es "TLS (Transport Layer Security) version 1. (default)" la cual viene por default.

y funciona bien.


pero también están estos otros protocolos:

SSLv2 0 SSL (Secure Sockets Layer) version 2.
SSLv23 1 SSL version 3, but can roll back to 2 if needed.
SSLv3 2 SSL version 3.
TLSv1 3 TLS (Transport Layer Security) version 1. (default)
TLSv11 4 TLS (Transport Layer Security) version 1.1
TLSv12 5 TLS (Transport Layer Security) version 1.2


Recomiendan usar otro diferente? y habría ventajas de usar otro.

A demás no se si les ha pasado que hay XMLs que descargan en blanco, aun descargándolos directamente del navegador, ósea entrando directamente al SAT
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Antonio Valdeztn tny5@hotmail.com (1 intervención) el 22/09/2016 21:13:49
buen día, alguien tiene el código en C#, que descargue los xmls pudiendo indicar que solo sean los vigentes o solo los cancelados??

Agradezco su atención. Gracias!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rafael

Descarga Masiva XML SAT

Publicado por Rafael (12 intervenciones) el 05/11/2016 09:04:26
GERARDO BUEN DIA, SERA QUE ME PUEDAS COMPARTIR EL CODIGO DE DESCARGA MASIVA SIN EL CONTROL DEL WENBROWSER YA QUE QUIERO IMPLEMENTARLO EN UN PROYECTO ASP APAR CONPARTIR EN EL FORO, ESPERO ME PUEDAS AYUDAR, ABUSANDO DE TU CONFIANZA PASAME TU EMAIL, SALUDOS.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Jose Luis (1 intervención) el 22/09/2016 22:29:56
Que tal Violeta , alguna respuesta?, me podrias ayudar?

Gracias.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rafael

Descarga Masiva XML SAT

Publicado por Rafael (12 intervenciones) el 03/11/2016 06:30:56
HOLA BUEN DIA, YO CUENTO CON EL CODIGO COMPLETO DE DESCARGA MASIVA DE PHP, SOLO QUE REQUIERO DE SU AYUDA YA FACILITARME EL CODIGO EN VB.NET PARA DESCARGAR LOS XML, HE DESCARGADO VARIOS PERO TODOS CUENTAN CON WEBBROWSER Y YO LO REQUIERO CON METODOLOGIA (HTTPWEBREQUEST Y HTTPWEBRESPONSE), YA QUE TENGO LA IDEA DE DESARROLLARLO PARA ASP.NET Y ASP NO CUENTA CON LA HERRAMIENTA WEBBROWSER, PROPORCIONO PARTE DEL CODIGO EN PHP Y ESPERO ME PUEDAN APOYAR CON LO SOLICITADO, SOMOS COLEGAS, ESPERO ME PUEDAN AYUDAR EN PROPORCIONARME EL CODIGO SIN EL CONTROL WEBROWSER, SALUDOS, MI CORREO ES RALOSOFT@HOTMAIL.COM


CODIGO:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
function entrarAlaPaginaInicio(){
        $url = $this->urlCfdiau . '/nidp/app/login?id=SATUPCFDiCon&sid=0&option=credential&sid=0';
        $this->sesion->post($url, ['cookies' => true, 'future' => true, 'verify' => FALSE] )->getBody()->getContents();
    }
 
    function enviarFormularioConCIEC(){
        $url = $this->urlCfdiau . 'nidp/app/login?sid=0&sid=0';
 
        $encabezados = $this->header->obtener(
            $this->hostCfdiau,
            $this->urlCfdiau . '/nidp/app/login?id=SATUPCFDiCon&sid=0&option=credential&sid=0'
        );
 
        $valoresPost = [
            'option'        =>'credential',
            'Ecom_User_ID'  =>$this->rfc,
            'Ecom_Password' =>$this->contrasena,
            'submit'        =>'Enviar'
        ];
 
        $this->sesion->post($url,
            ['body' => $valoresPost, 'headers' => $encabezados, 'cookies' => true, 'future' => true, 'verify' => FALSE]
        );
    }
 
    function leerFormulario($html){
        $htmlFormulario = new HTMLForm($html, 'form'); ##OK
        $inputValores   = $htmlFormulario->getFormValues();
        return $inputValores;
    }
 
    function leerFormularioDeRespuesta(){
        $url = $this->urlPortalCfdi;
        $respuesta = $this->sesion->get( $url , ['cookies' => true, 'future' => true, 'verify' => FALSE] );
        $htmlRespuesta = $respuesta->getBody()->getContents();
 
        return $this->leerFormulario($htmlRespuesta);
    }
 
    function leerFormularioDeAccessControl($valoresPost){
        $url = $this->urlCfdiCont . 'v2/wsfederation';
 
        $respuesta = $this->sesion->post($url,
            ['body'=>$valoresPost, 'cookies' => true, 'future' => true, 'verify' => FALSE]
        );
 
        $htmlRespuesta = $respuesta->getBody()->getContents();
        return $this->leerFormulario($htmlRespuesta);
    }
 
    function entrarAPantallaInicioSistema($valoresPost){
        $url = $this->urlPortalCfdi;
        $respuesta = $this->sesion->post($url, ['body'=>$valoresPost, 'cookies' => true, 'future' => true, 'verify' => FALSE]);
        $htmlRespuesta = $respuesta->getBody()->getContents();
 
        return $htmlRespuesta;
    }
 
    function obtenerValoresPostDelTipoDeBusqueda($htmlFuente) {
        $inputValores = $this->leerFormulario( $htmlFuente );
        $inputValores['ctl00$MainContent$TipoBusqueda'] = 'RdoTipoBusquedaEmisor';
        $inputValores['__ASYNCPOST'] = 'true';
        $inputValores['__EVENTTARGET'] = '';
        $inputValores['__EVENTARGUMENT'] = '';
        $inputValores['ctl00$ScriptManager1'] = 'ctl00$MainContent$UpnlBusqueda|ctl00$MainContent$BtnBusqueda';
        return $inputValores;
    }
 
    function seleccionarTipo($htmlFuente) {
        $url = $this->urlPortalCfdi . 'Consulta.aspx';
        $post = $this->obtenerValoresPostDelTipoDeBusqueda($htmlFuente);
        $encabezados = $this->header->obtener(
            $this->hostCfdiau, $this->urlPortalCfdi
        );
 
        $respuesta = $this->sesion->post($url,
            ['body' => $post, 'headers' => $encabezados, 'cookies' => true, 'future' => true, 'verify' => FALSE]
        );
 
        return $respuesta->getBody()->getContents();
    }
 
    function logueoDeUsuarioConCIEC() {
        $this->entrarAlaPaginaInicio();
        $this->enviarFormularioConCIEC();
        $valoresPost = $this->leerFormularioDeRespuesta();
        $valoresPostAccessControl = $this->leerFormularioDeAccessControl($valoresPost);
 
        $html = $this->entrarAPantallaInicioSistema($valoresPostAccessControl);
        $this->seleccionarTipo($html);
    }
 
    function obtenerValoresPostBusquedaFechas($htmlFuente, $inputValores, $filtros) {
        $parser                 = new ParserFormatSAT( $htmlFuente );
        $valoresCambioEstado    = $parser->obtenerValoresFormulario();
 
        $util                   = new Utilerias();
        $temporal               = $util->mergeListas($inputValores, $filtros->obtenerPOST() );
 
        return $util->mergeListas($temporal, $valoresCambioEstado);
    }


VIDEO DEL CODIGO FUNCIONANDO

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de jose

Descarga Masiva XML SAT

Publicado por jose (22 intervenciones) el 04/11/2016 18:15:41
Tengo el codigo el vb y c# , pero con el webbrowser. sin embargo suena interesante pasarlo a asp.net me late tu idea si gustas podemos hacerlo en conjunto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Roman Marquez (5 intervenciones) el 04/11/2016 19:57:16
Que tal me interesa ese código para implementarlo en mi aplicacion de timbrado que también lo tengo en php.
como le podríamos hacer?. Tengo también el código en vb.net para la descarga pero si requiere de browser.

También cuento con una librería que hicimos en C# para la generación y timbrado de CFDI, tambien genera el pdf del xml.
echando mano de plantillas de crystal reports.

Gracias de antemano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Alvaro Ampudia (2 intervenciones) el 04/11/2016 21:08:49
Pero tu vendes este código, y lo que está aquí no está en venta... no seas así....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rafael

Descarga Masiva XML SAT

Publicado por Rafael (12 intervenciones) el 04/11/2016 23:16:33
ASI ES ALVARADO EL CODIGO LO TENGO EN VENTA, PERO COMO LES DECIA PUEDO APORTAR PARTE DEL EL POCO A POCO YA QUE EL DESARROLLO SI ME HA COSTADO ESFUERZO Y TIEMPO Y ESO ES VALIOSO PARA TODOS, LO QUE YO QUIERO ES INTERCAMBIAR IDEAS Y CONOCIMIENTO, YO CUENTO CON LAS APP DE DESCARGA MASIVA EN PHP, PYTHON, C#, VB.NET, Y QUIERO DESARROLLARLA EN ASP.NET PERO SIN WEBBROWSER YA QUE LA HE TRATADO DE DESARROLLAR DESDE HACE YA VARIOS DIAS Y NO HE PODIDO ESPERO ME PUEDAN AYUDAR Y COMPARTIR PARTE DE MI CODIGO Y ASI PODER COMO LES DECIA INTERCAMBIAR IDEAS Y CONOCIMIENTO LES DEJO PARTE DEL CODIGO QUE HE ESTADO IMPLEMENTANDO EN C# POR METODO POST

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
lblMensaje.Text = "Inicializando..";
CookieContainer galleta = new CookieContainer();
string postData = "Ecom_User_ID=" + txtUsuario.Text + "Ecom_Password=" + txtPassword.Text;
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
 
//OBTENEMOS LA COOKIE
lblMensaje.Text = "Obteniendo la Cookie..";
HttpWebRequest peticionGalleta = (HttpWebRequest)WebRequest.Create("https://cfdiau.sat.gob.mx/nidp/app/login?id=SATUPCFDiCon&sid=0&option=credential&sid=0");
peticionGalleta.Method = "POST";
peticionGalleta.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
peticionGalleta.ContentType = "text/html;charset=UTF-8";
peticionGalleta.CookieContainer = galleta;
peticionGalleta.Host = "cfdiau.sat.gob.mx";
peticionGalleta.Referer = "https://cfdiau.sat.gob.mx/nidp/wsfed/ep?id=SATx509Custom&sid=0&option=credential&sid=0";
peticionGalleta.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36";
peticionGalleta.ContentLength = byteArray.Length;
 
StreamWriter sw = new StreamWriter(peticionGalleta.GetRequestStream());
sw.Write(postData, 0, byteArray.Length);
sw.Close();
 
HttpWebResponse respuestaGalleta = (HttpWebResponse)peticionGalleta.GetResponse();
StreamReader lectorGalleta = new StreamReader(respuestaGalleta.GetResponseStream());
string htmlr = lectorGalleta.ReadToEnd();
WebBrowser1.DocumentText = htmlr;

CON ESTE CODIGO SOLO LOGRO INGRESAR AL FORMULARIO DE LOGIN POR CIEC EL DETALLE ES QUE NO SE COMO LLENAR Y ENVIAR EL FORM CON LOS DATOS.

SOLO UTILIZO EL WEBBROWSER COMO REFERENCIA QUE HALLA CARGADO LA PAGINA CORRECTAMENTE PERO NO HACE NINGUNA FUNCION EN CUANTO OBTENER LOS XML O NAVEGAR, SOLO ES VISUALIZACION
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Konner (5 intervenciones) el 05/11/2016 21:36:37
Lo que puedes hacer es crear un web services con tu proyecto de c# y mandar llamar los metodos que necesites para procesar la información y obtener la información de regreso.

mi humilde opinion.

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rafael

Descarga Masiva XML SAT

Publicado por Rafael (12 intervenciones) el 09/11/2016 07:05:22
AMIGOS LES COMENTO QUE SIGO TRATANDO DE HACER EL METODOS POST PARA DESCARGA MASIVA, PERO ME ATORE EN UNA PARTE DONDE SOLICITO EL REDICRECCIONAMIENTO DE UNA URL PARA QUE ME ENVIO AL FORM DE BUSQUEDA POR TIPO EMITIDOS O RECIBIDOS, AQUI LES PASO EL CODIGO ESPERO ALQUIEN QUE SEA ESPERIMENTADO EN METODO POST HttpWebRequest Y HttpWebResponse ME PUEDA AYUDA, SALUDOS.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
'INIT
        lblMensaje.Text = "Inicializando.."
        Dim tempCookie As New CookieContainer()
        Dim postData As String = "option=credential&Ecom_User_ID=" + txtUsuario.Text + "&Ecom_Password=" + txtPassword.Text + "&submit=Enviar"
        Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)
 
        'OBTENEMOS LA COOKIE
        lblMensaje.Text = "Obteniendo la Cookie.."
        Dim peticionGalleta As HttpWebRequest = CType(WebRequest.Create("https://cfdiau.sat.gob.mx/nidp/app/login?id=SATUPCFDiCon&sid=0&option=credential&sid=0"), HttpWebRequest)
        peticionGalleta.Method = "POST"
        peticionGalleta.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
        'peticionGalleta.ContentType = "text/html;charset=UTF-8";
        peticionGalleta.CookieContainer = tempCookie
        peticionGalleta.Host = "cfdiau.sat.gob.mx"
        peticionGalleta.Referer = "https://cfdiau.sat.gob.mx/nidp/wsfed/ep?id=SATx509Custom&sid=0&option=credential&sid=0"
        peticionGalleta.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0"
        'peticionGalleta.ContentLength = byteArray.Length;
 
        Dim sw As New StreamWriter(peticionGalleta.GetRequestStream())
        sw.Write(postData, 0, byteArray.Length)
        sw.Close()
 
        Dim respuestaGalleta As HttpWebResponse = CType(peticionGalleta.GetResponse(), HttpWebResponse)
        Dim lectorGalleta As New StreamReader(respuestaGalleta.GetResponseStream())
        Dim htmlr As String = lectorGalleta.ReadToEnd()
        richTextBox1.Text = htmlr
        WebBrowser1.DocumentText = richTextBox1.Text
 
 
        'YA CON LA COOKIE INICIAMOS SESION  
        lblMensaje.Text = "Iniciando Sesion.."
        Dim peticion As HttpWebRequest = CType(WebRequest.Create("https://cfdiau.sat.gob.mx/nidp/app/login?sid=0&sid=0"), HttpWebRequest)
        peticion.Method = "POST"
        peticion.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
        peticion.Credentials = CredentialCache.DefaultCredentials
        peticion.KeepAlive = True
        peticion.CookieContainer = tempCookie
        peticion.Host = "cfdiau.sat.gob.mx"
        peticion.Referer = "https://cfdiau.sat.gob.mx//nidp/app/login?id=SATUPCFDiCon&sid=0&option=credential&sid=0"
        peticion.UserAgent = "Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0"
        peticion.ContentType = "application/x-www-form-urlencoded"
        peticion.ContentLength = byteArray.Length
 
        Dim sw2 As New StreamWriter(peticion.GetRequestStream())
        sw2.Write(postData, 0, byteArray.Length)
        sw2.Close()
 
        'OBTENEMOS INGRESO
        lblMensaje.Text = "Obteniendo Datos.."
        Dim respuesta As HttpWebResponse = CType(peticion.GetResponse(), HttpWebResponse)
        Dim lector As New StreamReader(respuesta.GetResponseStream())
        Dim html As String = lector.ReadToEnd()
 
        richTextBox1.Text = html
        WebBrowser1.DocumentText = richTextBox1.Text
 
        'OBTENEMOS DATOS PARA REFERENCIAR
        lblMensaje.Text = "Iniciando Tipo.."
        Dim peticionTIPOD As HttpWebRequest = CType(WebRequest.Create("https://portalcfdi.facturaelectronica.sat.gob.mx/"), HttpWebRequest)
        peticionTIPOD.Method = "POST"
        peticionTIPOD.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
        peticionTIPOD.Credentials = CredentialCache.DefaultCredentials
        peticionTIPOD.KeepAlive = True
        peticionTIPOD.CookieContainer = tempCookie
        peticionTIPOD.Host = "portalcfdi.facturaelectronica.sat.gob.mx"
        peticionTIPOD.Referer = "https://cfdicontribuyentes.accesscontrol.windows.net/v2/wsfederation"
        peticionTIPOD.UserAgent = "Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0"
        peticionTIPOD.ContentType = "application/x-www-form-urlencoded"
        ''peticionTIPOD.ContentLength = byteArray.Length
 
        Dim sw3 As New StreamWriter(peticionTIPOD.GetRequestStream())
        sw3.Write(postData, 0, byteArray.Length)
        sw3.Close()
 
        'OBTENEMOS CONTROL DE ACCESO
        lblMensaje.Text = "Obteniendo Tipos.."
        Dim respuesta3 As HttpWebResponse = CType(peticionTIPOD.GetResponse(), HttpWebResponse)
        Dim lector3 As New StreamReader(respuesta3.GetResponseStream())
        'OBTIENE RESPUESTA FORM EN STRING
        Dim html3 As String = lector3.ReadToEnd()
        ''ELIMINO LA CEDENA <META HTTP-EQUIV="expires" CONTENT="0"> PARA CONVERTIR RESPUESTA EN XML
        Dim CadenaEliminar = "<META HTTP-EQUIV=" & """expires""" & " CONTENT=" & """0""" & ">"
        html3 = Replace(html3, CadenaEliminar, "")
        ''Leemos los valores pasando la respuesta XML a un DataSet
        Dim srXmlData As New System.IO.StringReader(html3)
        Dim DS As New DataSet
        DS.ReadXml(srXmlData)
        Rwa = DS.Tables("input").Rows(0).Item("value")
        Rwresult = DS.Tables("input").Rows(1).Item("value")
        Rwctx = DS.Tables("input").Rows(2).Item("value")
 
        richTextBox1.Text = html3
        WebBrowser1.DocumentText = richTextBox1.Text
 
 
 
        ''MUESTRA TIPO DE DESCARGA
        Dim postDataA As String = "wa=" & Rwa & "&wresult=" & Rwresult & "&wctx=" & Rwctx
        Dim byteArrayA As Byte() = Encoding.UTF8.GetBytes(postDataA)
 
        'lblMensaje.Text = "Iniciando Tipo.."
        Dim Peticion4 As HttpWebRequest = CType(WebRequest.Create("https://cfdicontribuyentes.accesscontrol.windows.net/v2/wsfederation"), HttpWebRequest)
        Peticion4.Method = "POST"
        ''Peticion4.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
        'Peticion4.Credentials = CredentialCache.DefaultCredentials
        Peticion4.AllowAutoRedirect = True
        ''Peticion4.KeepAlive = True
        ''Peticion4.CookieContainer = tempCookie
        ''Peticion4.Host = "cfdicontribuyentes.accesscontrol.windows.net"
        ''Peticion4.Referer = "https://cfdiau.sat.gob.mx/nidp/app/login?sid=0&sid=0"
        Peticion4.UserAgent = "Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0"
        ''Peticion4.ContentType = "application/x-www-form-urlencoded"
        Peticion4.ContentLength = byteArrayA.Length
 
 
        'Dim sw4 As New StreamWriter(Peticion4.GetRequestStream())
        'sw4.Write(postDataA, 0, byteArrayA.Length)
        'sw4.Close()
 
        Dim requestStream As Stream = Peticion4.GetRequestStream
        Dim postBytes As Byte() = Encoding.ASCII.GetBytes(postDataA)
        requestStream.Write(postBytes, 0, postBytes.Length)
        requestStream.Close()
 
 
        'OBTENEMOS SALDO Y VIGENCIA
        lblMensaje.Text = "Obteniendo Tipos.."
        Dim respuesta4 As HttpWebResponse = CType(Peticion4.GetResponse(), HttpWebResponse)
        Dim lector4 As New StreamReader(respuesta4.GetResponseStream())
        Dim html4 As String = lector4.ReadToEnd()
 
        richTextBox1.Text = html4
        WebBrowser1.DocumentText = richTextBox1.Text

CABE MENCIONAR QUE LOS CONTROLES richTextBox1 Y WebBrowser1 SOLO SON PARA REFERENCIAR QUE TODO MARCHE BIEN SI HA ALGUIEN LE INTERESA AYUDA O COLABORAR SOLICITEME EL CODIGO Y ESPERO PUEDAN CORABORAR, SALUDOS.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de jose

Descarga Masiva XML SAT

Publicado por jose (22 intervenciones) el 18/11/2016 16:58:47
Hola, si gustas pasarme el código para hacer algo este fin y el martes te mando lo que logre. te late?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rafael

Descarga Masiva XML SAT

Publicado por Rafael (12 intervenciones) el 19/11/2016 16:00:54
adelante amigo me late, yo sigo buscando, saludos. jose, solo pasame tu correo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Roman Marquez (5 intervenciones) el 05/11/2016 03:00:27
Perdon yo vendo??? a caso te lo ofreci, o he pedido dinero a cambio de codigo??
Te cuidado en como te expresas..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rafael

Descarga Masiva XML SAT

Publicado por Rafael (12 intervenciones) el 05/11/2016 04:08:30
CLARO QUE NO USUARIOS DE LWP, COMO LES COMENTABA ANTERIORMENTE ESTE ES UN FORO DONDE PODEMOS APORTAR IDEAS Y CONOCIMIENTOS COMO LO DECIA ANTERIORMENTE, EN NINGUN MOMENTO LES ESTOY DICIENDO QUE ESTOY USANDO ESTE MEDIO PARA VERDER MIS TRABAJOS PARA NADA SOLO ES APORTE DE IDEAS Y CONOCIMIENTO, RESPETO EL ESFUERZO Y TRABAJO DE TODOS USTEDES, PERO COMO A A ESTA COMUNIDAD LE HA COSTADO RECONOCERSE A TODOS IGUAL, ESPERO PUEDACOLABORAR CON TODOS USTEDES DE IGUAL MANERA USTEDES EN CUANTO A CONOCIMIENTOS, SI TIENE ALGUNA DUDA ENCUANTO HA ALGO QUE LES PUEDA AYUDAR Y HA ORIENTAR CON GUSTO ESTOY A LA ORDEN.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Rafael

Descarga Masiva XML SAT

Publicado por Rafael (12 intervenciones) el 05/11/2016 04:14:58
por este medio de igual manera les hago llegar una pagina que me ha ayudado mucho para generar la platilla cfdi con crystal reports, convierte los xml a pdf con crystal reports, espero les sea de utilidad, saludos. https://www.mediafire.com/?axirzf0n3w0ywhu espero les pueda servir de orientacion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Roman Marquez (5 intervenciones) el 05/11/2016 04:47:55
mi comentario fue para Alvaro Ampudia , Rafael te comentaba que me interesa el codigo par descargar los xml del sat, si estas interesado en hacer algun intercambio. Házmelo saber.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rafael

Descarga Masiva XML SAT

Publicado por Rafael (12 intervenciones) el 05/11/2016 05:33:46
MI ESTIMADO ROMAN MARQUEZ PASAME TU CORREO PODRIAMOS APOLLARNOS HE INTERCAMBIAR IDEAS IGUAL AQUI POR ESTE MEDIO.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por Roman Marquez (5 intervenciones) el 05/11/2016 15:57:29
Hola te paso mi correo, roman6121@hotmail.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Descarga Masiva XML SAT

Publicado por JAVSAN (1 intervención) el 05/12/2016 20:12:52
hola estoy desarrollando una aplicacion para descarga de xml del sat he estado leyendo este foro y quisiera aportar, alguien me podria mandar el codigo en c#, Saludos y gracias por compartir su conocimiento.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar