Ir para conteúdo
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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por avelar.avelar
      Boa tarde turma,
       
      Estou com um problema grave aqui, o meu sistema esta gerando boletos e o webservice esta pegando muitos boletos e não esta registrando, da erro e nao, passa, e outros boletos passa normal, ele consegue registrar, já verifiquei cadastro dos clientes e esta tudo normal, todos os campos preenchidos corretamente, alguem poderias me ajudar !!!!
       
       
      Avelar
    • Por RafaelKleimpaul
      Então, estou batendo cabeça com o seguinte desafio: Eu preciso pegar uma NF que está em um web service por sua chave dela e exporta-la no formato XML para uma pasta na máquina. Tenho o seguinte método: getNFe(TOKEN_DE_ACESSO, CHAVE_NFE).
       
      Como posso fazer para pelo token e a chave dessa NF eu conseguir extrai-la e armazena-la?
       
      Obrigado!
    • Por DZ22
      Estou aprendendo WebService no meu curso de programação, e criamos agora um arquivo PHP com umas 4 variáveis q vão armazenar os dados de conexão com o Banco de Dados q é o MySQL ($HostName, $HostUser, $HostPass, $DatabaseName). Mas eu preciso testar as informações que eu vou botar nessas variáveis pra ver se estão certas. Como eu as testo?
    • Por markhosbh
      Salve galera,
      Estou iniciando no mundo WebService e já me deparo com o seguinte problema.
      O Servidor da TOTVS via rest, me retorna exatamente da seguinte forma:
         
      $resposta = enviaConteudoParaAPI($cabecalho, $conteudo, $url, $tpRequisicao);     print_r($resposta); Resultado:
          {"CAMPOS":"[\"\"A1_COD\",\"A1_NOME\",\"TIPO\"]","DADOS":"[[\"00932221\",\"PEDRO GONCALVES\",\"TITULAR\"][\"00164577\",\"JORGE ARAGAO\",\"TITULAR\"]]"}
          
          //TRATADO
         
      $array = json_decode($resposta, true);         $campos = $array['CAMPOS'];         $dados = $array['DADOS'];         print_r($array); Resultado :
         
      Array ( [CAMPOS] => [""A1_COD","A1_NOME","TIPO"] [DADOS] => [["00932221","PEDRO GONCALVES","TITULAR"]["00164577","JORGE ARAGAO","TITULAR"]] ) 
      Acontece que preciso atribuir cada conteúdo a uma variável, ou seja, preciso trabalhar com cada valor de forma distinta:
             
      $A1_COD = ['$A1_COD'];         $A1_NOME = ['A1_NOME'];         $TIPO = ['TIPO'];     echo "Codigo: $A1_COD, Nome: $A1_NOME, Tipo: $TIPO"; Onde eu preciso do seguinte resultado:
          Codigo: 00932221 , Nome: PEDRO GONCALVES, Tipo: TITULAR     Codigo: 00164577 , Nome: JORGE ARAGAO,       Tipo: TITULAR    
      Em outras palavras, preciso transformar este array:
         
       Array ([["00932221","PEDRO GONÇALVES","TITULAR"]["00164577","JORGE ARAGAO","TITULAR"]]) Neste array:
          Array ( [A1_COD] => 00932221 [A1_NOME] => PEDRO GONÇALVES [TIPO] => TITULAR )      Array ( [A1_COD] => 00164577 [A1_NOME] => JORGE ARAGAO [TIPO] => TITULAR )
       
    • Por huzzer
      Olá, bom dia, tenho uma dúvida, estou consumindo um webservice, e tratando o retorno, porém possui algumas partes que são arrays, alguem poderia me auxiliar, ou links para estudos?
      Exemplo, quando o array está especificado, eu o defino $data_nascimento = $result["pessoa"]["pessoa-fisica"]["!data-nascimento"];  e após utilizo echo $data_nascimento; para imprimir, porém, quando essa estrutura está em array, não estou conseguindo gerar esse array no php, para exibi-lo, como por exemplo listado no consumo: 
      [telefone-vinculado] => [ultimo-telefone] => Array ( [detalhe-ultimo] => Array ( [0] => Array ( [telefone] => Array ( [!numero-ddd] => 11 [!numero] => 35496800 ) [!data] => 2008-11-24T00:00:00-02:00 [!data-ultima] => 2018-07-30T00:00:00-03:00 [!quantidade] => 680 ) [1] => Array ( [telefone] => Array ( [!numero-ddd] => 12 [!numero] => 988783324 ) [!data] => 2017-12-07T00:00:00-02:00 [!data-ultima] => 2017-12-07T00:00:00-02:00 [!quantidade] => 1 ) [2] => Array ( [telefone] => Array ( [!numero-ddd] => 31 [!numero] => 999997777 ) [!data] => 2017-07-07T00:00:00-03:00 [!data-ultima] => 2017-07-10T00:00:00-03:00 [!quantidade] => 5 ) [3] => Array ( [telefone] => Array ( [!numero-ddd] => 31 [!numero] => 999977777 ) [!data] => 2017-07-10T00:00:00-03:00 [!data-ultima] => 2017-07-10T00:00:00-03:00 [!quantidade] => 1 ) [4] => Array ( [telefone] => Array ( [!numero-ddd] => 47 [!numero] => 34898250 ) [!data] => 2017-06-20T00:00:00-03:00 [!data-ultima] => 2017-06-20T00:00:00-03:00 [!quantidade] => 1 ) ) )
×

Informação importante

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