Monday, November 14, 2016

Codigo Fuente .NET consultar RUC a SUNAT

https://www.facebook.com/groups/tecfactory

El siguiente código fuente desarrollado en Visual Studio .NET permite realizar la consulta RUC a SUNAT

  1. 'JAVIER ULLOA 24NOV16
  2. 'TEC FACTORY
  3. Imports System.Net
  4. Imports System.IO
  5. Public Class frmConsultaSunat
  6. #Region "VARIABLES"
  7.     Private miCookie As New CookieContainer
  8.     Public Enum eResultadoConsulta
  9.         ConsultaSatisfactoria = 1
  10.         ErrorDeCaptcha = 2
  11.         RucNoEncontrado = 3
  12.         Otro = 4
  13.     End Enum 
  14. #End Region
  15. #Region "VOID"
  16.     Private Function obtieneImagenCaptcha()
  17.         Dim UrlCaptcha As HttpWebRequest =WebRequest.Create("http://www.sunat.gob.pe/cl-ti-itmrconsruc/captcha?accion=image")
  18.         UrlCaptcha.CookieContainer = Me.miCookie
  19.         ServicePointManager.SecurityProtocol =SecurityProtocolType.Ssl3
  20.         UrlCaptcha.Credentials = CredentialCache.DefaultCredentials
  21.         Dim Captcha As WebResponse = UrlCaptcha.GetResponse
  22.         Dim imgCaptchaBinario As Stream = Captcha.GetResponseStream
  23.         Return Image.FromStream(imgCaptchaBinario)
  24.     End Function
  25.     Public Function ObtieneDatosSunat(ByVal str_dni As StringByVal str_captcha As StringByVal _txtRzSoc As TextBox, ByVal _txt_tipoemp As TextBox, ByVal _txtNomCom As TextBox, ByVal _txtFecIns As TextBox, ByVal_txtFecIni As TextBox, ByVal _txtEstCont As TextBox, ByVal _txtCondCont As TextBox, ByVal _txtDirec AsTextBox, ByVal _txtTelef As TextBox) As eResultadoConsulta
  26.         Dim urlReniec As String =String.Format("http://www.sunat.gob.pe/cl-ti-itmrconsruc/jcrS00Alias?accion=consPorRuc&nroRuc={0}&codigo={1}&tipdoc=1", str_dni, str_captcha)
  27.         Dim enlaceReniec As HttpWebRequest =WebRequest.Create(urlReniec)
  28.         enlaceReniec.CookieContainer = Me.miCookie
  29.         ServicePointManager.SecurityProtocol =SecurityProtocolType.Ssl3
  30.         enlaceReniec.Credentials =CredentialCache.DefaultCredentials
  31.         Dim respuesta_web As WebResponse =enlaceReniec.GetResponse
  32.         Dim myStream As Stream =respuesta_web.GetResponseStream
  33.         Dim myStreamReader As New StreamReader(myStream)
  34.         Dim Count As Integer = 0
  35.         Dim LineaVerificacionTexto As String = ""
  36.         Dim Adicionar As Integer = 0
  37.         If Me.txtRUC.Text.Substring(01) = "1" Then 'RUC 10
  38.             Adicionar = 4
  39.         End If
  40.         While LineaVerificacionTexto = myStreamReader.ReadLine <> vbNull
  41.             Count += 1
  42.             LineaVerificacionTexto = myStreamReader.ReadLine.Trim
  43.             Select Case Count
  44.                 Case 15
  45.                     If LineaVerificacionTexto = "
    "
     Then
  46.                         Return eResultadoConsulta.RucNoEncontrado
  47.                     End If
  48.                 Case 25
  49.                     If LineaVerificacionTexto.Remove(017) = "El codigo ingresado es incorrecto
Then 








  •                         Return eResultadoConsulta.ErrorDeCaptcha
  •                     End If
  •                 Case 61
  •                     _txtRzSoc.Text = LineaVerificacionTexto '
    20482736450 - EMDERSOFT S.A.C.
  •                     Me.quitaEtiquetas(_txtRzSoc)
  •                     _txtRzSoc.Text =_txtRzSoc.Text.Remove(015)
  •                 Case 63
  •                     _txt_tipoemp.Text =LineaVerificacionTexto '
    SOCIEDAD ANONIMA CERRADA
  •                     Me.quitaEtiquetas(_txt_tipoemp)
  •                 Case 66
  •                     _txtNomCom.Text = LineaVerificacionTexto
  •                 Case 68 + Adicionar
  •                     _txtFecIns.Text = LineaVerificacionTexto '
    28/10/2010
  •                     If Me.txtRUC.Text.Substring(01) = "1" Then
  •                         _txtFecIns.Text = myStreamReader.ReadLine.Trim
  •                     End If
  •                     Me.quitaEtiquetas(_txtFecIns)
  •                 Case 69 + Adicionar
  •                     _txtFecIni.Text = LineaVerificacionTexto '
    29/11/2010
  •                     Me.quitaEtiquetas(_txtFecIni)
  •                 Case 71 + Adicionar
  •                     _txtEstCont.Text = LineaVerificacionTexto '
    ACTIVO
  •                     Me.quitaEtiquetas(_txtEstCont)
  •                 Case 76 + Adicionar
  •                     _txtCondCont.Text = LineaVerificacionTexto
  •                 Case 79 + Adicionar
  •                     _txtDirec.Text = LineaVerificacionTexto '
    ----PR.MIRAFLORES NRO. 2099 URB.  MANPUESTO (COSTADO PARROQUIA SAN ESTEBAN)LA LIBERTAD  
  •                     Me.quitaEtiquetas(_txtDirec)
  •                     _txtDirec.Text = _txtDirec.Text.Replace("----""")
  •                     _txtDirec.Text = _txtDirec.Text.Trim
  •                 Case 81 + Adicionar
  •                     LineaVerificacionTexto = myStreamReader.ReadLine.Trim
  •                     Me.txtTelefono.Text = LineaVerificacionTexto '
  •                     Me.txtTelefono.Text = Me.txtTelefono.Text.Replace("""")
  •                     Me.quitaEtiquetas(txtTelefono)
  •                     Return eResultadoConsulta.ConsultaSatisfactoria
  •             End Select
  •         End While
  •         Return eResultadoConsulta.Otro
  •     End Function
  •     Private Sub quitaEtiquetas(ByVal _txt As TextBox)
  •         _txt.Text = _txt.Text.Remove(025)
  •         _txt.Text = _txt.Text.Replace("
  • ", "")
  •     End Sub
  • #End Region
  •     Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MyBase.Load
  •         Me.pbCapcha.Image = Me.obtieneImagenCaptcha
  •         Me.txtEscribirCodigo.Select()
  •     End Sub
  •     Private Sub LimpiarCajas()
  •         Me.txtRazonSocial.ResetText()
  •         Me.txtTipoEmpresa.ResetText()
  •         Me.txtNombreComercial.ResetText()
  •         Me.txtFechaInicioActividades.ResetText()
  •         Me.txtFechaInscripcion.ResetText()
  •         Me.txtEstadoContribuyente.ResetText()
  •         Me.txtDireccion.ResetText()
  •     End Sub
  •     Private Sub cmdConsultaDNI_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) HandlescmdConsultaDNI.Click
  •         Me.LimpiarCajas()
  •         Select Case Me.ObtieneDatosSunat(Me.txtRUC.Text.TrimMe.txtEscribirCodigo.Text.TrimMe.txtRazonSocialMe.txtTipoEmpresaMe.txtNombreComercialMe.txtFechaInscripcionMe.txtFechaInicioActividadesMe.txtEstadoContribuyenteMe.txtCondicionContribuyenteMe.txtDireccion, txtTelefono)
  •             Case eResultadoConsulta.ConsultaSatisfactoria
  •                 Me.cmdRefrescar.PerformClick()
  •             Case eResultadoConsulta.RucNoEncontrado
  •                 Me.cmdRefrescar.PerformClick()
  •                 Me.lblError.Text = "RUC NO ENCONTRADO"
  •                 Me.lblError.Visible = True
  •                 Me.txtRUC.ResetText()
  •             Case eResultadoConsulta.ErrorDeCaptcha
  •                 Me.cmdRefrescar.PerformClick()
  •                 Me.lblError.Text = "ERROR DE CAPTCHA"
  •                 Me.lblError.Visible = True
  •             Case Else
  •                 Me.lblError.Visible = False
  •         End Select
  •     End Sub
  •     Private Sub cmdRefrescar_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) HandlescmdRefrescar.Click
  •         Me.pbCapcha.Image = Me.obtieneImagenCaptcha
  •         Me.lblError.Visible = False
  •         Me.txtEscribirCodigo.ResetText()
  •     End Sub
  • End Class


  • https://www.facebook.com/groups/tecfactory

    DESCARGAR AQUI

    https://drive.google.com/file/d/0Bwb7OYHoadH7REFzM3pQZFZ0dWM/view?usp=sharing



    17 comments:

    Unknown said...

    Disculpa y en c# como se podria cambiar el codigo??...
    no tienes la misma consulta pero en c# porfas..

    Unknown said...

    Por favor y en c# como seria el codigo??.. no tienes la misma consulta pero en c#.. porfas...

    MaLkAvIaN_NeT said...

    voy a subir elcodigo en C# y lo voy a publicar en el grupo de face

    Chats said...
    This comment has been removed by the author.
    Carlos Marly said...

    Tendrás alguna idea de cómo realizarlo con java?

    Unknown said...

    Disculpa tienes el codigo en C#?

    Anonymous said...

    aca http://proyectos2017vbnet.azurewebsites.net/menu.aspx hay un proyecto en asp.net con c sharp,

    willians ny said...

    Disculpa el limpiar etiquetas con controles label como seria

    Anonymous said...

    en asp.net como haria no me sale.

    Kolep said...

    Solo funciona el formulario de SUNAT el de Reniec envia un error al intentar extraer el CAPTCHA de la pagina... me quede plantado ahi tambien.

    Unknown said...

    da error cuando consultas mas de una vez y vota tiempo de espera agotaado

    Unknown said...

    podrias darme una idea de como hacerlo en delphi, solo logro hacer hasta la captura del captcha y convertirlo en txt, pero en la parte:
    xurl:= 'http://www.sunat.gob.pe/cl-ti-itmrconsruc/jcrS00Alias?accion=consPorRuc&nroRuc='+ruc+'&codigo='+ captcha+'&tipdoc=1';
    path1:= 'D:\Delphi\RUC\xml1.txt';
    urlDownloadToFile(xurl, path1)
    retorna error.

    Anonymous said...

    Aca tienen un video de como hacerlo en asp.net
    https://www.youtube.com/watch?v=Mc4UiEulNIQ&feature=youtu.be

    Unknown said...

    Hola, gracias por el aporte, pero tengo un error
    _txtRzSoc.Text = _txtRzSoc.Text.Remove(0, 15)
    >>El índice y el recuento deben hacer referencia a una ubicación en la cadena. Nombre del parámetro: count'<<

    A que se deberia?
    gracias de antemano

    Janu said...

    Your work is very good and I appreciate you and hopping for some more informative posts



    Dot Net Training in Chennai | Dot Net Training in anna nagar | Dot Net Training in omr | Dot Net Training in porur | Dot Net Training in tambaram | Dot Net Training in velachery






    Uno said...

    Aquí encontré una nueva versión de consulta 2021 https://youtu.be/oGQVTzamTbU

    Alice Dsouza said...

    Great post thanks for sharing your blog,I'm glad to see your blog still interested in your article.">Spotify Music Streamer on Roblox