Accesar a la sbs Peru sin código captcha

157 views
Skip to first unread message

Luis Leon

unread,
Jul 10, 2018, 11:31:46 AM7/10/18
to foro vfp


Algun amigo tiene el código mencionado



Gracias


Luis Leon

alberto parra garcia

unread,
Jul 10, 2018, 11:35:22 AM7/10/18
to publice...@googlegroups.com
Consulta de DNI.

LPARAMETERS lcDNI,lcToken
If Type("lcDNI") = "L" .Or. Type("lcToken") = "L"
Return .F.
Endif
Local lnEstado,lcURL,loHTTP,lcResult,laDatos,lnError,lcToken,lcDNI
Dimension laDatos[1]
lnError  = 0
lnEstado = -1
lcURL    = "http://www.facturacionsunat.com/vfpsws/vfpscondni.php?dni=" + Alltrim(lcDNI) + "&token=" + Alltrim(lcToken) + "&format=txt"
Try
loHTTP = Createobject("MSXML2.XMLHTTP")
loHTTP.Open("GET", lcURL, .F.)
loHTTP.Send ()
lnEstado = loHTTP.Status
Catch To loError
Try
loHTTP = Createobject("Microsoft.XMLHTTP")
If Type("loHTTP") <> "O"
Return .F.
Endif
loHTTP.Open("GET", lcURL, .F.)
loHTTP.Send ()
lnEstado = loHTTP.Status
Catch To loError
*!* ERROR RECURSIVO NO EXISTEN LOS OBJETOS XML
lnEstado = -1
Messagebox("No se puede instanciar los objetos XMLHTTP. Verificar!!!",48,"Erorr!!! DNI")
Endtry
Endtry
If lnEstado <> 200
Return .F.
Endif
*_Screen.MousePointer = 0
lcResult = loHTTP.ResponseText
lcResult = Alltrim(Strtran(lcResult,"</br >",Chr(13) + Chr(10)))
lnLines  = Alines(laDatos,lcResult)
loHTTP   = .F.
If lnLines = 1
Messagebox(lcResult + ". Verificar!!!",48,"Error")
Public DatosDni
Dimension DatosDni[7]
DatosDni[2] = ""
DatosDni[3] = ""
DatosDni[4] = ""
DatosDni[5] = ""
DatosDni[6] = ""
DatosDni[7] = ""
Else
Public DatosDni
Dimension DatosDni[7]
DatosDni[2] = Substr(laDatos[2],9,  50)  && Nombres
DatosDni[3] = Substr(laDatos[3],14, 50)  && Ape. Paterno
DatosDni[4] = Substr(laDatos[4],14, 50)  && Ape. Materno
DatosDni[5] = Alltrim(Substr(laDatos[5],15))  && Verificacion
DatosDni[6] = Substr(laDatos[6],10, 10)  && Telefono
DatosDni[7] = Substr(laDatos[7],12, 100)  && Domicilio
ThisForm.txtRazonSocial.Value  = ''
    ThisForm.Pageframe1.Page4.edtMdirec_clie.Value = DatosDni[7]  &&''
    ThisForm.Pageframe1.Page3.txtCfax_clie.Value = DatosDni[6]
Thisform.txta_paterno.Value = DatosDni[3]
Thisform.txta_materno.Value = DatosDni[4]
Thisform.txtNombres.Value   = DatosDni[2]
Endif
Return DatosDni





Consulta de RUC.


lparameter lcRUC,lcToken
If Type("lcRUC") = "L" .Or. Type("lcToken") = "L"
Return .F.
ENDIF
Local lnEstado,lcURL,loHTTP,lcResult,laDatos,lnError,lcToken,lcDNI,lnTotRes,i,lnDatSum
Dimension laDatos[16]
lnError  = 0
lnEstado = -1
lcURL    = "http://www.facturacionsunat.com/vfpsws/vfpsconruc.php?ruc=" + Alltrim(lcRUC) + "&token=" + Alltrim(lcToken) + "&format=txt"
TRY
loHTTP = Createobject("MSXML2.XMLHTTP")
loHTTP.Open("GET", lcURL, .F.)
loHTTP.Send()
lnEstado = loHTTP.Status
Catch To loError
TRY
loHTTP = Createobject("Microsoft.XMLHTTP")
If Type("loHTTP") <> "O"
Return .F.
Endif
loHTTP.Open("GET", lcURL, .F.)
loHTTP.Send ()
lnEstado = loHTTP.Status
Catch To loError
*!* ERROR RECURSIVO NO EXISTEN LOS OBJETOS XML
lnEstado = -1
Messagebox("No se puede instanciar los objetos XMLHTTP. Verificar!!!",48,"Error RUC")
Endtry
Endtry
******
If lnEstado <> 200
Return .F.
Endif
*_Screen.MousePointer = 0

lcResult = loHTTP.ResponseText
lcResult = Alltrim(Strtran(lcResult,"</br >",Chr(13) + Chr(10)))
lnLines  = Alines(laDatos,lcResult)
loHTTP   = .F.
If lnLines = 1
Messagebox(lcResult + ". Verificar!!!",48,"Eror RUC!!!")
Public DatosRuc
DIMENSION DatosRuc[15]
DatosRuc[1] = ""
DatosRuc[2] = ""
DatosRuc[3] = ""
DatosRuc[4] = ""
DatosRuc[5] = ""
DatosRuc[6] = ""
DatosRuc[7] = ""
DatosRuc[8] = ""
DatosRuc[9] = ""
DatosRuc[10] = ""
DatosRuc[11] = ""
DatosRuc[12] = ""
DatosRuc[13] = ""
DatosRuc[14] = ""
DatosRuc[15] = ""
DatosRuc[16] = ""
Else
*!* LLENAMOS LOS RESULTADOS EN PROPIEDADES DEL _SCREEN
Public DatosRuc
DIMENSION DatosRuc[15]
DatosRuc[1]  = SUBSTR(laDatos[1],9, 100)    && Nombre
DatosRuc[2]  = Alltrim(SUBSTR(laDatos[2],6, 10))    && Dni
DatosRuc[3]  = Alltrim(SUBSTR(laDatos[3],12,100))   && Domicilio
DatosRuc[4]  = Alltrim(SUBSTR(laDatos[4],11))   && 
DatosRuc[5]  = Alltrim(SUBSTR(laDatos[5],11))   && Distrito
DatosRuc[6]  = Alltrim(SUBSTR(laDatos[6],14))   && Provincia
DatosRuc[7]  = Alltrim(SUBSTR(laDatos[7],8))    && Departamento
DatosRuc[8]  = SUBSTR(laDatos[8],19,100)   && Nombre comercial
DatosRuc[9]  = Alltrim(SUBSTR(laDatos[9],9))    && Estatus
DatosRuc[10] = Alltrim(SUBSTR(laDatos[10],20)) && Tipo contribuyente
DatosRuc[11] = Alltrim(SUBSTR(laDatos[11],9))  && Condici
DatosRuc[12] = SUBSTR(laDatos[12],8, 10)  && Tel?no
DatosRuc[13] = Alltrim(SUBSTR(laDatos[13],19)) && Fecha inscripcion
DatosRuc[14] = Alltrim(SUBSTR(laDatos[14],20)) && Emisor electronico
DatosRuc[15] = Alltrim(SUBSTR(laDatos[15],22)) && Sistema contabilidad

    ThisForm.txtRazonSocial.Value  = DatosRuc[1]
    ThisForm.txtcNombre_Comercial.Value = iif(DatosRuc[8]='-', '', DatosRuc[8])
    ThisForm.Pageframe1.Page4.edtMdirec_clie.Value = DatosRuc[3]
    ThisForm.Pageframe1.Page3.txtCfax_clie.Value = DatosRuc[12]
    Cadena = DatosRuc[1]
    Thisform.txta_paterno.Value = ''
Thisform.txta_materno.Value = ''
Thisform.txtNombres.Value   = ''
IF substr(lcRUC, 1, 2) != '20'
Ape1 = ATC(' ', Cadena)
Ape2 = ATC(' ', SUBSTR(Cadena,Ape1+1))
Nom1 = ATC(' ',SUBSTR(Cadena,Ape1+Ape2+1))
Thisform.txta_paterno.Value = SUBSTR(Cadena,1,Ape1)
Thisform.txta_materno.Value = SUBSTR(Cadena,Ape1+1,Ape2)
Thisform.txtNombres.Value   = substr(Cadena,(Ape1+1+Ape2))
endif
    
    Thisform.txtcdocumento_dni.Value = iif(DatosRuc[2] = '-', '', DatosRuc[2])
    *ThisForm.Pageframe1.Page5.Rex_Ubigeo.txtSearch.value = DatosRuc[7]
   
Endif
Return DatosRuc

Luis Leon

unread,
Jul 10, 2018, 1:25:33 PM7/10/18
to publice...@googlegroups.com

Eso no es


De: publice...@googlegroups.com <publice...@googlegroups.com> en nombre de alberto parra garcia <alberto.in...@gmail.com>
Enviado: martes, 10 de julio de 2018 10:35:53
Para: publice...@googlegroups.com
Asunto: Re: [vfp] Accesar a la sbs Peru sin código captcha
 

Jean Pierre Adonis De La Cruz Garcia

unread,
Jul 11, 2018, 8:29:55 AM7/11/18
to Comunidad de Visual Foxpro en Español
Lo que se refiere LEON quizas es hacer este tipo de trabajo para no estar digitando el Captcha del SBS


Lo dejar activo al menos un par de dias para que lo prueben.
Reply all
Reply to author
Forward
0 new messages