-
Total de ítens
47 -
Registro em
-
Última visita
-
Days Won
1
leoprates last won the day on 6 Abril 2013
leoprates had the most liked content!
Sobre leoprates
Últimos Visitantes
O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.
leoprates's Achievements
-
Pessoal, O Lucas que faz o serviço da nuvem para nós conseguiu resolver. Ele viu que hoje o Daniel enviou o passo a passo e no fim enviou a versão das ferramentas. Ao testar com o node 12 funcionou. Antes disso testamos da 14 para cima .
-
Daniel, vou seguir os passos que você recomendou. Apenas uma dúvida, no link da instalação (https://acbr.sourceforge.io/ACBrLib/ComoInstalarDistribuir.html) é dito que devo "copiar as Bibliotecas, para algum dos diretórios do LibPath do Sistema operacional, como por exemplo: /usr/lib64". A quais bibliotecas esse trecho se refere? Seriam das libs openssl, libxml2 e libgtk2.0-0?
-
Bom dia pessoal! Seria possível o Daniel InfoCotidiano me passar o passo a passo de como ele configurou o ambiente dele? Testei de diversas maneiras no WSL Ubuntu, em uma VM, com Docker, e também pedi para o pessoal de infraestrutura que lida com nossos serviços na nuvem usando AWS testar, mas todos sempre encontram o mesmo problema que eu.
-
Mais uma coisa, quando testo o certificado com openssl s_client ele retorna "verify error:num=20:unable to get local issuer certificate"
-
Renato, testando o certificado com o curl tenho retornos diferentes quando usando o PFX e quando o transforme em PEM. Certificado PFX root@maure:/home/node/Projeto# curl -I --cert ./tmp/certificado/certificado.pfx --pass minha_senha https://hom1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx curl: (58) could not load PEM client certificate, OpenSSL error error:0480006C:PEM routines::no start line, (no key found, wrong pass phrase, or wrong file format?) Certificado PEM + key curl -I --cert ./tmp/certificado/certificado.pem --key ./tmp/certificado/chave-privada.pem -k https://hom1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx Enter PEM pass phrase: HTTP/1.1 405 Method Not Allowed Cache-Control: private Content-Length: 3508 Content-Type: text/html; charset=utf-8 Server: Microsoft-IIS/8.5 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Tue, 17 Oct 2023 12:15:45 GMT
-
Instalei a versão 1.1.1f do OpenSSL e continuo na mesma situação. SSLType eu testei cada um deles e, os que são compativeis, retornam sempre a mesma mensagem do log em anexo. ACBrLibNFE-20231016.log
-
Boa tarde a todos! Seguindo a última recomendação do Renato e do Daniel e também reinstalando meu ubuntu do zero, o erro de Segmentation Fault parou de ocorrer. Agora, apenas o erro abaixo está sendo exibido. Daniel, poderia me enviar seu acbrlib.ini para eu verificar se pode ser alguma propriedade não preenchida ou preenchida de maneira incorreta? O openssl está na versão correta "OpenSSL 1.1.1q 5 Jul 2022". Tentei deixar um arquivo em anexo com os comandos que utilizei na configuração do ambiente, porém o servidor não permite o envio (então enviarei como .rar) Log: 16/10/23 16:40:42:979 - TLibNFeConfig.AplicarConfiguracoes: ./tmp/acbrlib.ini 16/10/23 16:40:42:979 - Travar 16/10/23 16:40:42:979 - TLibNFeConfig.AplicarConfiguracoes - Feito 16/10/23 16:40:42:979 - Destravar 16/10/23 16:40:42:979 - SetRetorno(0, ) 16/10/23 16:40:42:980 - NFe_DistribuicaoDFePorUltNSU(35,06319316000127,000000000000001) 16/10/23 16:40:42:980 - Travar 16/10/23 16:40:42:980 - NFe_DistribuicaoDFePorUltNSU, Executar 16/10/23 16:40:42:998 - Destravar 16/10/23 16:40:42:998 - SetRetorno(-16, WebService Distribuição de DFe: - Inativo ou Inoperante tente novamente. Erro Interno: -2 Erro HTTP: 500 URL: https://hom1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx error:140AB18E:SSL routines:func(171):reason(398) MotivoRetornadoDoWebService: "") 16/10/23 16:40:42:999 - LIB_Finalizar 16/10/23 16:40:42:999 - Finalizar comandos.rar
-
Boa tarde Renato! Testei a execução do método da Distribuição com o ambiente mais limpo possível (utilizei o exemplo do SVN). Executando o script no windows com a DLL o código funciona corretamente (assim como meu código com serverless, caso testado no windows). Ao executar no linux com a lib SO ele retorna o erro Segmentation Fault. Criei um repo no github com o código e um readme.md para facilitar a simulação para vocês. Segue o link: https://github.com/Maurelima/acbr-demo-linux.git
-
Claro! Estou enviando um link para download, pois ao tentar anexar o arquivo aqui é exibido um erro. https://mega.nz/file/tjQAWaja#6dOBC3sxUqYrxLQGrXy6beboGcG7ChKENbTq5qMy1JU
-
Debugando com segfault-handler o retorno é o log abaixo: NFE_DistribuicaoDFePorUltNSU PID 24905 received SIGSEGV for address: 0x18 /home/node/erp-cloud-recepcao-xml-automatica/.esbuild/.build/node_modules/segfault-handler/build/Release/segfault-handler.node(+0x37a5)[0x7f4bb009f7a5] /lib/x86_64-linux-gnu/libpthread.so.0(+0x14420)[0x7f4bb23b2420] /lib/x86_64-linux-gnu/libpthread.so.0(pthread_rwlock_wrlock+0x16)[0x7f4bb23abd46] node(CRYPTO_THREAD_write_lock+0x9)[0x1966af9] node(ossl_x509v3_cache_extensions+0x3e)[0x19dbbde] node(X509_get_extension_flags+0x11)[0x19dca81] /usr/local/lib/libssl.so(+0x6c4a5)[0x7f4b904c84a5] /usr/local/lib/libssl.so(SSL_CTX_use_certificate+0x2a)[0x7f4b904a021a] /home/node/erp-cloud-recepcao-xml-automatica/assets/acbr/dllacbrnfe/bin/Linux/libacbrnfe64.so(+0x50a452)[0x7f4b92425452] Segmentation fault
-
Criei um novo ambiente do zero e o problema continua. (recepcao-2) root@maure:/home/node/erp-cloud-recepcao-xml-automatica# openssl version OpenSSL 1.1.1q 5 Jul 2022 Ou da o erro de segmentation ou o do log 13/10/23 14:24:56:644 - NFe_DistribuicaoDFePorUltNSU(35,06319316000127,000000000000001) 13/10/23 14:24:56:644 - Travar 13/10/23 14:24:56:644 - NFe_DistribuicaoDFePorUltNSU, Executar 13/10/23 14:24:56:700 - Destravar 13/10/23 14:24:56:700 - SetRetorno(-16, WebService Distribuição de DFe: - Inativo ou Inoperante tente novamente. Erro Interno: -2 Erro HTTP: 500 URL: https://hom1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx error:140AB18E:SSL routines:func(171):reason(398) MotivoRetornadoDoWebService: "") 13/10/23 14:24:56:703 - LIB_UltimoRetorno 13/10/23 14:24:56:703 - MoverStringParaPChar. StrLen:272, BufLen:39000 13/10/23 14:24:56:703 - Codigo:-16, Mensagem:WebService Distribui[195][167][195][163]o de DFe:[CR][LF]- Inativo ou Inoperante tente novamente.[LF]Erro Interno: -2[LF]Erro HTTP: 500[LF]URL: https://hom1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx[LF]error:140AB18E:SSL routines:func(171):reason(398)[LF][LF] MotivoRetornadoDoWebService: ""
-
Olá, Diego! No windows tem funcionado sem problema. Meu microsserviço de emissão de NFE funciona no mesmo ambiente que o de recepção de XML e não da problema com o SSL. Para sanarmos essa possibilidade removi o openssl instalado, vou criar um novo ambiente no WSL com conda e instalar todas as dependências do zero para testar. Logo menos retorno. De já, obrigado pelo retorno!
-
Bom dia Renato! Alterei as const para let mas não funcionou. Os métodos que utilizo antes desse são o NFE_Inicializar e o NFE_ConfigGravarValor que funcionam corretamente. Simplifiquei ao máximo o método NFe_DistribuicaoDFePorUltNSU mas ao chegar nele é acusado o erro Segmentation fault ou é gerado o log em anexo. ACBrLibNFE-20231013.log
-
Ainda com relação ao problema, na maioria das vezes (independente do tamanho so buffer) o erro Segmentation Fault é retornado. No entanto, algumas vezes o código executa e retorna o erro: 'WebService Distribuição de DFe:- Inativo ou Inoperante tente novamente.\n' + 'Erro Interno: -2\n' + 'Erro HTTP: 500\n' + 'URL: https://hom1.nfe.fazenda.gov.br/NFeDistribuicaoDFe/NFeDistribuicaoDFe.asmx\n' + 'error:140AB18E:SSL routines:func(171):reason(398)'. Diego, peço desculpas por ter enviado o código por escrito. Tentei enviar por arquivo e não consegui. Todas as tentativas a página me deu erro com código -200.
-
Pessoal, tentei implementar as sugestões, porém ainda recebo o erro de Segmentation fault. Vou deixar o código abaixo para que possam avaliar. import ref from "ref-napi"; import acbrDLL from "../acbrDLL"; import EnvProtocol from './protocols/Env.protocol'; import { AcbrProtocol } from './protocols/Acbr.protocol'; import AcbrIniProtocol from './protocols/AcbrIni.protocol'; import { Result } from "./Result"; import { Util } from './Util'; interface IResponse { success: boolean; data?: object | any | undefined; message?: string | undefined; } type ResponseDFes = { success: boolean; DistribuicaoDFe: any; message?: string; }; class Acbr implements AcbrProtocol { constructor( private readonly acbrIni: AcbrIniProtocol, private readonly env: EnvProtocol, private readonly result: Result, private readonly utilResult: Util ) { } private readonly BUFF_LENGTH = 16000; private readonly chaveCrypt: string = ""; private aloc_sResposta = Buffer.alloc(this.BUFF_LENGTH); private aloc_esTamanho = ref.alloc(ref.types.int, this.BUFF_LENGTH); init() { let result: number = 0; result = acbrDLL.NFE_Inicializar(this.acbrIni.path, this.chaveCrypt); this.result.check(result, "NFE_Inicializar"); this.setup(); } private setup() { this.acbrIni.setValue( "DFe", "Senha", "minha_senha" ); this.acbrIni.setValue( "Email", "Nome", this.env.getProperty("MAIL_DESCRIPTION")!! ); this.acbrIni.setValue( "Email", "Servidor", this.env.getProperty("MAIL_SERVER")!! ); this.acbrIni.setValue( "Email", "Usuario", this.env.getProperty("MAIL_USER")!! ); this.acbrIni.setValue( "Email", "Senha", this.env.getProperty("MAIL_PASSWORD")!! ); this.acbrIni.setValue( "Email", "Porta", this.env.getProperty("MAIL_PORT")!! ); this.acbrIni.setValue("Email", "SSL", this.env.getProperty("MAIL_SSL")!!); this.acbrIni.setValue("Email", "TLS", this.env.getProperty("MAIL_TLS")!!); } finish() { const result = acbrDLL.NFE_Finalizar(); this.result.check(result, "NFE_Finalizar"); } async getFinalResponse(length: number): Promise<IResponse> { return new Promise((resolve, reject) => { const aloc_sResposta = Buffer.alloc(length); const aloc_esTamanho = ref.alloc(ref.types.int, length); acbrDLL.NFE_UltimoRetorno.async( //@ts-ignore aloc_sResposta, aloc_esTamanho, (err: any, result: any) => { try { if (err) throw new Error(err); this.utilResult.checkResult(result); resolve({ success: true, message: Util.sTrim(aloc_sResposta.toString()), }); } catch (error) { reject({ success: false, message: error, }); } } ); }); } async checkPointerResponse( result: number, alocResposta: Buffer, alocLength: ref.Pointer<number> ): Promise<any> { try { this.utilResult.checkResult(result, "NFE_DistribuicaoDFePorUltNSU"); let message = Util.sTrim(alocResposta.toString()) || ""; const bufferLength = alocLength.deref(); let looping = true; if (bufferLength <this. BUFF_LENGTH) { looping = false; } else { if (message.length < bufferLength && message.length > this.BUFF_LENGTH) { looping = false; } else { if (message.length >= bufferLength) { looping = false; } } } if (looping === true) { // Aumentar o tamanho do buffer em 30% const novoTamanho = Math.round(bufferLength * 1.3); this.aloc_sResposta = Buffer.alloc(novoTamanho); this.aloc_esTamanho = ref.alloc(ref.types.int, novoTamanho); const resUltimoRetorno = await this.getFinalResponse(novoTamanho); if (!resUltimoRetorno.success) throw new Error(resUltimoRetorno.message); message = resUltimoRetorno.message || ""; } return { success: true, data: message, }; } catch (error) { return { success: false, data: error, }; } } getDFesPorUltNSU = async (num_ult_nsu_recebido: string) => { console.log("getDFesPorUltNSU"); return new Promise<ResponseDFes>(async (resolve, reject) => { const ufAutor = 35; const cnpjcpf = "06319316000127"; console.log('NFE_DistribuicaoDFePorUltNSU') acbrDLL.NFE_DistribuicaoDFePorUltNSU.async( ufAutor, cnpjcpf, num_ult_nsu_recebido, // @ts-ignore this.aloc_sResposta, this.aloc_esTamanho, async (err: any, result: number) => { try { if (err) { console.error(err); reject(err); } const response = await this.checkPointerResponse( result, this.aloc_sResposta, this.aloc_esTamanho ); console.log({ response }); } catch (error: any) { console.error(error); reject({ success: false, message: error.message, }); } } ); }); }; } export default Acbr;