Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Se eu sobrescrever o método: procedure TNFSeWebService.DefinirEnvelopeSoap;

consigo fazer a transmissão do arquivo pelo EnviarDados original.

mas tenho um problema.

o método: procedure TACBrWinHTTPReqResp.Execute(Resp: TStream);

recebe a URL: http://sync.nfs-e.net/datacenter/include/nfw/importa_nfw/nfw_import_upload.php?eletron=1

executa a função: ParseURL(Url, AProt, ANone, ANone, AHost, APort, APath, ANone);

e executa WinHttpOpenRequest somente com o APath

neste ponto do código a variável APath é = datacenter/include/nfw/importa_nfw/nfw_import_upload.php

se o POSTfor realizado sem o parametro:  ?eletron=1 o retorno será em HTML, não sendo possível o tratamento do mesmo, 

fiz um teste com a variável APath com o conteudo: /datacenter/include/nfw/importa_nfw/nfw_import_upload.php?eletron=1

e tive o retorno em XML.

como podemos corrigir esse problema?

 

  • Fundadores
Postado

Sua contribuição está bem organizada, com os fontes separados corretamente nos diretórios, equivalentes ao destino no SVN.. isso é ótimo... mas notei que aparentemente, alguns de seus fontes estão um pouco defasados dos fontes atuais do SVN... (sugiro efetuar um Merge nos seus fontes)

Acho que a modificação em ACBrDFeWebService, não é necessária, e poderia trazer efeitos colaterais para outros DFe's...   Esse servidor não aceita UTF8 ?

Tente remover a dependência de Units desnecessárias como "synautil, ACBrSocket"  em ACBrNFSeWebService

Vou analisar o problema na WinHttp e WinINet

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Fundadores
Postado
Em 30/01/2018 at 13:55, Filipe Natividade disse:

se o POSTfor realizado sem o parametro:  ?eletron=1 o retorno será em HTML, não sendo possível o tratamento do mesmo, 

Apliquei uma possível correção, para este problema...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado
8 horas atrás, Daniel Simoes disse:

Acho que a modificação em ACBrDFeWebService, não é necessária, e poderia trazer efeitos colaterais para outros DFe's...   Esse servidor não aceita UTF8 ?

Bom dia.

Essa alteração se faz necessária devido a função: ConverteXMLtoUTF8(FPEnvelopeSoap), adiciona no inicio de FPEnvelopeSoap  a string: <?xml version="1.0" encoding="UTF-8"?>, mas como a variável: FPEnvelopeSoap está com o conteúdo em: multipart/form-data, coloquei a condição, se o inicio do conteudo em multipart/form-data conter essa string inicial, não é reconhecida pelo webservice.

 

segue os fontes atualizados para a Revisão: 14585

ACBr Trunk2.rar

  • Membros Pro
Postado

Boa tarde,

Daniel. Sua alteração funcionou perfeitamente.

Estou fazendo algumas correções no ini do provedor e implantando o metodo de leitura da resposta do provedor que não estava implementado.

Posto as fonte daqui a pouco.

Att

  • Curtir 1

Elias Jakubowski

LS Technologies - www.lstech.com.br

  • Membros Pro
Postado

Boa tarde,

Segue as fontes devidamente testadas e nos padrões do ACBR.

Fiz os testes de envio nas três formas (SSLHttpLib = httpOpenSSL, SSLHttpLib = httpWinHttp, SSLHttpLib = httpWinINet) e em todas obtive sucesso.

Daniel e/ou Ítalo, poderiam validar e publicar?

Obrigado.

ACBr Trunk2.zip

  • Curtir 1

Elias Jakubowski

LS Technologies - www.lstech.com.br

  • Fundadores
Postado
7 horas atrás, Italo Jurisato Junior disse:

Os fontes do ACBrNFSe já enviei para o repositório, menos o ACBrDFeWebService que vou deixar para o Daniel analisar.

Sem essa modificação a comunicação ocorre com sucesso ?

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Fundadores
Postado
Em 01/02/2018 at 09:08, Filipe Natividade disse:

Essa alteração se faz necessária devido a função: ConverteXMLtoUTF8(FPEnvelopeSoap), adiciona no inicio de FPEnvelopeSoap  a string: <?xml version="1.0" encoding="UTF-8"?>, mas como a variável: FPEnvelopeSoap está com o conteúdo em: multipart/form-data, coloquei a condição, se o inicio do conteudo em multipart/form-data conter essa string inicial, não é reconhecida pelo webservice.

Obrigado pela análise... você está correto... Pesquisando um pouco mais sobre os Mimetypes, percebi que vários outros tipos, não deveriam passar pela conversão de Encoding... então apliquei uma verificação mais abrangente, para converter apenas se o MimeType for realmente um XML

  • Curtir 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • 2 semanas depois ...
Postado (editado)

Olá administradores,

Por favor, adicionem ao arquivo cidades.ini mais um município (Arapongas-PR) também atendido pela IPM.

 

[4101507]
Nome=Arapongas
UF=PR
Provedor=IPM

 

Grato.

Marcos

Editado por Marcos Peixoto
Postado
Em 24/01/2018 at 18:10, Filipe Natividade disse:

Boa noite, com os fontes acima enviados pelo Elias, fiz alterações exclusivamente para o Provedor IPM, estás alterações não causarão mudanças em outros provedores.

Em questão se as alterações afetam outros cidades do provedor IPM, provável que não, pois o manual da IPM é único para todas as cidades atendidas.

O arquivo está em .rar para poder manter a a estrutura de pastas dos arquivos.

Os métodos que foram alterados e que ficam mas no padrão do ACBr devido a IPM não utilizar o padrão ABRASF são:

ACBRNFSe.Gerar();

ACBrNFSe.ConsultarLoteRps();

ACBrNFSe.CancelarNFSe();

ACBr Trunk2.rar

Bom dia Filipe e demais,

Estou implementando NFS-e para município também atendido pela IPM (Arapongas-PR) e estou com seguintes impasses:

O primeiro é que na chamada de ConsultarLoteRps() ocorrendo 'Argument out of range' na função ExtrairNotasRetorno() da unit ACBrNFSeWebServices.pas, quando chega no teste adicionado para proIPM (+- linha 1130 da versão q estou usando).
Tive que adicionar as linhas que destaco abaixo para funcionar. Podem rever se procede?   

if (FProvedor = proIPM) then
    begin
      if FNotasFiscais.Count = 0 then  // <<<<<====== Teste adicionado para funcionar
        FNotasFiscais.Add;

      FNotasFiscais.Items[0].NFSe.Autenticador      := FRetornoNFSe.ListaNFSe.CompNFSe.Items[0].NFSe.Autenticador;
      FNotasFiscais.Items[0].NFSe.Link              := FRetornoNFSe.ListaNFSe.CompNFSe.Items[0].NFSe.Link;
      FNotasFiscais.Items[0].NFSe.Numero            := FRetornoNFSe.ListaNFSe.CompNFSe.Items[0].NFSe.Numero;
      FNotasFiscais.Items[0].NFSe.dhRecebimento     := FRetornoNFSe.ListaNFSe.CompNFSe.Items[0].NFSe.dhRecebimento;
      FNotasFiscais.Items[0].NFSe.CodigoVerificacao := FRetornoNFSe.ListaNFSe.CompNFSe.Items[0].NFSe.CodigoVerificacao;
      FNotasFiscais.Items[0].NFSe.Protocolo         := FRetornoNFSe.ListaNFSe.CompNFSe.Items[0].NFSe.Protocolo;
      FNotasFiscais.Items[0].NFSe.Competencia       := FRetornoNFSe.ListaNFSe.CompNFSe.Items[0].NFSe.Competencia;
      FNotasFiscais.Items[0].NFSe.Cancelada         := FRetornoNFSe.ListaNFSe.CompNFSe.Items[0].NFSe.Cancelada;
      FNotasFiscais.Items[0].NFSe.Status            := FRetornoNFSe.ListaNFSe.CompNFSe.Items[0].NFSe.Status;

      if (Trim(FXML_NFSe) <> '') then
        FRetornoNFSe.ListaNFSe.CompNFSe.Items[0].NFSe.XML := FXML_NFSe;
      FNotasFiscais.Items[0].NFSe.XML               := FRetornoNFSe.ListaNFSe.CompNFSe.Items[0].NFSe.XML;
      Break;
    end;

 

O segundo ponto: Uma vez confirmado através do ConsultarLoteRps()  que a Nota Fiscal foi validada, como pegar as informações de emissão (Numero, dhRecebimento, CodigoVerificacao, etc...) para serem gravados em banco de dados. Não encontrei forma de pegar essas informações.

Como estão fazendo isso? Poderiam por favor apresentar uma sugestão ou exemplo.

 

Agradeço antecipadamente a atenção.

 

Marcos

 

 

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