Jump to content
Fivewin Brasil

API consulta CNPJ FREE


Luiz Fernando

Recommended Posts

  • 3 weeks later...

Amiguinhos,

Basta usar uma função hb_hash() ou hb_json() para decodificar o resultado:

Classe bem didática e passível de fatoração por vocês. Tõ meio preguiçoso.

Citar

/*
 * CNPJ WS Class by Rochinha
 *
 * API https://www.cnpj.ws/docs/api-publica/consultando-cnpj
 * Fonte de Incentivo http://fivewin.com.br/index.php?/topic/31401-api-consulta-cnpj-free/
 *
 */
#include "fivewin.ch"
#include "hbclass.ch"

PROCEDURE Main

   LOCAL cRetorno
   LOCAL CNPJws := wsCNPJClass():New()

   PUBLIC cCNPJws        := CNPJws:CNPJUrl
   PUBLIC cCNPJUsuario   := CNPJws:CNPJUsuario
   PUBLIC cCNPJSenha     := CNPJws:CNPJSenha
   PUBLIC cCNPJApiKey    := CNPJws:CNPJApiKey

   cConsultarCNPJ := CNPJws:ConsultarCNPJ( "18.066.611/0001-06" )
   ? "Consultar CNPJ",, cConsultarCNPJ

   RETURN

CREATE CLASS wsCNPJClass

   CLASSVAR cToken        INIT ""
   CLASSVAR cAppKey       INIT ""
   CLASSVAR cMSG          INIT ""
   CLASSVAR CNPJUrl       INIT "publica.cnpj.ws"
   CLASSVAR CNPJEndPoint  INIT "cnpj"
   CLASSVAR CNPJUsuario   INIT "irochinha@hotmail.com.br"
   CLASSVAR CNPJSenha     INIT "Iasmin@2011"
   CLASSVAR CNPJApiKey    INIT ""

   METHOD ConsultarCNPJ()

   METHOD WS( cToken, cPostGet, cUrl, cMsg )

   ENDCLASS

METHOD ConsultarCNPJ( cParam ) CLASS wsCNPJClass
   LOCAL cUrl := "https://" + self:CNPJUrl + "/" + self:CNPJEndPoint + "/" + charRem( "./-", cParam )
   RETURN ::WS( self:CNPJApiKey, "GET", cUrl, "" )

METHOD WS( cToken, cPostGet, cUrl, cMsg ) CLASS wsCNPJClass
   LOCAL oServer, cRetorno
   default cPostGet := "POST"
   default cMsg     := ""
   oServer := XMLHttpRequest()
   oServer:Open( cPostGet, cUrl, .F. )
   IF cToken == Nil
   ELSE
      oServer:SetRequestHeader( "Content-Type", "application/json; charset=UTF-8" )
      oServer:SetRequestHeader( "appKey", self:CNPJApiKey )
      oServer:SetRequestHeader( "Authorization", "Bearer " + self:CNPJApiKey )
   ENDIF
   IF cPostGet = "POST"
      oServer:Send( cMsg )
   ELSE
      oServer:Send()
   ENDIF
   cRetorno := oServer:responseText
   RETURN cRetorno

/*
 * Wrappler VB Functions by Rochinha
 */
FUNCTION win_OleCreateObject( _ole_ )
   RETURN TOleAuto():New( _ole_ )

FUNCTION XMLHttpRequest()
   return oXMLHttpRequest      := TOleAuto():New( "Microsoft.XMLHTTP" )

FUNCTION DOMDocument()
   return oDOMDocument         := TOLEAUTO():New( "Microsoft.XMLDOM" )

FUNCTION Msxml2XMLHTTP()
   return oMsxml2XMLHTTP       := TOLEAUTO():New( "Msxml2.XMLHTTP" )

FUNCTION MSXML2DOMDocument()
   return oMSXML2DOMDocument   := TOLEAUTO():New( "MSXML2.DOMDocument" )

FUNCTION MicrosoftXMLDOM()
   return oMicrosoftXMLDOM     := TOLEAUTO():New( "Microsoft.XMLDOM" )

FUNCTION MicrosoftXMLHTTP()
   return oMicrosoftXMLHTTP    := TOleAuto():New( "Microsoft.XMLHTTP" )

FUNCTION MSXML2ServerXMLHTTP()
   return oMSXML2ServerXMLHTTP := TOleAuto():New( "MSXML2.ServerXMLHTTP" )

FUNCTION ServerXMLHTTP()
   return oServerXMLHTTP       := TOleAuto():New( "MSXML2.ServerXMLHTTP" )

FUNCTION CAPICOMStore()
   return oCAPICOMStore        := TOleAuto():New( "CAPICOM.Store" )

FUNCTION CAPICOMSignedData()
   return oCAPICOMSignedData   := TOleAuto():New( "CAPICOM.SignedData.1" )

FUNCTION CAPICOMUtilities()
   return oCAPICOMUtilities    := TOleAuto():New( "CAPICOM.Utilities" )

FUNCTION CAPICOMHashedData()
   return oCAPICOMHashedData   := TOleAuto():New( "CAPICOM.HashedData.1" )

FUNCTION CAPICOMSigner()
   return oCAPICOMSigner       := TOleAuto():New( "CAPICOM.Signer.2" ) // versao 2

FUNCTION CAPICOMAttribute()
   return oCAPICOMAttribute    := TOleAuto():New( "CAPICOM.Attribute" )

FUNCTION MSXML2MXDigitalSignature()
   return MSXML2MXDigitalSignature := TOleAuto():New( "MSXML2.MXDigitalSignature.5.0" )

 

Link to comment
Share on other sites

Amiguinhos,

Versão 2:

Citar

/*
 * CNPJ WS Class by Rochinha
 *
 * API https://www.cnpj.ws/docs/api-publica/consultando-cnpj
 * Fonte de Incentivo http://fivewin.com.br/index.php?/topic/31401-api-consulta-cnpj-free/
 *
 */
#include "fivewin.ch"
#include "hbclass.ch"

PROCEDURE Main

   LOCAL cRetorno
   LOCAL CNPJws := wsCNPJClass():New()

   PUBLIC cCNPJws        := CNPJws:CNPJUrl
   PUBLIC cCNPJUsuario   := CNPJws:CNPJUsuario
   PUBLIC cCNPJSenha     := CNPJws:CNPJSenha
   PUBLIC cCNPJApiKey    := CNPJws:CNPJApiKey

   cConsultarCNPJ := CNPJws:ConsultarCNPJ( "18.066.611/0001-06" )
   ? "Consultar CNPJ",, cConsultarCNPJ

   cConsultarCNPJ := CNPJws:ConsultarSUFRAMA( "61940292006682", "210140267" )
   ? "Consultar SUFRAMA",, cConsultarCNPJ

   RETURN

CREATE CLASS wsCNPJClass

   CLASSVAR cToken        INIT ""
   CLASSVAR cAppKey       INIT ""
   CLASSVAR cMSG          INIT ""
   CLASSVAR CNPJUrl       INIT "publica.cnpj.ws"
   CLASSVAR CNPJEndPoint  INIT { "cnpj", "suframa" }
   CLASSVAR CNPJUsuario   INIT "irochinha@hotmail.com.br"
   CLASSVAR CNPJSenha     INIT "Iasmin@2011"
   CLASSVAR CNPJApiKey    INIT ""

   METHOD ConsultarCNPJ()
   METHOD ConsultarSUFRAMA()

   METHOD WS( cToken, cPostGet, cUrl, cMsg )

   ENDCLASS

METHOD ConsultarCNPJ( cCNPJ ) CLASS wsCNPJClass
   LOCAL cUrl := "https://" + self:CNPJUrl + "/" + self:CNPJEndPoint[1] + "/" + charRem( "./-", cCNPJ )
   RETURN ::WS( self:CNPJApiKey, "GET", cUrl, "" )

METHOD ConsultarSUFRAMA( cCNPJ, cInscricao ) CLASS wsCNPJClass
   LOCAL cUrl := "https://" + self:CNPJUrl + "/" + self:CNPJEndPoint[2]
   cMSG :=        [{]
   cMSG := cMSG + ["cnpj":"] + charRem( "./-", cCNPJ ) + [",]
   cMSG := cMSG + ["inscricao":"] + charRem( "./-", cInscricao ) + ["]
   cMSG := cMSG + [}]
   RETURN ::WS( self:CNPJApiKey, "POST", cUrl, cMSG )

METHOD WS( cToken, cPostGet, cUrl, cMsg ) CLASS wsCNPJClass
   LOCAL oServer, cRetorno
   default cPostGet := "POST"
   default cMsg     := ""
   oServer := XMLHttpRequest()
   oServer:Open( cPostGet, cUrl, .F. )
   IF cToken == Nil
   ELSE
      oServer:SetRequestHeader( "Content-Type", "application/json; charset=UTF-8" )
      oServer:SetRequestHeader( "appKey", self:CNPJApiKey )
      oServer:SetRequestHeader( "Authorization", "Bearer " + self:CNPJApiKey )
   ENDIF
   IF cPostGet = "POST"
      oServer:Send( cMsg )
   ELSE
      oServer:Send()
   ENDIF
   cRetorno := oServer:responseText
   RETURN cRetorno

 

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...