Estou tentando implementar a MDFe em meu sistema.
Estou usando o pacote da classe HBNFe criada pelos nossos colegas aqui do fórum, mais precisamente com a grande ajuda do Leonardo Sygecom.
Já conferi URL´s, tudo alinhado segundo a SEFAZ-RS.
Atualizados xsd´s.
Cadeias de certificados atualizadas conforme SEFAZ-RS.
Segue exemplo do xml criado para consulta, que comparei com o criado pelo ACBr (que funciona) e estão idênticos.
Certificado A1 testado e funcionando, pois com ACBr funciona, e consultas de status da NFe também retornam OK !
<?xml version="1.0" encoding="UTF-8"?><soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"><soap12:Header><mdfeCabecMsg xmlns="http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeStatusServico"><cUF>35</cUF><versaoDados>3.00</versaoDados></mdfeCabecMsg></soap12:Header><soap12:Body><mdfeDadosMsg xmlns="http://www.portalfiscal.inf.br/mdfe/wsdl/MDFeStatusServico"><consStatServMDFe xmlns="http://www.portalfiscal.inf.br/mdfe" versao="3.00"><tpAmb>2</tpAmb><xServ>STATUS</xServ></consStatServMDFe></mdfeDadosMsg></soap12:Body></soap12:Envelope>
Trecho do código que faz a macumba toda.
TRY
oServerWS:= xhb_CreateObject( _MSXML2_ServerXMLHTTP )
oServerWS:setOption( 3, 'CURRENT_USER\MY\'+cCERT )
oServerWS:open('POST', cUrlWS, .F.)
oServerWS:setRequestHeader('SOAPAction', cSoap )
oServerWS:setRequestHeader('Content-Type','application/soap+xml; charset=utf-8')
CATCH
aRETORNO['MSG']:='Não foi possÃvel inicializar a conexão do webservice'
RETURN(aRETORNO)
END
IF oServerWS=NIL
aRETORNO['MSG']:='Não foi possÃvel inicializar o objeto de conexão do webservice'
RETURN(aRETORNO)
ENDIF
TRY
oDOMDoc:= xhb_CreateObject( _MSXML2_DOMDocument )
oDOMDoc:async = .F.
oDOMDoc:validateOnParse = .T.
oDOMDoc:resolveExternals := .F.
oDOMDoc:preserveWhiteSpace = .T.
oDOMDoc:LoadXML(cXML)
CATCH
aRETORNO['MSG']:='Não foi possÃvel carregar o documento XML'
RETURN(aRETORNO)
END
IF oDOMDoc:parseError:errorCode <> 0
aRETORNO['MSG']:='Não foi possÃvel carregar o documento pois ele não corresponde ao seu Schema'+HB_OsNewLine()+;
' Linha: '+STR(oDOMDoc:parseError:line) +HB_OsNewLine()+;
' Caractere na linha: '+STR(oDOMDoc:parseError:linepos) +HB_OsNewLine()+;
' Causa do erro: '+oDOMDoc:parseError:reason +HB_OsNewLine()+;
' Code: '+STR(oDOMDoc:parseError:errorCode)
RETURN(aRETORNO)
ENDIF
TRY
oServerWS:send(oDOMDoc:xml)
CATCH e
aRETORNO['MSG']:='Falha: Não foi possÃvel conectar-se ao servidor do SEFAZ, Servidor inativou ou inoperante.'+HB_OsNewLine()+;
'Error: '+Transform(e:GenCode,nil) +';'+HB_OsNewLine()+;
'SubC: '+Transform(e:SubCode,nil) +';'+HB_OsNewLine()+;
'OSCode: '+Transform(e:OsCode,nil) +';'+HB_OsNewLine()+;
'SubSystem: '+Transform(e:SubSystem,nil) +';'+HB_OsNewLine()+;
'Mensagem: '+e:Description
RETURN(aRETORNO)
END
DO WHILE oServerWS:readyState <> 4
millisec(500)
ENDDO
aRETORNO['MSG']:='Comunicação com o webservice finalizada com sucesso.'
aRETORNO['STATUS']:=.T.
aRETORNO['XML']:= oServerWS:responseText
RETURN(aRETORNO)
Debuguei esse trecho, e ele vai até o fim, e me retorna:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>404 - File or directory not found.</title>
<style type="text/css">
<!--
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
fieldset{padding:0 15px 10px 15px;}
h1{font-size:2.4em;margin:0;color:#FFF;}
h2{font-size:1.7em;margin:0;color:#CC0000;}
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
background-color:#555555;}
#content{margin:0 0 0 2%;position:relative;}
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
-->
</style>
</head>
<body>
<div id="header"><h1>Server Error</h1></div>
<div id="content">
<div class="content-container"><fieldset>
<h2>404 - File or directory not found.</h2>
<h3>The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.</h3>
</fieldset></div>
</div>
</body>
</html>
Sinceramente, não sei mais para que lado correr !
Conto com a ajuda dos senhores.
Obrigado !