Enrrique Vertiz wrote: Wed Jan 08, 2025 3:04 am
Saludos
Consulto para saber si se llego a solucionar, Yo al dia de hoy sigo con el mismo error ...
Gracias
¿Hola Enrique buenas noches como estas?
Pues el error como tal sigue saliendo cuando se integra el código a la aplicación, pero lo solucionamos creando un ejecutable externo. Le enviamos el parámetro de la cédula (DNI en otros países) para acelerar el proceso, pero como dice Antonio, desafortunadamente ya no se puede de manera automática, hay que completar el CloudFare o esperar a que se valide. Así que agregamos dos botones para capturar la información, luego de completar el proceso de validación, los bajamos a un json y luego desde la app los recuperamos.
Code: Select all | Expand
#include "FiveWin.ch"
static oWebView
function Main( ... )
local oWnd, cResult, Btn_Div, Btn_Sal
Local aParams := hb_aParams() //recuperamos parametros
Local cIdenti := space(0)
Local cDian := space(0)
Local cInfo := space(0)
Local hConvierte := hash()
Local hDatos := hash()
Local lCapturado := .F.
Local cbRecuperainfo := <|cJson|
hb_jsondecode(cJson ,@hConvierte )
if hConvierte[1]
lCapturado := .T.
hDatos["tipo_tercero"] := hConvierte[2]
hDatos["tercero"] := hConvierte[3]
hDatos["estado"] := hConvierte[4]
hDatos["dv"] := hConvierte[5]
if hConvierte[2]=="NIT"
hDatos["razon_social"] := hConvierte[6]
else
hDatos["primer_nombre"] := hConvierte[6]
hDatos["segundo_nombre"] := hConvierte[7]
hDatos["primer_apellido"] := hConvierte[8]
hDatos["segundo_apellido"] := hConvierte[9]
endif
else
lCapturado := .F.
endif
oWnd:End()
>
Local hInfo := {=>}
Local cFec := dtos(date())
Local cTim := strtran(subs(time(),1,8),":","")
Local cRutaJson := "elnombredeljsonconlainfo.json"
Local cDevuelveInfo := <||
hInfo["capturado"] := lCapturado
hInfo["datos"] := hDatos
memowrit( cRutaJson , hb_jsonEncode( hInfo ) ,.F.)
>
if len(aParams)>0
cIdenti := alltrim(aParams[1])
cDian := "consultaDIAN( '"+cIdenti+"' )"
TEXT INTO cResult
var inputEstado = document.getElementById('vistaConsultaEstadoRUT:formConsultaEstadoRUT:estado');
if (inputEstado) {
var inputNIT = document.getElementById('vistaConsultaEstadoRUT:formConsultaEstadoRUT:numNit');
var cNit = inputNIT.value;
if(cNit.length==9){
[ true,'NIT',document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:numNit' ).value,
document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:estado' ).innerHTML,
document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:dv' ).innerHTML,
document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:razonSocial' ).innerHTML ]
}else{
[ true,'OTRO',document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:numNit' ).value,
document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:estado' ).innerHTML,
document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:dv' ).innerHTML,
document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:primerNombre' ).innerHTML,
document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:otrosNombres' ).innerHTML,
document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:primerApellido' ).innerHTML,
document.getElementById( 'vistaConsultaEstadoRUT:formConsultaEstadoRUT:segundoApellido' ).innerHTML ]
}
} else {
[false]
}
ENDTEXT
DEFINE WINDOW oWnd TITLE "Consultar estado NIT plataforma DIAN " SIZE 830, 700 PIXEL ICON ".\res\favicon-48x48.ico"
oWebView = TWebView2():New( oWnd )
//oWebView:bOnNavigationCompleted = { | cUrl, hWebView | If( "sessionid" $ cUrl, oWebView:Eval( cResult ),) }
oWebView:Navigate( "https://muisca.dian.gov.co/WebRutMuisca/DefConsultaEstadoRUT.faces" )
oWebView:InjectJavascript( JavaScript() )
//oWebView:OpenDevToolsWindow()
oWebView:bOnEval = { | cJson, hWebView | If( cJson != "null" .and. cJson != "{}", EVAL( cbRecuperainfo,cJson ),) }
oWebView:Eval( cDian )
@ oWnd:nHeight-80, 15 BUTTONBMP Btn_Sal OF oWnd PIXEL size 110, 26 PROMPT "Cancelar" TOOLTIP "Cerrar Ventana" ;
RESOURCE ".\res\icon-blue-dark-cerrar-big-16x16.png" TEXTRIGHT ACTION ( lCapturado := .F., oWnd:End() )
@ oWnd:nHeight-80, 80 BUTTONBMP Btn_Div OF oWnd PIXEL size 110, 26 PROMPT "Capturar" TOOLTIP "Capturar datos" ;
RESOURCE ".\res\icon-blue-dark-check-big-16x16.png" TEXTRIGHT ACTION (lCapturado := .T.,oWebView:Eval( cResult ))
ACTIVATE WINDOW oWnd CENTER ;
ON RESIZE (oWebView:SetSize( oWnd:nWidth, oWnd:nHeight-100 ), Btn_Div:nTop := oWnd:nHeight-80,;
Btn_Div:nLeft := oWnd:nHeight-10 ,Btn_Sal:nTop := oWnd:nHeight-80, Btn_Sal:nLeft := oWnd:nHeight-130 ) ;
VALID (EVAL(cDevuelveInfo),.T.)
oWebView:End()
else
lCapturado := .F.
EVAL(cDevuelveInfo)
//msginfo("no vienen los parametros")
endif
return nil
function Javascript()
local cCode
TEXT INTO cCode
function consultaDIAN( numeroIdentificacion )
{
var inputNIT = document.getElementById('vistaConsultaEstadoRUT:formConsultaEstadoRUT:numNit');
if (inputNIT) {
inputNIT.value = numeroIdentificacion;
} else {
console.error('No se encontró el campo de entrada para el NIT');
return;
}
}
ENDTEXT
return cCode