Ir para conteúdo
  • Cadastre-se

dev botao

Ajuda com o Provedor GovBR


Diego A. Folieni
Ver Solução Respondido por Italo Giurizzato Junior,
  • Este tópico foi criado há 938 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Bom dia.
Estou tendo problemas para emitir NFSe para Mineiros do Tiete.
Debugando pelo programa exemplo cheguei neste trecho de código localizado na ACBrNFSeXWebServiceBase na function Executar

  try
    HttpClient.Execute;

    HttpClient.DataResp.Position := 0;
    FPRetorno := ReadStrFromStream(HttpClient.DataResp, HttpClient.DataResp.Size);

    // Alsuns provedores retorna uma string apenas com a mensagem de erro
    if Pos('Body', FPRetorno) = 0 then
      FPRetorno := GetSoapBody(FPRetorno);

    if Pos('ISO-8859-1', FPRetorno) > 0 then
    begin
      FPRetorno := RemoverDeclaracaoXML(FPRetorno);
      FPRetorno := TranslateString(FPRetorno, 0, 28591);
    end;

    if Pos('<?xml version="1.0" ?>', FPRetorno) > 0 then
      FPRetorno := RemoverDeclaracaoXML(FPRetorno);

    // Alguns provedores não retornam o XML em UTF-8
    FPRetorno := ConverteXMLtoUTF8(FPRetorno);

    // Verifica se o ResultCode é: 200 OK; 201 Created; 202 Accepted
    // https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
    if not (HttpClient.HTTPResultCode in [200..202]) then
    begin
      aRetorno := TACBrXmlDocument.Create;
      if FPRetorno <> '' then
      begin
        aRetorno.LoadFromXml(FPRetorno);
        try
          ChecarRetorno(aRetorno);
        finally
          aRetorno.Free;
        end;
      end
      else
        raise EACBrDFeException.Create('WebService retornou um XML vazio.');
    end;
  except
    on E:Exception do
    begin
      raise EACBrDFeException.CreateDef(Format(ACBrStr(cACBrDFeSSLEnviarException),
                                     [HttpClient.InternalErrorCode, HttpClient.HTTPResultCode, HttpClient.URL] )
                                     + sLineBreak + HttpClient.LastErrorDesc + sLineBreak + Result);
    end;
  end;
finally
  HTTPResultCode := HttpClient.HTTPResultCode;
  InternalErrorCode := HttpClient.InternalErrorCode;
end;

Nele para a cidade de Mineiros do Tiete, depois da chamada do HttpClient.Execute a o HttpClient fica com os seguintes valores:
**HttpClient.URL                        = http://54.207.200.34/nfsewsteste/services.svc;
**HttpClient.HTTPResultCode  = 404;
** HttpClient.HeaderResp.Text = HTTP/1.1 404 Not Found Date: Wed, 22 Sep 2021 12:42:11 GMT Content-Length: 0 Server: Microsoft-IIS/10.0 X-Powered-By: ASP.NET;
** HttpClient.DataResp.Size     = 0;

Acredito que isso quer dizer que a URL para qual estou fazendo o envio está incorreta.

Testei então, pelo programa exemplo, as outras cidades que constam no ACBrNFSeXServicos.ini com o provedor GovBR e obtive os seguintes resultados:

* Cidade de São Gabriel deu erro de Timeout de Requisição(12002 - TimeOut de Requisição) e não salvou soap de resposta. 
** HttpClient.URL = http://191.36.145.163/nfsewsteste/services.svc
** HttpClient.HTTPResultCode = 0 ;
** HttpClient.HeaderResp.Text = "";
** HttpClient.DataResp.Size     =  0 ;

* Cidade de Bocaiuva do Sul
** HttpClient.URL = http://18.230.172.116/nfsewsteste/services.svc;
** HttpClient.HTTPResultCode = 404;
** HttpClient.HeaderResp.Text = HTTP/1.1 404 Not Found Date: Wed, 22 Sep 2021 12:38:54 GMT Content-Length: 0 Server: Microsoft-IIS/10.0 X-Powered-By: ASP.NET;
** HttpClient.DataResp.Size     =  0;

Alguém emite NFS para essas cidades ? 
Anexo também os arquivos gerados pelo programa exemplo para as cidades.
GovBR - Mineiros Tiete.zip
GovBR - Bocaiuva do Sul.zip

Editado por Diego A. Folieni
Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Diego,

Já inclui na minha lista de tarefas para analisar.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Em 22/09/2021 at 10:14, Italo Giurizzato Junior disse:

Bom dia Diego,

Já inclui na minha lista de tarefas para analisar.

Não sei dizer quanto aos outros, mas descobri que a de Mineiros do Tiete está incorreta mesmo.
A correta para Produção: http://54.207.200.34/nfse.portal.integracao/services.svc
Infelizmente não consegui a de homologação ainda.

Editado por Diego A. Folieni
Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

Boa tarde Diego,

Favor atualizar os fontes e faça novos testes.

Note que agora temos uma nova pasta com os schemas dos provedores: ...\Exemplos\ACBrDFe\Schemas\NFSe

Dentro da pasta NFSe temos uma pasta para cada Provedor.

O componente tem agora uma nova propriedade de configuração: Configuracoes.Geral.MontarPathSchema := True/False

Se o valor dela for True e o PathSchemas apontar para a pasta: ...\Exemplos\ACBrDFe\Schemas\NFSe o componente vai encontrar os schemas utilizado pelo provedor de forma automática.

Outra correção feita no componente é que se o provedor não tiver uma URL de homologação definida vai ser apresentada uma mensagem de erro e o envio vai ser abortado.

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

8 minutos atrás, Italo Giurizzato Junior disse:

Boa tarde Diego,

Favor atualizar os fontes e faça novos testes.

Note que agora temos uma nova pasta com os schemas dos provedores: ...\Exemplos\ACBrDFe\Schemas\NFSe

Dentro da pasta NFSe temos uma pasta para cada Provedor.

O componente tem agora uma nova propriedade de configuração: Configuracoes.Geral.MontarPathSchema := True/False

Se o valor dela for True e o PathSchemas apontar para a pasta: ...\Exemplos\ACBrDFe\Schemas\NFSe o componente vai encontrar os schemas utilizado pelo provedor de forma automática.

Outra correção feita no componente é que se o provedor não tiver uma URL de homologação definida vai ser apresentada uma mensagem de erro e o envio vai ser abortado.

Entendido, muito obrigado!

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 938 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

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
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...