Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Ola, estou tentando transmitir uma NFSe para a prefeitura de Castro-PR e não estou conseguindo, estou utilizando o componente ACBrNFSeX.

Notei que a prefeitura passou por uma atualização no provedor e acredito que pode ter trocado a URL de envio deles no dia 09/08/2022.

Quando tento transmitir uma NFSe recebo o seguinte retorno:

image.thumb.png.f0c141bd4b5699ab11478d8b4422292e.png

Conversei com o pessoal do suporte da IPM (Provedor de Castro-PR) me passaram que devo encaminhar para a URL: https://ws-castro.atende.net:7443/?pg=rest&service=WNERestServiceNFSe/

Porem ao tentar enviar para esta URL recebo o seguinte retorno: 

image.png.2e8cb1bcc6d0e2fa7128375c3ea01c6b.png

Alguém consegue me ajudar?

Postado (editado)

italo, o pessoal da prefeitura me retornou isto:

image.png.deeccd7e16be191f903863452def8b8e.png

Caso isso te ajude.

Foi me passado tambem as seguintes alterações feitas: 

 
2. Forma de funcionamento
 
O sistema de gestão utilizado pelo emissor da NFS-e deverá, no momento da finalização da digitação dos dados necessários, efetuar à geração da NFS-e, transmitir para as URLs determinadas, os dados de login, senha, código da cidade (Receita Federal - TOM) e o arquivo no “Layout do Arquivo XML” descrito nesta nota, por método POST.
 
 
3.4 Parâmetros
 
Os parâmetros POST esperados pelo Web Service, na requisição HTTP, com Content-Type: multipart/form-data, são: Campo Tipo Descrição Authorization Text base64_encode(username:password) • Definição de username: CPF/CNPJ do emissor da NFS-e; • Definição de password: Senha de acesso ao sistema.
 
As informações de username e password devem ser passadas junto ao cabeçalho da requisição por meio do Authorization, sendo username:password em formato base64. Exemplo: base64_encode('admin:admin'). • Authorization: Basic YWRtaW46YWRtaW4=
 
O envio do arquivo XML deve ocorrer por meio do método POST, com o corpo de envio codificado para o tipo multipart/form-data. • Content-Type: multipart/form-data
Editado por guilhermeVaz06
Postado

Italo, desculpe estava somente adicionando mais informações que a prefeitura havia me passado na mensagem anterior.

Eu alterei diretamente no arquivo fonte IPM.Provider somente para testar se era isto mesmo, conforme o print em anexo.

Fiz isso somente para verificar se o problema era este, não mantive essa alteração so para deixar claro.

 

Sem título.png

Postado

Bom dia Italo, fiz o passo a passo que você me passou e consegui fazer o envio, recebi somente outro retorno da prefeitura:

image.png.89ccfda969e6f4df7a01f671ef5470e4.pngACBrNFSeXServicos.ini

Vou verificar com eles referente a esses retorno.

Sobre a URL adicionei desta maneira: 

image.png.e90a30a7366ce930e035295f4b6a55d0.png

Mandei em anexo a alteração caso precise. 

Assim que a prefeitura retornar referente aos erros eu aviso aqui 

Postado

Italo, estava verificando aqui e não esta puxando o provedor que eu informei no arquivo ACBrNFSeXServicos.ini, pois não foi esse que eu informei la, e fiz todo o passo a passo que você havia me passado.

Esta correto isso e estou olhando o lugar errado?

image.png.1539756603563638e3b0e462a3b68280.png

image.png.fce904e68a3f646626b8c14d372da322.png

Postado

Italo, fiz uma alteração manual para testar igual havia feito anteriormente para enviar para o link correto, e estou recebendo este retorno, caso isso ajude você.

O pessoal da prefeitura acabou me passando outro link: https://ws-castro.atende.net:7443/atende.php?pg=rest&service=WNERestServiceNFSe&cidade=padrao

 

image.thumb.png.4a47d656298be8396fcfb92bee12ac7d.png

Fiz esta alteração para enviar para o link certo (sei que não é correto, fiz somente para testar):

image.thumb.png.c1709573d90553108661b19ddb8e3643.png

Postado

Italo, eu consegui me comunicar com o provedor depois que adicionei isso:

Emitente.WSChaveAutoriz := 'Basic ' + EncodeBase64(AnsiString(FDMNFSEACBR.QOrigemServicoLOGIN_PREFEITURA.Value+':'+FDMNFSEACBR.QOrigemServicoSENHA_PREFEITURA.Value));

nas configurações gerais e a prefeitura me retornou a seguinte mensagem:

image.thumb.png.e0a269978abcb87c197e22f2e3771904.png

"Arquivo XML da nota fiscal de serviço eletronica não enviado".

Conversando com o pessoal da IPM me passaram que temos que andar o XML da Nota como arquivo, dentro da Requisição.

Como se fosse um anexo.

Como devemos prosseguir com isso?

Postado (editado)

Olá, estou com o mesmo problema em Castro, colocando o Basic no WSChaveAutoriz ele passa o erro do acesso, mas fica como se não tivesse xml no envio.

<?xml version="1.0" encoding="ISO-8859-1"?>
<retorno>
    <mensagem>
        <codigo>9999 - Arquivo XML da Nota Fiscal de Serviço Eletrônica não enviado!</codigo>
    </mensagem>
</retorno>

 

Italo, se não for ruim, dava para por o FPRetorno no Exception deste evento? É que sempre dá problema em algumas prefeitura, eu vou debugando até chegar nesta linha. (anexei o pas)

procedure TACBrNFSeXWebservice.EnvioInterno(var CodigoErro, CodigoInterno: Integer);
begin
  ConfigurarHttpClient;

  try
    try
      HttpClient.Execute;
    finally
      CodigoErro := HttpClient.HTTPResultCode;
      CodigoInterno := HttpClient.InternalErrorCode;
    end;

    HttpClient.DataResp.Position := 0;

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

    if FPRetorno = '' then
      raise EACBrDFeException.Create('WebService retornou um XML vazio.');

    LevantarExcecaoHttp;
  except
    on E:Exception do
    begin
      raise EACBrDFeException.CreateDef(Format(ACBrStr(cACBrDFeSSLEnviarException),
        [HttpClient.InternalErrorCode, HttpClient.HTTPResultCode, HttpClient.URL])
        + sLineBreak + HttpClient.LastErrorDesc+ sLineBreak + E.Message
        + sLineBreak + FPRetorno);
    end;
  end;
end;

 

image.thumb.png.bb1cb292d0729f0bc5ba102daadca6ce.png


 

ACBrNFSeXWebserviceBase.pas

Editado por Clverson
  • Consultores
Postado

Boa tarde Clverson,

Por favor crie uma outra postagem, pois a sua não tem nada haver com o assunto inicial deste tópico.

Boa tarde Guilherme,

Se foi necessário acrescentar essa configuração, veja:

procedure TACBrNFSeXWebserviceIPM101.SetHeaders(aHeaderReq: THTTPHeader);
var
  Auth: string;
begin
  with TConfiguracoesNFSe(FPConfiguracoes).Geral.Emitente do
    Auth := 'Basic ' + string(EncodeBase64(AnsiString(WSUser + ':' +
      ParseText(AnsiString(WSSenha), False))));

  aHeaderReq.AddHeader('Authorization', Auth);
end;

O componente monta automaticamente o Authorization se a versão for 1.01

Sendo assim o correto é:

[4104907]
; Incluído em 08/03/2022
; Atualizado em 11/08/2022
Nome=Castro
UF=PR
Provedor=IPM
Versao=1.01
ProRecepcionar=https://ws-castro.atende.net:7443/?pg=rest&service=WNERestServiceNFSe/

 

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Bom dia Italo, 

Consegui realizar o envio para o provedor de Castro-PR (IPM)

Tive que fazer as seguintes alterações de configurações:

FDMNFSEACBR.ACBrNFSe.Configuracoes.Geral.Versao := ve101; // você havia sugerido anteriormente 

ProRecepcionar=https://ws-castro.atende.net:7443/atende.php?pg=rest&service=WNERestServiceNFSe&cidade=padrao o link do provedor estava incorreto, entrei em contato com o pessoal por email e me passaram este outro link.

Eu baixei as fontes ontem as 18h 

Alterei o arquivo ACBrNFSeXServicos.ini adicionando a URL correta

Rodei o compila_res e transmiti novamente e deu certo.ACBrNFSeXServicos.ini

Favor baixar o topico, obrigado pela ajuda.

Vou anexar o arquivo alterado.

 

  • Este tópico foi criado há 978 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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...
The popup will be closed in 10 segundos...