Ir para conteúdo
  • Cadastre-se

dev botao

Ref. Forma de Envio novo Servidor IPM Guarapuava-PR


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

Recommended Posts

Postado

Estou implemento através do ACBRNFSex, o envio das NFSe para cidade Guarapuava-PR, no manual fornecido pela IPM, informa que o envio será de forma Sincrona (pagina 2 manual em anexo). Mas ao enviar seguindo as orientaçôes do método Emitir --> Emitir(vNumLote, meLoteSincrono), me retorna o erro de não estar implementado para esse servidor.

Alterei o arquivo ACBrNFSeXServicos.ini, colocando o servidor IPM para Guarapuava e alterando as URL, conforme o manual (em anexo o aqruivo) 

Agora á duvida esse retorno, e do servidor ou do ACBR?

 

ACBrNFSeXServicos.ini Manual Integração NFSe.pdf

  • Consultores
Postado

Boa tarde Sandro,

Se o retorno que você se refere é a mensagem informando que a funcionalidade não esta implementada pelo provedor, é gerada pelo componente sim.

A minha sugestão que no método Emitir você informe sempre o modo de envio automático.

Muito obrigado pela sua contribuição, 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 / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Italo, mudei para meautomatico, ele enviou no modo Assicrono, mas...

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

verifiquei ele gerou o XML da nota,  (segue em anexo).... e tela do debug...

 

nfseXretorno.png

4121080749340200011456000000000005911-rps.xml

  • Consultores
Postado

Boa tarde Sandro,

Temos mais relatos desse problema.

No arquivo gerado para se enviado para o webservice já conferi e nele consta o XML da nota, usuário e senha.

Não entendi porque esse provedor retorna essa mensagem.

Por favor entre em contato com o provedor e tenta descobrir o que esta ocorrendo.

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
20 horas atrás, Italo Giurizzato Junior disse:

Boa tarde Sandro,

Temos mais relatos desse problema.

No arquivo gerado para se enviado para o webservice já conferi e nele consta o XML da nota, usuário e senha.

Não entendi porque esse provedor retorna essa mensagem.

Por favor entre em contato com o provedor e tenta descobrir o que esta ocorrendo.

Italo, uma dúvida no manual da IPM diz que o envio será Sincrono, mas ao mandar pelo ACBR como meautomatico ele manda Assicorono, o que determina isso dentro do ACBR, será que mudassemos para enviar Sicrono não resolveria?

  • Membros Pro
Postado

estou na mesma situação. Está retornando XML vazio. já tentei remover as tags RPS, pois no modelo enviado pela IPM não contém e continua retornando a mensagem. no modelo enviado pelo IPM, não tem assinatura do XML, mas na reunião que foi feita há duas semanas eles falaram que deveria assinar o XML. 

Postado
21 horas atrás, Italo Giurizzato Junior disse:

Boa tarde Sandro,

Temos mais relatos desse problema.

No arquivo gerado para se enviado para o webservice já conferi e nele consta o XML da nota, usuário e senha.

Não entendi porque esse provedor retorna essa mensagem.

Por favor entre em contato com o provedor e tenta descobrir o que esta ocorrendo.

Italo acabei de receber esse retorno do pessoal da IPM:

Este retorno que você está tendo é porque não está enviando corretamente o arquivo na requisição.
Mando anexo exemplos no postman e soapui.

Estou anexando os arquivos que ele enviou
 

 

Homologacao.postman_collection (1).json Homologacao_Guarapuava_RESTProject_soapui-project.xml 4121080749340200011456000000000005911-rps.xml

  • Consultores
Postado

Bom dia Sandro,

O componente esta gerando o Json abaixo:

{"xml": "%s", "usuario": "%s", "senha": "%s"}

Note que é passado o conteúdo do XML ao campo xml, o usuário e a senha.

A não ser que esteja faltando mais alguma coisa nesse Json.

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

  • Membros Pro
Postado

executei mais uma vez apagando as informações do arquivo e selecionando novamente e agora o retorno foi outro, parece que agora o arquivo foi anexado e enviado. entao no caso do componente acbr, nao deve estar anexando o arquivo corretamente

 image.thumb.png.8665a81db3b33e3c7b72feab4dece7c1.png

  • Membros Pro
Postado

Boa tarde Italo,

Eu acessei o site do postman https://web.postman.co/ e importei o arquivo Homologacao.postman_collection (1).json enviado pelo Sandro e coloquei meu CNPJ e senha. Na aba body o parametro Arquivo XML eu apaguei e cliquei para selecionar um XML da minha pasta. ao enviar deu erro, mas agora fiz novamente e ele autorizou a nota. Talvez isso ajude a ver como esta sendo anexado o XML.

image.thumb.png.480cc5cbd6d18d2be9b8907be2022e6f.png

mandei no seu email os dados de login para que possa testar

  • Consultores
Postado

Junior,

Note que no Json que o componente gera, no campo "xml" é passado o conteúdo do XML e não o nome dele.

E a passagem dos dados é feita da seguinte forma:

          HttpClient.URL := FPURL;
          HttpClient.Method := 'POST';
          HttpClient.MimeType := FPMimeType;

          SetHeaders(HttpClient.HeaderReq);

          WriteStrToStream(HttpClient.DataReq, AnsiString(FPEnvio));

Onde FPEnvio contem o Json

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

Boa tarde, tambem tenho um cliente que irá emitir notas em Guarapuava (Empresa de Transportes Perola do Oeste), hoje iniciei a atualização do meu ACBR para inicio no componente novo ACBRNFSeX.

1) Fiz um teste de envio e obtive inicialmente erro de autenticação, mas tinha que habilitar para o meu usuario no site da prefeitura o envio por webservices.

2) Feito isso, ao enviar pelo programa de testes novo ACBRNFSeX, retornou um xml com o seguinte conteudo: <codigo>9999 - Arquivo XML da Nota Fiscal de Serviço Eletrônica não enviado!</codigo>

o que reparei é que no Json gerado no xml pelo ACBR:  "usuario": "xxx", "senha": "xxx"} e no exemplo da IPM em PHP:

Os parâmetros POST esperados pelo web service, na requisição HTTP, com Content-Type: multipart/form-data, são:

Campo Tipo Descrição
username Text CPF/CNPJ do emissor da NFS-e
password Password Senha de acesso ao sistema.
Authorization Text base64_encode(username:password)

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').

 

 

 

Postado

Fiz outro teste, gerei o xml pelo programa de exemplo e tentei o envio pelo Postman, ai começou a validar o xml.

Removi da geração do ACBR os dados do rps pois com as informações da RPS não aceitava o XML e dava um erro maluco.

   {

      IdentificacaoRps.Numero := FormatFloat('#########0', StrToInt(NumDFe));
      IdentificacaoRps.Serie := '1';
      IdentificacaoRps.Tipo := trRPS;// TnfseTipoRPS = ( trRPS, trNFConjugada, trCupom );
      DataEmissaoRPS := Now;
      }

Pelo postman foi aceito o arquivo gerado pelo ACBR, e gerou a nota, creio que no ACBR seja a forma de adição do XML o problema.

Outra coisa que me chamou a atenção foi o formato de codificação: <?xml version="1.0" encoding="ISO-8859-1"?> e no ACBR vem em UTF-8.

 

Retorno pelo envio pelo ACBR:

<?xml version="1.0" encoding="UTF-8"?><?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>

 

Retorno do Envio pelo PostMan:

<?xml version="1.0" encoding="ISO-8859-1"?><retorno>
    <mensagem>
        <codigo>00001 - Sucesso</codigo>
    </mensagem>
        <numero_nfse>4</numero_nfse>
    <serie_nfse>1</serie_nfse>
    <data_nfse>24/08/2021</data_nfse>
    <hora_nfse>16:55:40</hora_nfse>
    <situacao_codigo_nfse>1</situacao_codigo_nfse>
    <situacao_descricao_nfse>Emitida</situacao_descricao_nfse>
    <link_nfse>https://migracao.atende.net/?pg=autoatendimento&cidade=treina_guarapuava_integracao#!/tipo/servico/valor/213/padrao/1/load/1/identificador/7583738025207714738720220824082021169541</link_nfse>
    <cod_verificador_autenticidade>7583738025207714738720220824082021169541</cod_verificador_autenticidade>
</retorno>

 

Postado

LOG do Postman Console do caso de sucesso:

POST /atende.php?pg=rest&service=WNERestServiceNFSe&cidade=treina_guarapuava_integracao HTTP/1.1
Authorization: Basic NzcuMTQ3LjM4Ny8wMDAxLTM4OlBlckA3NzE0Nw==
User-Agent: PostmanRuntime/7.28.0
Accept: */*
Cache-Control: no-cache
Postman-Token: 81781a09-b2c4-4646-9e9c-91a834f8b050
Host: migracao.atende.net
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Type: multipart/form-data; boundary=--------------------------841383869900214019996528
Cookie: PHPSESSID=nvb5gd8vtue44ko8mmm5b60575; cidade=treina_guarapuava_integracao
Content-Length: 1707
 
----------------------------841383869900214019996528
Content-Disposition: form-data; name="XML"; filename="20210824165514-env-lot.xml"
 
<20210824165514-env-lot.xml>
----------------------------841383869900214019996528--
 
HTTP/1.1 200 OK
Date: Tue, 24 Aug 2021 19:55:40 GMT
Server: Apache
X-Frame-Options: sameorigin
Set-Cookie: cidade=treina_guarapuava_integracao; path=/; samesite=lax
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control: no-cache, must-revalidate
Pragma: no-cache
Data-Servidor: 1629834940000
Connection: close
Content-Encoding: none
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Content-Security-Policy: object-src 'self' data: blob: https://*.atende.net https://*.ipm.com.br https://nfs-e.net; block-all-mixed-content; form-action 'self' *.nfs-e.net https://*.ipm.com.br https://*.atende.net https://*.acesso.gov.br; frame-ancestors 'self' https://*.nfs-e.net https://*.ipm.com.br https://*.atende.net;
Strict-Transport-Security: max-age=31586000; includeSubDomains; preload
Transfer-Encoding: chunked
Content-Type: application/json
 
<?xml version="1.0" encoding="ISO-8859-1"?><retorno>
<mensagem>
<codigo>00001 - Sucesso</codigo>
</mensagem>
<numero_nfse>4</numero_nfse>
<serie_nfse>1</serie_nfse>
<data_nfse>24/08/2021</data_nfse>
<hora_nfse>16:55:40</hora_nfse>
<situacao_codigo_nfse>1</situacao_codigo_nfse>
<situacao_descricao_nfse>Emitida</situacao_descricao_nfse>
<link_nfse>https://migracao.atende.net/?pg=autoatendimento&cidade=treina_guarapuava_integracao#!/tipo/servico/valor/213/padrao/1/load/1/identificador/7583738025207714738720220824082021169541</link_nfse>
<cod_verificador_autenticidade>7583738025207714738720220824082021169541</cod_verificador_autenticidade>
</retorno>
  • Membros Pro
Postado

para contribuir, eu consegui enviar o XML usando RestClient/RestRequest

procedure TForm1.Button1Click(Sender: TObject);
var
  RESTClient1: TRESTClient;
  RESTRequest1: TRESTRequest;
  BASICAuth : THTTPBasicAuthenticator;
begin
  BasicAuth := THTTPBasicAuthenticator.Create('cnpj','senha');
  RESTClient1 := TRESTClient.Create('https://migracao.atende.net');
  RESTClient1.Authenticator := BASICAuth;
  try
    RESTRequest1 := TRESTRequest.Create(nil);
    try
      RestClient1.Accept          := 'application/json';
      RestClient1.AcceptCharset   := 'ISO-8859-1';
      RestClient1.AcceptEncoding  := 'ISO-8859-1';
      RestClient1.FallbackCharsetEncoding := 'ISO-8859-1';
      RestClient1.ContentType    := 'multipart/form-data';
      RESTRequest1.Client := RESTClient1;
      RESTRequest1.Method := TRESTRequestMethod.rmPOST;
      RESTRequest1.Resource := 'atende.php?pg=rest&service=WNERestServiceNFSe&cidade=treina_guarapuava_integracao';
      RESTRequest1.AddFile('file', 'c:\soft\xml1.xml', ctMULTIPART_FORM_DATA);
      RESTRequest1.Execute;
      memo1.lines.add(RESTRequest1.Response.Content);
    finally
      RESTRequest1.Free;
    end;
  finally
    RESTClient1.Free;
    BASICAuth.Free;
  end;
end;
 

no restrequest não enviava usando stream, só deu certo quando usei AddFile para o envio

Postado
7 minutos atrás, junior_gpuava disse:

para contribuir, eu consegui enviar o XML usando RestClient/RestRequest

procedure TForm1.Button1Click(Sender: TObject);
var
  RESTClient1: TRESTClient;
  RESTRequest1: TRESTRequest;
  BASICAuth : THTTPBasicAuthenticator;
begin
  BasicAuth := THTTPBasicAuthenticator.Create('cnpj','senha');
  RESTClient1 := TRESTClient.Create('https://migracao.atende.net');
  RESTClient1.Authenticator := BASICAuth;
  try
    RESTRequest1 := TRESTRequest.Create(nil);
    try
      RestClient1.Accept          := 'application/json';
      RestClient1.AcceptCharset   := 'ISO-8859-1';
      RestClient1.AcceptEncoding  := 'ISO-8859-1';
      RestClient1.FallbackCharsetEncoding := 'ISO-8859-1';
      RestClient1.ContentType    := 'multipart/form-data';
      RESTRequest1.Client := RESTClient1;
      RESTRequest1.Method := TRESTRequestMethod.rmPOST;
      RESTRequest1.Resource := 'atende.php?pg=rest&service=WNERestServiceNFSe&cidade=treina_guarapuava_integracao';
      RESTRequest1.AddFile('file', 'c:\soft\xml1.xml', ctMULTIPART_FORM_DATA);
      RESTRequest1.Execute;
      memo1.lines.add(RESTRequest1.Response.Content);
    finally
      RESTRequest1.Free;
    end;
  finally
    RESTClient1.Free;
    BASICAuth.Free;
  end;
end;
 

no restrequest não enviava usando stream, só deu certo quando usei AddFile para o envio

Junior, essa alteração que acabou de passar você fez no componente do ACBR ou no seu aplicativo?

 

  • Membros Pro
Postado

sandro.... na verdade eu fiz um teste por fora usando REST, mais para procurar entender o motivo do servidor estar rejeitando os arquivos do acbr.

agora teria que repassar esses parametros para o acbr, tem algumas coisas que observei que tem que mudar como o encoding que ao menos no cabeçalho tem que estar ISO8859-1. no xml ele foi como utf-8 mesmo

não tenho certeza, mas parece que no acbr o xml esta sendo anexado como stream

Postado
2 minutos atrás, junior_gpuava disse:

sandro.... na verdade eu fiz um teste por fora usando REST, mais para procurar entender o motivo do servidor estar rejeitando os arquivos do acbr.

agora teria que repassar esses parametros para o acbr, tem algumas coisas que observei que tem que mudar como o encoding que ao menos no cabeçalho tem que estar ISO8859-1. no xml ele foi como utf-8 mesmo

não tenho certeza, mas parece que no acbr o xml esta sendo anexado como stream

Acho que seria bom encaminhar essa informação para o Italo, porque na realidade não sei como fazer essa alteração no ACBR e tambem pelo risco de comprometer os outros envios....

Postado
3 horas atrás, junior_gpuava disse:

sandro.... na verdade eu fiz um teste por fora usando REST, mais para procurar entender o motivo do servidor estar rejeitando os arquivos do acbr.

agora teria que repassar esses parametros para o acbr, tem algumas coisas que observei que tem que mudar como o encoding que ao menos no cabeçalho tem que estar ISO8859-1. no xml ele foi como utf-8 mesmo

não tenho certeza, mas parece que no acbr o xml esta sendo anexado como stream

Estou tentando achar onde fica essa parte  que comentou da forma como xml e anexo ao envio e do encoding, dentro do ACBNFSEx, mas está complicado

  • Este tópico foi criado há 1448 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...