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á 1186 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á 1186 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.