Autor Tema: obtener los datos de un número de RUC desde la pagina de la SUNAT?  (Leído 57905 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Albertomi

  • Gigabyte
  • ****
  • Mensajes: 281
  • Reputación: +153/-0
    • Ver Perfil
Re:obtener los datos de un número de RUC desde la pagina de la SUNAT?
« Respuesta #30 en: Enero 24, 2015, 11:08:12 am »

Estimado YAcosta


Ahora le debes tu yugulara al amigo FrankLizardo, el publico el código fuente para obtener los datos del RUC desde la página de la SUNAT que solicita superar el reto CAPTCHA. Hace uso de una librería libre tesseract-ocr que se encarga de traducir el CAPTCHA a texto. El código lo vi muy rápidamente para dar respuesta en su momento a PatriciaBB y me parece que se puede optimizar y podríamos hacerlo entre todos.


Link del post: [size=78%]http://leandroascierto.com/foro/index.php?topic=2720.msg15345#msg15345[/size]


Código Fuente: [size=78%]http://1drv.ms/1EeiIcT[/size]




Saludos desde algún lugar de Lima-Perú
« última modificación: Enero 24, 2015, 11:19:28 am por Albertomi »
Saludos, desde algún lugar de Lima-Perú

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:obtener los datos de un número de RUC desde la pagina de la SUNAT?
« Respuesta #31 en: Enero 24, 2015, 03:13:47 pm »
Ah esto esta bueno doc, no habia revisado ese enlace porque hasta esa fecha lo que tenia funcionaba. Voy a ver que optimizarlo pero hasta donde vi esta bastante funcional
Me encuentras en YAcosta.com

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:obtener los datos de un número de RUC desde la pagina de la SUNAT?
« Respuesta #32 en: Enero 24, 2015, 04:19:07 pm »
Bueno estuve revisando y me ha funcionado en los 4 o 5 primeros rucs, luego entra a un loop infinito convirtiendo varios capcha sin para, lo curioso es que lo convierte bien, la conversion del capcha esta de 10!! y sin embargo sigue buscando.

EDITO:
Con algunos RUCs pasa eso, por ejemplo estos RUCs estan con Baja de Inscripción
20571427746
20571336601
20568019106
20568026145


Sin embargo este otro si está habido: 20571254116 pero con baja de oficio y entra al mismo loop infinito ¿Porque? (se puede verificar aqui)

De momento voy a hacer que el codigo hago 5 pasadas, sino encuentra al quinto intento dare un mensaje como "No se pueden obtener los datos de este RUC" o similar.
« última modificación: Enero 24, 2015, 04:22:05 pm por YAcosta »
Me encuentras en YAcosta.com

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:obtener los datos de un número de RUC desde la pagina de la SUNAT?
« Respuesta #33 en: Enero 24, 2015, 04:31:13 pm »
Ok ya entendi, esto pasa cuando en la función OtroSunat se intenta hacer el replace de una cadena que no existe y se manda la rutina EsteErr poniendo en False a la función y entrando de nuevo al loop. Esto implica entonces hacer una mejor validación de la cadena.

Basicamente el problema esta en esta linea:
xTabla(9) = Replace(Mid(xTabla(9), 1, InStr(xTabla(9), "<!--") - 1), "class='bg' colspan=3>", "")

De momento hare una consulta si existe "<!--" para correr eso y sino solo "class='bg' colspan=3>", "" salvo mejor alternativa.
« última modificación: Enero 24, 2015, 04:39:29 pm por YAcosta »
Me encuentras en YAcosta.com

antonio2005pe

  • Bytes
  • *
  • Mensajes: 49
  • Reputación: +0/-1
    • Ver Perfil
Re:obtener los datos de un número de RUC desde la pagina de la SUNAT?
« Respuesta #34 en: Enero 25, 2015, 01:16:33 pm »
Hola como estan todos, me interesa mucho el tema de incorporarlo a mi sistema, pero hay un pequeño problema, que se queda en en loop infinito como dice YAcosta, como puedo solucionar eso?

FrankLizardo

  • Kilobyte
  • **
  • Mensajes: 65
  • Reputación: +7/-1
    • Ver Perfil
Re:obtener los datos de un número de RUC desde la pagina de la SUNAT?
« Respuesta #35 en: Enero 26, 2015, 06:30:30 pm »
Aqui dejo el link resolviendo esos problemas

http://leandroascierto.com/foro/index.php?topic=2720.15
« última modificación: Enero 28, 2015, 01:06:29 am por FrankLizardo »

antonio2005pe

  • Bytes
  • *
  • Mensajes: 49
  • Reputación: +0/-1
    • Ver Perfil

amcompe

  • Bit
  • Mensajes: 2
  • Reputación: +0/-0
    • Ver Perfil
Re:obtener los datos de un número de RUC desde la pagina de la SUNAT?
« Respuesta #37 en: Enero 30, 2015, 03:24:59 pm »
Hola este es mi intento, encuentro un error de protocolo favor si alguien me da una pista .
Por lo pronto  ya logre convertir la imagen a texto con una OCR en NET llamada tessnet2.dll.  Lo estoy mandando directo con datos fijos

private void mt_otro3()
        {
            try
            {
                //Creating the Web Request.
                HttpWebRequest httpWebRequest = HttpWebRequest.Create("http://www.sunat.gob.pe/cl-ti-itmrconsruc/jcrS00Alias") as HttpWebRequest;
                //Specifing the Method
                httpWebRequest.Method = "POST";
                //Data to Post to the Page, itis key value pairs; separated by "&"
                string data = "accion=consPorRuc&nroRuc=20100495989&search1:20100495989&codigo=FGRT&tipdoc=1";
                //Setting the content type, it is required, otherwise it will not work.
                httpWebRequest.ContentType = "application/x-www-form-urlencoded";
                //Getting the request stream and writing the post data
                using (StreamWriter sw = new StreamWriter(httpWebRequest.GetRequestStream()))
                {
                    sw.Write(data);
                }
                //Getting the Respose and reading the result.
                HttpWebResponse httpWebResponse = httpWebRequest.GetResponse() as HttpWebResponse;
                using (StreamReader sr = new StreamReader(httpWebResponse.GetResponseStream()))
                {
                    MessageBox.Show(sr.ReadToEnd());
                }
            }
            catch (WebException wex)
            {
                StringBuilder sb = new StringBuilder();
                sb.AppendLine("ERROR:" + wex.Message + ". STATUS: " + wex.Status.ToString());

                if (wex.Status == WebExceptionStatus.ProtocolError)
                {
                    var response = ((HttpWebResponse)wex.Response);
                    sb.AppendLine(string.Format("Status Code : {0}", response.StatusCode));
                    sb.AppendLine(string.Format("Status Description : {0}", response.StatusDescription));

                    try
                    {
                        StreamReader reader = new StreamReader(response.GetResponseStream());
                        sb.AppendLine(reader.ReadToEnd());
                    }
                    catch (WebException ex) { throw; }
                }

                throw new Exception(sb.ToString(), wex);
            }

        }

Gracias.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:obtener los datos de un número de RUC desde la pagina de la SUNAT?
« Respuesta #38 en: Febrero 15, 2015, 02:00:48 pm »
Bueno, tengo este problema (video de 3 minutos)

https://www.youtube.com/watch?v=f9urW6ubSGk

Pero ademas de ello he notado de que si la pagina web de la Sunat se cae (a veces sucede) entonces este modulo colgaría todo mi sistema, aparte del problema que esta en el video.

Me pase todo el dia de ayer tratando de resolver pero mis conocimientos sobre Apis no alcanza para dar solución.

Ya casi estoy por tirar la toalla y por los dos inconvenientes que tengo lo mejor sera hacer un aplicativo aparte que consulte a la Sunat y grabe en la base de datos, lo invocare usando shellexecute desde mi sistema, de esa forma queda resuelto ambos problemas y solo tendria el problema de usabilidad que ya es mas facil de resolver.
Me encuentras en YAcosta.com

Albertomi

  • Gigabyte
  • ****
  • Mensajes: 281
  • Reputación: +153/-0
    • Ver Perfil
Re:obtener los datos de un número de RUC desde la pagina de la SUNAT?
« Respuesta #39 en: Febrero 15, 2015, 02:16:30 pm »

Estimado YAcosta
[/size]
[/size]Dos temas:
  • [/size]Para descartar, en el proyecto original de FrankLizardo adiciona el user control que mencionas en el video y ejecútalo a ver cómo se comporta la aplicación
  • [/size]Convierte el código de FrankLizardo a DLL, de esta forma optimizares tu programa y para cuando la SUNAT realice otro cambio solo reemplazas la DLL
[/size]
[/size]Saludos desde algún lugar de Lima-Perú

Saludos, desde algún lugar de Lima-Perú

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:obtener los datos de un número de RUC desde la pagina de la SUNAT?
« Respuesta #40 en: Febrero 15, 2015, 02:39:33 pm »
Muchas gracias estimado Albertomi, te comento. La verdad la frustración era tanta y tantas pruebas que ya me perdí, te explico brevemente.

Hice una copia de todo mi proyecto para manipularlo. Puse el codigo de Frank y este como se esperaba no levanto.
En esa copia quite de todos los formularios ese UC y luego quite el UC del proyecto, el código de Frank funcionó, luego en una de esas probando en el proyecto copia el codigo de Frank y me percate que NO habia quitado el UC (customtooltip) que estaba alli, asi que de pura joda puse en el formulario de consulta a sunat el control y el maldito SI FUNCIONO!!! funciono teniendo el UC al lado.... entonces queda demostrado que ese UC no lo afecta lo que me devuelve la cordura porque ambos apis estan declarados de forma privada y efectivamente no deberian afectarse porque no se alcanzan.

Pero entonces ¿porque en el proyecto original con el codigo de Frank se cae en esa linea?? siendo que al proyecto copia le quite ese UC pero luego se lo puse solo al form de consulta sunat y anda.

Después pensé en que quiza al proyecto copia le vuelvo a poner el control... pero seguire en la ignorancia de no saber que paso... y si sucede lo mismo en cliente??? por eso empiezo a pensar en invocar ese codigo convertido en aplicativo externo.

Sobre lo ultimo, de convertir a dll... la verdad no se bien como hacer ello ya que el codigo necesita un picture... no la verdad no se ni como empezar pero si podria investigarlo despues de saber que pasa con el problema de arriba.

Muchas gracias estimado
« última modificación: Febrero 15, 2015, 02:41:19 pm por YAcosta »
Me encuentras en YAcosta.com

cliv

  • Kilobyte
  • **
  • Mensajes: 69
  • Reputación: +1/-2
    • Ver Perfil
Re:obtener los datos de un número de RUC desde la pagina de la SUNAT?
« Respuesta #41 en: Marzo 04, 2015, 09:49:49 am »
Can you repost original code from FrankLizardo.
The link is dead...


Thank you

handblack

  • Bit
  • Mensajes: 2
  • Reputación: +0/-0
    • Ver Perfil
Re:obtener los datos de un número de RUC desde la pagina de la SUNAT?
« Respuesta #42 en: Junio 15, 2015, 11:52:26 am »
Pero sobre este tema, yo acabo de crear una nueva solución, por el momento solo dispongo algo de informacion.

En mi webserver he habilitado una consulta de RUC, que el resultado te nuestra en formato XML, ya de ahi solo metan su creatividad para poder utilizarlos.

http://www.miasoftware.net/ruc

Bueno señores, haber si me dan una manito para mejorarlo, en el trancurso de esta semana, estoy levantando informacion de los anexos.

dany22_

  • Bit
  • Mensajes: 7
  • Reputación: +0/-0
    • Ver Perfil
Re:obtener los datos de un número de RUC desde la pagina de la SUNAT?
« Respuesta #43 en: Junio 23, 2015, 01:53:47 pm »
Amigo handblack muy bueno lo que haz hecho quizas no te pueda ayudar porque mis conocimientos son casi nulos recien ando aprendiendo asi que mas bien te quiisera pedir que tu me ayudes ami si no fuera mucha molestia.

handblack

  • Bit
  • Mensajes: 2
  • Reputación: +0/-0
    • Ver Perfil
Re:obtener los datos de un número de RUC desde la pagina de la SUNAT?
« Respuesta #44 en: Junio 23, 2015, 07:57:48 pm »
Dany, para poder obtener informacion del RUC desde el webservice que he abilitado, solo tienes que llamarlo asi:

http://www.miasoftware.net/consultaruc/consultar.php?ruc=20547313454

y la informacion que esta te devuelve lo hace en formato XML, que ese tipo de formato lo puede leer cualquier lenguaje de programacion, busca en San google de como puede manipular los XML.

Mas informacion:
http://blog.miasoftware.net/sunat/consulta-de-ruc-en-linea-www-sunat-gob-pe/