// C:\FWH..\SAMPLES\RECEITA2.PRG
#include "FiveWin.ch"
FUNCTION Main()
LOCAL cOnde, cCnpj, cNome, cEndereco, cNro, cComplemento, cBairro, cCidade, ;
cEstado, cCep, cTelefone
cOnde := SPACE(10)
cCnpj := "42905527000105" // example.
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
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
#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
oServerWS:Open( 'GET', cUrl, .F. )
oServerWS:setRequestHeader( "Content-Type", "text/xml; charset=utf-8" )
oServerWS:Send()
IF oServerWS:STATUS != 200
MsgStop( AllTrim( Str( oServerWS:Status ) ) + " - " + oServerWS:StatusText, "Erro" )
RETURN NIL
ENDIF
WHILE oServerWS:readyState != 4
SYSREFRESH()
// oServerWS:WaitForResponse( 1000 ) // or:
SysWait( .5 )
END
x1 := hb_jsonDecode( oServerWS:responseText, @aArray )
IF aArray == nil
MsgStop( "Erro ao retornar os dados. Tente novamente." )
RETURN NIL
ENDIF
IF aArray[ 'status' ] != 'OK'
MsgStop( aArray[ 'message' ], "Erro" )
RETURN NIL
ENDIF
MsgInfo( "NOME: " + AllTrim( aArray[ 'nome' ] ) + CRLF + ;
"FANTASIA: " + AllTrim( aArray[ 'fantasia' ] ) + CRLF + ;
"ENDEREÇO: " + AllTrim( aArray[ 'logradouro' ] ) + ", " + AllTrim( aArray[ 'numero' ] ) + " " + AllTrim( aArray[ 'complemento' ] ) + CRLF + ;
"BAIRRO: " + AllTrim( aArray[ 'bairro' ] ) + " CEP: " + AllTrim( aArray[ 'cep' ] ) + CRLF + ;
"CIDADE: " + AllTrim( aArray[ 'municipio' ] ) + "-" + AllTrim( aArray[ 'uf' ] ) + CRLF + ;
"TELEFONE: " + AllTrim( aArray[ 'telefone' ] ) + CRLF + CRLF + ;
"NATUREZA JURÍDICA: " + AllTrim( aArray[ 'natureza_juridica' ] ) + CRLF + ;
"TIPO: " + AllTrim( aArray[ 'tipo' ] ) + CRLF + ;
"SITUAÇÃO: " + AllTrim( aArray[ 'situacao' ] ) + CRLF + ;
"DATA SITUAÇÃO: " + AllTrim( aArray[ 'data_situacao' ] ) + CRLF + ;
"ULTIMA ATUALIZAÇÃO: " + AllTrim( aArray[ 'ultima_atualizacao' ] ), "CNPJ CONSULTA" )
cNome := AllTrim( aArray[ 'nome' ] )
cEndereco := AllTrim( aArray[ 'logradouro' ] )
cNro := AllTrim( aArray[ 'numero' ] )
cNro := StrTran( cNro, ".", "", 1, 10 )
cNro := Val( cNro )
cComplemento := AllTrim( aArray[ 'complemento' ] )
cBairro := AllTrim( aArray[ 'bairro' ] )
cCep := AllTrim( aArray[ 'cep' ] )
cCidade := AllTrim( aArray[ 'municipio' ] )
cEstado := AllTrim( aArray[ 'uf' ] )
cTelefone := AllTrim( aArray[ 'telefone' ] )
IF cOnde = "T"
cEndereco := cEndereco + " " + AllTrim( Str( cNro, 10 ) ) + " " + AllTrim( cComplemento )
ENDIF
cNome := cNome + spac( 100 - Len( cNome ) )
cEndereco := cEndereco + spac( 100 - Len( cEndereco ) )
cComplemento := cComplemento + spac( 100 - Len( cComplemento ) )
cBairro := cBairro + spac( 100 - Len( cBairro ) )
cCep := cCep + spac( 10 - Len( cCep ) )
cCep := StrTran( cCep, ".", "", 1, 10 )
cCidade := cCidade + spac( 50 - Len( cCidade ) )
cTelefone := cTelefone + spac( 20 - Len( cTelefone ) )
RETURN NIL