none
Acesso ao Web Service da SEFAZ RRS feed

  • Pergunta

  • Boa tarde.

    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:

    Esse erro eu não estou conseguindo corrigir.

    Alguém poderia me ajudar com o mesmo?

    Att.,

    Giovanni.


    quinta-feira, 25 de outubro de 2018 18:54