Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ugiov

Problemas para acessar o WebService da SEFAZ

Recommended Posts

Bom dia.

 

Estou iniciando o desenvolvimento de um software para controle e emissão de NF-e para a SEFAZ. A princípio, estou começando pelo básico, onde busco consultar se o serviço selecionado está online, ou não. De maneira simplificada:

Private Sub VerificaStatus()
  Dim servicoNFe As ServicosNFe
  Dim retornoStatus As RetornoNfeStatusServico
  Dim retornoBasico As retConsStatServ        

  servicoNFe = New ServicosNFe(NFeConfig.CfgServico)

  retornoStatus = servicoNFe.NfeStatusServico()
  retornoBasico = retornoStatus.Retorno

End Sub

 

Ele gera o XML para consulta, valida, salva uma cópia no computador, e tudo.... Mas quando vou na função NfeStatusServico:

Public Function NfeStatusServico() As RetornoNfeStatusServico
    Dim versaoServico = ServicoNFe.NfeStatusServico.VersaoServicoParaString(_cFgServico.VersaoNfeStatusServico)
    Dim ws = CriarServico(ServicoNFe.NfeStatusServico)

    If _cFgServico.VersaoNfeStatusServico <> NFe.Classes.Servicos.Tipos.VersaoServico.ve400 Then
    ws.nfeCabecMsg = New nfeCabecMsg
    ws.nfeCabecMsg.cUF = _cFgServico.cUF
    ws.nfeCabecMsg.versaoDados = versaoServico
    End If

    Dim pedStatus = New consStatServ With {
    .cUF = _cFgServico.cUF,
    .tpAmb = _cFgServico.tpAmb,
    .versao = versaoServico
    }
    Dim xmlStatus = pedStatus.ObterXmlString()
    Validador.Valida(ServicoNFe.NfeStatusServico, _cFgServico.VersaoNfeStatusServico, xmlStatus, cfgServico:=_cFgServico)
    Dim dadosStatus = New XmlDocument()
    dadosStatus.LoadXml(xmlStatus)
    SalvarArquivoXml(DateTime.Now.ParaDataHoraString() & "-ped-sta.xml", xmlStatus)
    Dim retorno As XmlNode

    Try
    retorno = ws.Execute(dadosStatus) '<<< Aqui ocorre um erro!
    Catch ex As WebException
    Throw FabricaComunicacaoException.ObterException(ServicoNFe.NfeStatusServico, ex)
    End Try

    Dim retornoXmlString = retorno.OuterXml
    Dim retConsStatServ = New retConsStatServ().CarregarDeXmlString(retornoXmlString)
    SalvarArquivoXml(DateTime.Now.ParaDataHoraString() & "-sta.xml", retornoXmlString)
    Return New RetornoNfeStatusServico(pedStatus.ObterXmlString(), retConsStatServ.ObterXmlString(), retornoXmlString, retConsStatServ)
    
End Function

 

A função ws.Execute(dadosStatus) gera um erro:

Namespace NFe.Wsdl.Status
    <WebServiceBinding(Name:="NFeStatusServico4Service", Namespace:="http://www.portalfiscal.inf.br/nfe/wsdl/NFeStatusServico4")>
    Public Class NfeStatusServico4
        Inherits SoapHttpClientProtocol
        Implements INfeServico

        Public Sub New(ByVal url As String, ByVal certificado As X509Certificate, ByVal timeOut As Integer)
            SoapVersion = SoapProtocolVersion.Soap12
            Me.Url = url
            Me.Timeout = timeOut
            ClientCertificates.Add(certificado)
        End Sub

        <Obsolete("Não utilizar na nfe 4.0")>
        Public Property nfeCabecMsg As nfeCabecMsg

        Private Property INfeServico_nfeCabecMsg As nfeCabecMsg Implements INfeServico.nfeCabecMsg
            Get
                Throw New NotImplementedException()
            End Get
            Set(value As nfeCabecMsg)
                Throw New NotImplementedException()
            End Set
        End Property

        <WebMethod(MessageName:="nfeStatusServicoNF"),
        SoapDocumentMethod("http://www.portalfiscal.inf.br/nfe/wsdl/NFeStatusServico4/nfeStatusServicoNF", Use:=SoapBindingUse.Literal, ParameterStyle:=SoapParameterStyle.Bare)>
        Private Function Execute(<XmlElement(Namespace:="http://www.portalfiscal.inf.br/nfe/wsdl/NFeStatusServico4")> nfeDadosMsg As XmlNode) As <XmlElement("nfeResultMsg", Namespace:="http://www.portalfiscal.inf.br/nfe/wsdl/NFeStatusServico4")> XmlNode Implements INfeServico.Execute
            Dim results = Me.Invoke("nfeStatusServicoNF", New Object() {nfeDadosMsg}) '<<<< Aqui nesta linha ocorre o erro
                Return CType((results(0)), XmlNode)
        End Function
    End Class
End Namespace

 

A seguinte mensagem, é então exibida:

"O método nfeStatusServicoNF do serviço da Web é inválido". <Imagem Anexo>

 

 

Esse erro eu não estou conseguindo corrigir.

Alguém poderia me ajudar com o mesmo?

1352127.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por leoneDuarte
      Olá!
       
      Atualmente me encontro desenvolvendo uma integração com sistema de notas fiscais eletronicas de BH, no entato o erro em questão está me impedindo de prosseguir, se alguem também estiver passando por algo do tipo, gostaria de saber se encontrou alguma solução:
       
      SERVIÇO: RecepcionarLoteRps
       
      CABEÇALHO:
      <?xml version="1.0" encoding="UTF-8"?><cabecalho xmlns="http://www.abrasf.org.br/nfse.xsd" versao="1.00"><versaoDados>1.00</versaoDados></cabecalho>  
      ERRO:"
      <?xml version='1.0' encoding='UTF-8'?><EnviarLoteRpsResposta xmlns="http://www.abrasf.org.br/nfse.xsd"><ListaMensagemRetorno><MensagemRetorno><Codigo>E174</Codigo><Mensagem>Arquivo enviado com erro na assinatura.</Mensagem></MensagemRetorno></ListaMensagemRetorno></EnviarLoteRpsResposta>  
       
       
      Conforme verificado no mesmo se trata de um erro na assinatura do documento, no entanto ao testarmos esse xml no site https://www.receita.fazenda.gov.br/Aplicacoes/SSL/ATBHE/assinadoc/ValidadorAssinaturas.app/valida.aspx , e removermos o name space xmlns="http://www.abrasf.org.br/nfse.xsd" a assinatura do mesmo  é aprovado com sucesso. Porem se enviarmos o xml sem o xmlns="http://www.abrasf.org.br/nfse.xsd" o sistema de BH informa que é um elemento obrigatorio, conforme esta descrito na documentação onde o mesmo é marcado como obrigatório.Devido a isso me encontro em dúvida em relação a assiantura e o modelo aceito pelo sistema de BH, e não pude esclarecer as mesmas com as informações disponíveis no site.
       
       
      Das opções atualmente disponíveis no google, ja tentei uma variedade de alterações no entanto sem sucesso, a validade da assinatura é atestada pela receita federal.Em relação a erros de estrutura, os erros davam antes desse e foram corrigidos, fazendo com que eu deduzisse que a estrutura do arquivo esta correta no entanto somente a assinatura não.
       
       
      Grato pela ateção!
       
    • Por fernandoxwiggy
      Bom dia,
      Alguém já teve que desenvolver o CIOT da empresa E-frete em C#?
       
      Estou buscando exemplos de como fazer usando o web service deles (http://dev.efrete.com.br/Services/LogonService.asmx).
      Eu acredito que preciso chamar o "login" (depois o logout) dentro desse web service, mas ele é uma interface e não estou achando um exemplo de chamar um procedimento em um web service que seja um interface.
       
      Agradeço desde já se alguém puder ajudar.
    • Por vmmh
      Alguma alma caridosa que me possa ajudar ?
      há dias que ando com este problema e não consigo resolver. Ficaria eternamente grato se alguém pudesse ajudar
       
      o codigo abaixo em localhost funciona na perfeição , mas em produção , no lado do servidor , nada... HTTP error 500.
      o pedido que estou a fazer está noutro dominio com porta 81 e no meu dominio uso certificado de segurança. Será por aí?
      de qualquer forma o wsdl está   aqui:
       
       
      $client = new SoapClient('https://dekrainspecoes.pt/acp/PROD_CustomUI_ACP_Member_Validation_WS.WSDL');
      $result = $client->QueryByNumCartao(array('N_Cartao' => "705684011673122085"));
      if (!empty($result->QueryByNumCartao_Output->Cartao_Ativo)) {
       
          echo 'The userId : '.$result->QueryByNumCartao_Output ->Pessoa_ID;
      }
       
      $JSON = json_encode($result);
    • Por juliosertori
      Fala galera tudo bem? Me da uma força, eu não sou especializado mas gosto de brincar as vezes com PHP etc, e faço uns sistemas pra meu uso mesmo.
       
      E estou precisando integrar a emissão de NFE utilizando a REST API da WEBMANIABR: https://webmaniabr.com/docs/rest-api-nfe/#emitir-nfe
       
      Só que tem um porém, eu trabalho apenas com PHP estruturado, eu já tenho os dados necessários no pedido, cliente, produtos etc para emitir a nota, mas eu não tenho a mínima ideia de como fazer um script para receber o POST com os dados, tratar na API e me retornar os dados, não sei nem onde pesquisar (além daqui rsrs) para iniciar isso.
       
      Podem me dar uma luz por favor?
       
      Muito obrigado!
    • Por JOSELUISALD
      Bom dia. Estou tentando consultar os serviços da Sefaz RS e não estou conseguindo. Sempre da rejeição. Sou novo nos webservices, e quero aprender o que for preciso para montar meu próprio emissor do zero.

             Código:
      $local_cert = 'Certificado.pem';         $passwd = '1234';         $ws = 'https://nfe-homologacao.sefazrs.rs.gov.br/ws/NfeStatusServico/NfeStatusServico4.asmx?wsdl';           $endpoint = 'https://nfe-homologacao.sefazrs.rs.gov.br/ws/NfeStatusServico/NfeStatusServico4.asmx';                                 $options = array         (             'location' => $endpoint,             'keep_alive' => true,             'trace' => true,             'local_cert' => $local_cert,             'passphrase' => $passwd,             'cache_wsdl' => WSDL_CACHE_NONE,             'soap_version' => SOAP_1_2         );             $client = new SoapClient($ws, $options);         $function = 'nfeStatusServicoNF';         $options = [];         $arguments['consStatServ'] = '';         $arguments['nfeDadosMsg'] = array('xServ' => 'STATUS', 'cUF' => '43', 'tpAmb' => '2', 'versao' => 'RS201805211008');         $result = $client->__soapCall($function, $arguments, $options);         $functions = $client->__getFunctions();         header("Content-type: text/xml");         echo $result->any; Erro:
      <retConsStatServ xmlns="http://www.portalfiscal.inf.br/nfe" versao="4.00"> <tpAmb>2</tpAmb> <verAplic>RS201805211008</verAplic> <cStat>225</cStat> <xMotivo>Rejeicao: Falha no Schema XML do lote de NFe</xMotivo> <cUF/> <dhRecbto>2019-11-29T10:18:08-03:00</dhRecbto> </retConsStatServ>  Tentei assim também:
       
      $local_cert = 'Certificado.pem'; $passwd = '1234'; $ws = 'https://nfe-homologacao.sefazrs.rs.gov.br/ws/NfeStatusServico/NfeStatusServico4.asmx?wsdl'; $endpoint = 'https://nfe-homologacao.sefazrs.rs.gov.br/ws/NfeStatusServico/NfeStatusServico4.asmx'; $options = array ( 'location' => $endpoint, 'keep_alive' => true, 'trace' => true, 'local_cert' => $local_cert, 'passphrase' => $passwd, 'cache_wsdl' => WSDL_CACHE_NONE, 'soap_version' => SOAP_1_2 ); $client = new SoapClient($ws, $options); $function = 'nfeStatusServicoNF'; $nfeDadosMsg = '<consStatServ xmlns="http://www.portalfiscal.inf.br/nfe" versao="4.00"> <xServ>STATUS</xServ> <cUF>43</cUF> <tpAmb>2</tpAmb> </consStatServ>'; $nfeCabecMsg = '<versao>4.0</versao>'; $options = []; $arguments['nfeDadosMsg'] = $nfeDadosMsg; $arguments['nfeCabecMsg'] = $nfeCabecMsg; $result = $client->__soapCall($function, $arguments, $options); $functions = $client->__getFunctions(); header("Content-type: text/xml"); echo $result->any;  
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.