Jump to content
Fivewin Brasil

Não consegue ler os dados do CNPJ


mkyx

Recommended Posts

Boa noite, pessoal

Por que será que a rotina abaixo, de buscar os dados do cnpj na internet, não funciona no windows 7, e dá o erro?

Quando não lê, emite a mensagem: "Não conseguiu enviar solicitação para requisição dos dados do CNPJ"

FUNCTION PEGA_CNPJ(CPF_C,OBJ01_C,FAN_C,OBJ02_C,NE_C,OBJ03_C,CE_C,OBJ04_C,EN_C,OBJ05_C,NU_C,OBJ06_C,CPL_C,OBJ07_C,BA_C,OBJ08_C,CD_C,OBJ09_C,UF_C,OBJ10_C,DTN_C,OBJ11_C,TEL_C,OBJ12_C,EM_C,OBJ13_C,IEST_C,OBJ14_C,SIM_NAC,OBJ15_C)
Local oServerWS, cUrl, aArray, oCnpj:= TIRA(CPF_C,"Z")
IF LEN(oCnpj)#14
   MSGINFO("Este botão só busca dados de pessoal jurídica!")
   return .t.
endif
     cUrl:= "https://publica.cnpj.ws/cnpj/"+Alltrim(oCnpj) 
     Try
        oServerWS := CreateObject( 'MSXML2.ServerXMLHTTP.5.0' )  
     Catch oError
        try
          oServerWS := CreateObject( 'MSXML2.ServerXMLHTTP.6.0' )  
        catch oError
          try
             oServerWS := CreateObject("Microsoft.XMLHTTP")
          catch oError
             ? e:Description
             return nil
          end
        END
     end
     TRY
        oServerWS:open('GET', cUrl, .f.)
        oServerWS:setRequestHeader('Content-Type'    , 'text/xml; charset=utf-8')    // Obtém ou define o valor de cabeçalho de Content-type HTTP. 
        oServerWS:send()    
     CATCH
        ? "Não conseguiu enviar solicitação para requisição dos dados do CNPJ"
        return .t.
     END
     IF oServerWS:Status != 200 // OK
        MsgStop( Alltrim(STR(oServerWS:Status)) +" - "+ oServerWS:StatusText , "Erro")
        RETURN NIL
     ENDIF
     
     WHILE oServerWS:readyState != 4
        oServerWS:waitForResponse(1000)
     END   
     txt:=  oServerWS:responseText
     Arq_1:=ALLTRIM(txt)
     cBat:=CURDRIVE()+":\"+CURDIR()+"\LEITURA_CNPJ.TXT"
     nHandle := FCreate( cBat )
     FWrite( nHandle, Arq_1 ,LEN(Arq_1) )
     FClose( nHandle )
** a partir daqui o conteudo da variavel arq_1, é tratada e separada os dados.

.......

 

Link to comment
Share on other sites

11 horas atrás, mkyx disse:


        oServerWS := CreateObject( 'MSXML2.ServerXMLHTTP.5.0' )  
          oServerWS := CreateObject( 'MSXML2.ServerXMLHTTP.6.0' )  
             oServerWS := CreateObject("Microsoft.XMLHTTP")
 

 

 Windows 7 nao tem este recurso tentei varias veses inclusive instale os pack mais atualuizados e nao deu certo.  


        oServerWS := CreateObject( 'MSXML2.ServerXMLHTTP.5.0' )  
          oServerWS := CreateObject( 'MSXML2.ServerXMLHTTP.6.0' )  
             oServerWS := CreateObject("Microsoft.XMLHTTP")

 

Link to comment
Share on other sites

// teste agora:

#include "FiveWin.ch"
	FUNCTION Main()
	   LOCAL cOnde, cCnpj, cNome, cEndereco, cNro, cComplemento, cBairro, cCidade, ;
         cEstado, cCep, cTelefone
	   cOnde        := SPACE(10)
   // CNPJ: 42.905.527/0001-05 - 42905527000105
   cCnpj        := "42905527000105"
   cNome        := SPACE(50)
   cEndereco    := SPACE(40)
   cNro         := SPACE(10)
   cComplemento := SPACE(10)
   cBairro      := SPACE(20)
   cCidade      := SPACE(30)
   cEstado      := SPACE(02)
   cCep         := SPACE(08)
   cTelefone    := SPACE(17)
	   GetCNPJ( cOnde, cCnpj, cNome, cEndereco, cNro, cComplemento, cBairro, cCidade, cEstado, cCep, cTelefone )
	RETURN NIL
	FUNCTION GetCNPJ( cOnde, cCnpj, cNome, cEndereco, cNro, cComplemento, cBairro, cCidade, cEstado, cCep, cTelefone )
	   LOCAL oServerWS, cUrl, aArray, x1, erro, oADODBStream, cTXT, cRet
   LOCAL nHandle, Arq_1
	   IF Len( AllTrim( cCnpj ) ) < 14
	      MsgInfo( "Somente Pessoa Juridica para consultar os dados na Receita !!!", "Atenção " )
	      RETURN( .T. )
	   ENDIF
	   // cUrl := "https://www.receitaws.com.br/v1/cnpj/" + cCnpj
   cUrl:= "https://publica.cnpj.ws/cnpj/" + cCnpj
	   #ifdef __XHARBOUR__  // PERFEITO COM XHARBOUR( I Like )
	      Try
	         Try
            oServerWS := CreateObject( 'MSXML2.XMLHTTP' )
         Catch
            oServerWS := CreateObject( 'Microsoft.XMLHTTP' )
         End
	      Catch
	         MsgInfo( 'Erro na Criação do Serviço' )
	         RETURN NIL
	      End
	   #else // PERFEITO COM HARBOUR. ( no Like. kkkkk )
	      Try
	         Try
            oServerWS := win_OleCreateObject( 'MSXML2.XMLHTTP' )
         Catch
            oServerWS := win_OleCreateObject( 'Microsoft.XMLHTTP' )
         End
	      Catch
	         MsgInfo( 'Erro na Criação do Serviço! Com Harbour', 'Atenção!' )
	         RETURN NIL
	      End
	   #endif
	   TRY
      oServerWS:open('GET', cUrl, .f.)
      // Obtém ou define o valor de cabeçalho de Content-type HTTP.
      oServerWS:setRequestHeader('Content-Type'    , 'text/xml; charset=utf-8')    
      oServerWS:send()
	   CATCH
	      ? "Não conseguiu enviar solicitação para requisição dos dados do CNPJ"
	      RETURN NIL
	   END
	   IF oServerWS:STATUS != 200
	      MsgStop( AllTrim( Str( oServerWS:Status ) ) + " - " + oServerWS:StatusText, "Erro" )
	      RETURN NIL
	   ENDIF
	   WHILE oServerWS:readyState != 4
	      SYSREFRESH()
	      oServerWS:WaitForResponse( 1000 )
	   END
	   x1  := hb_jsonDecode( oServerWS:responseText, @aArray )
	   cTXT :=  oServerWS:responseText
	   IF aArray == nil
	      MsgStop( "Erro ao retornar os dados. Tente novamente." )
	      RETURN NIL
	   ENDIF
	   Arq_1   := ALLTRIM( cTXT )
	   cRet    := CURDRIVE()+":\"+CURDIR()+"\CNPJ.TXT"
	   nHandle := FCreate( cRet )
	   FWrite( nHandle, Arq_1 ,LEN(Arq_1) )
	   FClose( nHandle )
	   ** a partir daqui o conteudo da variavel arq_1, é tratada e separada os dados.
	   // Complete o resto e poste aqui para eu ver por favor.
	RETURN NIL
	// FIM DOM PROGRAMA - By kapiabafwh@gmail.com

Retorno:

/*
{"cnpj_raiz":"42905527","razao_social":"STAHLCAP GESTAO DE ATIVOS E COMERCIAL UNIPESSOAL LTDA","capital_social":"2000.00","responsavel_federativo":"","atualizado_em":"2022-07-09T03:00:00.000Z","porte":{"id":"01","descricao":"Micro Empresa"},"natureza_juridica":{"id":"2062","descricao":"Sociedade Empresária Limitada"},"qualificacao_do_responsavel":{"id":49,"descricao":"Sócio-Administrador "},"socios":[{"cpf_cnpj_socio":"***129158**","nome":"ANTONIO JOSE TEIXEIRA REDE","tipo":"Pessoa Física","data_entrada":"2021-07-28","cpf_representante_legal":"***000000**","nome_representante":null,"faixa_etaria":"61 a 70 anos","atualizado_em":"2022-07-09T03:00:00.000Z","pais_id":"1058","qualificacao_socio":{"id":49,"descricao":"Sócio-Administrador "},"qualificacao_representante":null}],"simples":{"simples":"Sim","data_opcao_simples":"2021-07-28","data_exclusao_simples":null,"mei":"Não","data_opcao_mei":null,"data_exclusao_mei":null,"atualizado_em":"2022-07-09T03:00:00.000Z"},"estabelecimento":{"cnpj":"42905527000105","atividades_secundarias":[],"cnpj_raiz":"42905527","cnpj_ordem":"0001","cnpj_digito_verificador":"05","tipo":"Matriz","nome_fantasia":"STAHLCAP","situacao_cadastral":"Ativa","data_situacao_cadastral":"2021-07-28","data_inicio_atividade":"2021-07-28","nome_cidade_exterior":null,"tipo_logradouro":"RUA","logradouro":"PEDROSO DE CAMARGO","numero":"141","complemento":null,"bairro":"CHACARA SANTO ANTONIO (ZONA SUL)","cep":"04717010","ddd1":"11","telefone1":"51810378","ddd2":null,"telefone2":null,"ddd_fax":"11","fax":"51810378","email":"ANTONIOREDE@TERRA.COM.BR","situacao_especial":null,"data_situacao_especial":null,"atualizado_em":"2022-07-09T03:00:00.000Z","atividade_principal":{"id":"7740300","secao":"N","divisao":"77","grupo":"77.4","classe":"77.40-3","subclasse":"7740-3/00","descricao":"Gestão de ativos intangíveis não financeiros","contribuinte":false},"pais":{"id":"1058","iso2":"BR","iso3":"BRA","nome":"Brasil","comex_id":"105"},"estado":{"id":26,"nome":"São Paulo","sigla":"SP","ibge_id":35},"cidade":{"id":3832,"nome":"São Paulo","ibge_id":3550308,"siafi_id":"7107"},"motivo_situacao_cadastral":null,"inscricoes_estaduais":[]}}
*/

Regards, saludos.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...