Já teve mais alterações, estou vendo que o seu método está meio antigo, não sei se pode ter escapado alguma coisa.
METHOD NFeStatusServico( cUF, cCertificado, cAmbiente ) CLASS SefazClass
hb_Default( @::cProjeto, WS_PROJETO_NFE )
hb_Default( @::cVersao, "3.10" )
IF ::cVersao == "3.10"
::aSoapActionList := { ;
{ "**", "3.10", "nfeStatusServicoNF2", "http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico2" }, ;
{ "BA", "3.10", "nfeStatusServicoNF", "http://www.portalfiscal.inf.br/nfe/wsdl/NfeStatusServico" } }
ELSE
::aSoapActionList := { ;
{ "**", "4.00", "nfeStatusServicoNF", "http://www.portalfiscal.inf.br/nfe/wsdl/NFeStatusServico4" } }
ENDIF
::Setup( cUF, cCertificado, cAmbiente, WS_NFE_STATUSSERVICO )
::cXmlEnvio := [<consStatServ versao="] + ::cVersao + [" ] + WS_XMLNS_NFE + [>]
::cXmlEnvio += XmlTag( "tpAmb", ::cAmbiente )
::cXmlEnvio += XmlTag( "cUF", ::UFCodigo( ::cUF ) )
::cXmlEnvio += XmlTag( "xServ", "STATUS" )
::cXmlEnvio += [</consStatServ>]
::XmlSoapPost()
RETURN ::cXmlRetorno
Numa das últimas alterações, movi a lista de SoapAction pra dentro do método.
O teste que usei, está pronto pra uso:
Só não esqueça de selecionar certificado primeiro.
Depois pode escolher versão e ambiente.