#include "hbclass.ch"
#ifndef XML_UTF8
#define XML_UTF8 ''
#endif
FUNCTION Main()
LOCAL cChave := "1.2.201709.0000000000000226099"
LOCAL oESocial := ESocialClass():New()
oESocial:cCertificado := capicomescolhecertificado()
oESocial:ConsultaRetornoLote( cChave )
? oEsocial:cXmlRetorno
RETURN( NIL )
CREATE CLASS ESocialClass
VAR cCertificado INIT ""
VAR cUrl INIT ""
VAR cSoapAction INIT ""
VAR cXmlDocumento INIT ""
VAR cXmlEnvelope INIT ""
VAR cXmlRetorno INIT ""
METHOD ConsultaRetornoLote( cChave, cCertificado )
METHOD MicrosoftXmlSoapPost()
ENDCLASS
METHOD ConsultaRetornoLote( cChave, cCertificado ) CLASS ESocialClass
IF cCertificado != NIL
::cCertificado := cCertificado
ENDIF
::cUrl := "https://webservices.producaorestrita.esocial.gov.br/servicos/empregador/consultarloteeventos/WsConsultarLoteEventos.svc"
::cSOAPAction := "http://www.esocial.gov.br/servicos/empregador/lote/eventos/envio/consulta/retornoProcessamento/v1_1_0/ServicoConsultarLoteEventos/ConsultarLoteEventos"
::cXmlDocumento := ;
'' + ;
'' + ;
'' + cChave + '' + ;
'' + ;
''
::cXmlEnvelope := XML_UTF8 + ;
'' + ;
'' + ;
'' + ;
'' + ;
'' + ;
::cXmlDocumento + ;
'' + ;
'' + ;
'' + ;
''
hb_MemoWrit( "consulta.xml", ::cXmlEnvelope )
::MicrosoftXmlSoapPost()
RETURN ::cXmlRetorno
METHOD MicrosoftXmlSoapPost() CLASS ESocialClass
LOCAL oComunicacao
oComunicacao = win_oleCreateObject( "MSXML2.ServerXMLHTTP" )
oComunicacao:setOption( 3, "CURRENT_USER\MY\" + ::cCertificado )
oComunicacao:open( "POST", ::cUrl, .F. )
oComunicacao:SetRequestHeader( "SOAPAction", ::cSOAPAction )
oComunicacao:SetRequestHeader( "Content-Type", "text/xml; charset=utf-8" )
oComunicacao:send( ::cXmlEnvelope )
DO WHILE oComunicacao:readyState <> 4
Inkey( 0.5 )
ENDDO
::cXmlRetorno := oComunicacao:responseText
RETURN NIL
#ifdef __XHARBOUR__
FUNCTION win_oleCreateObject( ... )
RETURN xhb_CreateObject( ... )
#endif