Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Olá Pessoal, 

Sou usuário do fórum há algum tempo como @almp1, mas estamos chegando agora no SAC como empresa. Postei esse mesmo problema no fórum aberto, não sabia que havia um fórum privativo só para usuarios do SAC, por isso vou repetir minha situação aqui também. :) 

Estou usando Linux CentOS 7 64bits. Esse assunto foi muito debatido no fórum (NFE+Linux+64bits). Prova disso é que estamos usando esta arquitetura em ambiente de produção e estamos indo muito bem.

Agora estamos tentando enviar uma NFSe para prefeitura de SP. A assinatura é feita de forma correta, mas no momento do envio recebemos a mensagem 

Erro Interno: 0
Erro HTTP: 400.

Isso já ocorreu em uma outra situação, até pesquisei no forum para ver se encontrava o post mas não consegui. Me lembro que o @Daniel Simoes tinha feito uma correção para isso, mas não sei se esta correção contemplava também a arquitetura 64bits, na época usávamos 32 bits e depois da correção tudo funcionou corretamente.

Poderiam nos ajudar com isso novamente.

Grato, 

logo-keruak.png

 André Medeiros

 Estratégia & Negócios
 +55 11 3010 0000

url-keruak.pngfacebook-keruak.pngespaco.pnglinkedin-keruak.png

Postado

Olá André,

Usando Delphi XE2+WIn32+OpenSSL, funciona normalmente. Estou preparando uma maquina com Linux 32bits, pois depois da emissão da NFE no Linux 64bits migramos tudo para 64. E esquecemos da NFSe.

Olá Daniel, 

Sim, estou usando o demo da NFSe do ACBr. A unica coisa que precisa mudar no exemplo é o código do serviço e a Inscrição municipal do tomador

Tomador.IdentificacaoTomador.InscricaoMunicipal := '';
Servico.ItemListaServico    := '02917';

Vou fazer testes com Lazarus+Win32 também e reporta aqui o resultado dos meus testes.

Obrigado,

[]s

logo-keruak.png

 André Medeiros

 Estratégia & Negócios
 +55 11 3010 0000

url-keruak.pngfacebook-keruak.pngespaco.pnglinkedin-keruak.png

  • Fundadores
Postado

O problema parece relacionado a diferença de Tipos de 32 e 64 bits... no Lazarus, você pode testar com o Cross-compiling ou ainda instalar um Lazarus 64

http://wiki.lazarus.freepascal.org/Cross_compiling

Instale a versão 32 bits.. e depois rode o instalador do Cross compiling para 64 bits

https://sourceforge.net/projects/lazarus/files/Lazarus Windows 32 bits/Lazarus 1.6.4/

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

Olá Daniel,

Acredito que não é possível fazer isso no linux. Como estou usando linux CentOS 7 64, quando tento usar o rpm do pacote abaixo 

https://sourceforge.net/projects/lazarus/files/Lazarus Linux i386 RPM/Lazarus 1.6.4/

recebo um erro de arquitetura informando que faltam dependências de pacotes de 32 bits.

Não sei se isso tem algo ha ver diretamente com esse caso, mas quando migramos para Linux 64, foi preciso adicionar a diretiva -FcUTF8 nas opções customizadas, pois as mensagens impressas pelo sistema, como por exemplo

ShowMessage('Atenção! Preencha o código do produto');

 vinham com os caracteres especiais errados.  

Estamos usando a ultima versão, Lazarus 1.6.4 e FPC 3.0.2

Vou continuar com os testes e debugs, para ver se consigo mais detalhes. Se você precisar de informação para tentarmos uma solução, estou a disposição para ajudar.

Abraços e obrigado,

 

logo-keruak.png

 André Medeiros

 Estratégia & Negócios
 +55 11 3010 0000

url-keruak.pngfacebook-keruak.pngespaco.pnglinkedin-keruak.png

Postado

Olá amigos,

Fiz alguns testes usando Win7 32 com o Lazarus citado acima 1.6.4 e FPC 3.0.2. Infelizmente o erro persiste.

Erro Interno: 0
Erro HTTP: 400.

Acredito que isso nos mostra que não é um problema de arquitetura 32/64.

Outro ponto interessante é que fui obrigado a descomentar a linha {$DEFINE DFE_SEM_CAPICOM} do ACBr.inc para usar o OpenSSL, mesmo definindo o libOpenSSL no componente.

Faltou uma informação para usar o Demo da NFSe do ACBr no Lazarus, é necessário adicionar a cidade de São Paulo no cbCidades conforme abaixo

Sao Paulo/3550308/SP

Abraços

logo-keruak.png

 André Medeiros

 Estratégia & Negócios
 +55 11 3010 0000

url-keruak.pngfacebook-keruak.pngespaco.pnglinkedin-keruak.png

Postado

Olá Pessoal

O problema está no ACBrNFSeWebServices.pas nas linhas abaixo.

  {$IFDEF FPC}
   Texto := '<' + ENCODING_UTF8 + '>';    //  Envelope já está sendo montado em UTF8
  {$ELSE}
   Texto := '';  // Isso forá a conversão para UTF8, antes do envio
  {$ENDIF}

Desta forma os XMLs ficam assim:

<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

Duplicando o cabeçalho.

Assim fiz as modificações abaixo

  {$IFDEF FPC}
   if Provedor <> proSP then
     Texto := '<' + ENCODING_UTF8 + '>';    // Envelope já está sendo montado em UTF8
  {$ELSE}
   Texto := '';  // Isso forá a conversão para UTF8, antes do envio
  {$ENDIF}

Fiz apenas para o provedor de SP pois não sei se outros provedores precisam desta linha.

Também adicionei esta linha somente para o provedor de SP, pois o manual informa que as aspas devem ser substituidas por &quot

// Alterações no conteudo de DadosMsg especificas para alguns provedores
case FProvedor of
  proSP : DadosMsg:= StringReplace(DadosMsg, '"', '"', [rfReplaceAll]);

Estou enviando o arquivo ACBrNFSeWebServices.pas com as correções

Estou usando a revisão 13012 do ACBr, o ambiente que usei para testes foi FPC 3.0.2+Lazarus 1.6.4+Linux CentOs7 64

Abraços,

 

ACBrNFSeWebServices.pas

  • Curtir 1
logo-keruak.png

 André Medeiros

 Estratégia & Negócios
 +55 11 3010 0000

url-keruak.pngfacebook-keruak.pngespaco.pnglinkedin-keruak.png

  • Fundadores
Postado

Acho que o mais correto... seria modifica o arquivo SP.INI, removendo esse "Header"

[Recepcionar]
IncluiEncodingCab=0
IncluiEncodingDados=0
Texto1=<?xml version="1.0" encoding="UTF-8"?>  

 

  • 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.

Postado

Olá Daniel, td bem ?

Obrigado pela ajuda.

Atualizei o ACBr com a versão 13056 e fiz a alteração que você sugeriu.

Fiz testes somente usando FPC em Linux e Win, funcionou normalmente. Não fiz testes no Delphi

Só uma duvida, o SP.ini será disponibilizado no repositório ou devo mante-lo localmente ?

Caso deseje colocar no repositório segue o SP.ini alterado.

Abraços,

SP.ini

  • Curtir 1
logo-keruak.png

 André Medeiros

 Estratégia & Negócios
 +55 11 3010 0000

url-keruak.pngfacebook-keruak.pngespaco.pnglinkedin-keruak.png

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