-
Total de ítens
40 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Renan Kemp postou
-
Notei que se eu passar o XML com alguma tag incorreta ou o caminho errado ele nao gera erro Passando certo aceitou Mas ai me surge a duvida como irei Carregar o XML para o componente validar ? minha pergunta surge por que nao encontrei onde pego a respostar do CarregarXML [resolvido] o componente somente nao anexa caso exista erro estrutural ou seja se for erro de tags ele aceita carregar para Validar na sequencia
-
Olá tudo bem Quando carrego um XML na DLL através do metodo NFE_CarregarXML https://acbr.sourceforge.io/ACBrLib/NFE_CarregarXML.html ele retorna 0 indicando que o método foi aceito em seguida consulto o ultimo retorno e obtenho 0 NFe(s) Carregada(s) fiz a leitura em outro post que que menciona que a biblioteca ainda nao tem a possibilidade de consultar as nfe carregadas. Neste eu nao consigo chamar NFE_ObterXml que seria o proximo passo onde eu preciso passar o AIndex que é o index da nfe na memoria se eu passaria 0 no index e chamar recebo "Falha ao obter o xml (retObterXml -13): Indice informado não encontrado" o problema estaria em algo no NFE_CarregarXML ? Ambiente: node + MT + ACBrNFe64.dll (0.4.6.265) NF.xml log-paranoico.txt
-
Se antes de consultar o serviço eu gravar a senha diretamente na dll ele aceita a senha https://acbr.sourceforge.io/ACBrLib/NFE_ConfigGravarValor.html const retNFE_ConfigGravarValor = await acbrNfe.lib.NFE_ConfigGravarValor(acbrNfe.handle, 'DFe', 'Senha', '123') let aloc_sResposta = Buffer.alloc(acbrNfe.buflength) let aloc_esTamanho = ref.alloc('int', acbrNfe.buflength) const retStatus = await acbrNfe.lib.NFE_StatusServico(acbrNfe.handle, aloc_sResposta, aloc_esTamanho) Com isso ele esta ignorando a senha do arquivo INI inicializado Isso se aplica somente a senha ou existe mais campos que precisam ser gravados desta forma?
-
As informações postadas aqui tem a intenção de ajudar alguém que passe pelo mesmo problema ao carregar um certificado digital A1 no acbrNfeLib64 (MT) O Problema da senha consegui resolver colocando somente senhas númericas no pfx exemplo 1234, desta forma quando inicializar o ini vai manter a senha original Agora estou tentando resolver o problema WebService Consulta Status serviço: - Inativo ou Inoperante tente novamente. Erro ao ler informações do Certificado. Provavelmente a senha está errada Error: 293601393 - error:11800071:PKCS12 routines::mac verify failure Tem um tópíco que me ajudou bastante este Mas notei que ele não foi finalizado Estou fazendo testes e assim que descobrir o motivo posto para que ajude mais pessoas que passem por este problema. o acbr em Delphi + Windows funcionava tranquilo esta questao. Mas na lib tem que se atentar a estes detalhes
-
Este tópico https://acbr.sourceforge.io/ACBrLib/DFe.html me ajudou a resolver o erro: "CarregarCertificadoDeDadosPFX" não implementado em: TDFeSSLCryptClass notei que a tag Senha no arquivo ini quando eu faço o inicializar na lib https://acbr.sourceforge.io/ACBrLib/NFE_Inicializar.html ele muda a senha parece que criptografa entao ja passo ela criptografada no arquivo INI , com isso o comando NFE_Inicializar não modifica a senha no ini mesmo assim recebo Falha ao obter o status do serviço (retStatus -10): WebService Consulta Status serviço: - Inativo ou Inoperante tente novamente. Erro ao ler informações do Certificado. Provavelmente a senha está errada Error: 293601393 - error:11800071:PKCS12 routines::mac verify failure em ambas as tags o erro é gerado DadosPFX ou ArquivoPFX *Peço desculpas se sai um pouco do tema inicial que era tag DadosPFX tipo de string* é que o motivo de eu querer saber o formato era que talvez eu pude-se contornar o erro Desde já muito obrigado pelo espaço aqui disponibilizado
-
Tentei passar a tag DadosPFX na libNfe64 com a openssl 3.1.3 x64 https://svn.code.sf.net/p/acbr/code/trunk2/DLLs/OpenSSL/3.1.3/x64/ no log nível 4, recebo: 18/01/24 05:59:01:820 - SetRetorno(-10, WebService Consulta Status serviço: - Inativo ou Inoperante tente novamente. "CarregarCertificadoDeDadosPFX" não implementado em: TDFeSSLCryptClass)
-
Olá tudo bem No arquivo .ini que carrego na libNfe possui sessão [DFe] tag DadosPFX qual o tipo de string devo passar na tag DadosPFX ou seja apos eu carregar o arquivo PFX para a memoria eu passo como UTF8, base64 qual o formato correto ?
-
[resolvido] Obrigado pela Ajuda Funcionou !
-
Olá tudo bem Dentro do arquivo ini eu coloco estas tags, extraidas da dll do acbrLibNfe64 [Emissor] [Principal] [Versao] [Sistema] [Email] [PosPrinter] [PosPrinter_Barras] [PosPrinter_QRCode] [PosPrinter_Logo] [PosPrinter_Gaveta] [PosPrinter_MPagina] [PosPrinter_Device] [Proxy] [SoftwareHouse] [DFe] [NFe] [DANFE] [DANFENFe] [DANFENFCe] Eu gostaria de saber se as tags de endereços dos enpoints, podem ser carregadas no mesmo arquivo INI exemplo estas ? [NFe_AC_P] [NFe_AC_H] [NFe_AL_P] [NFe_AL_H]
-
Olá tudo bem Sobre StdCall e Cdecl: Eu entendi que em node depende de onde compilo a aplicação * windows = StdCall * linux = Cdecl tentei inverter isso mas nao vi diferença no comportamento Atualmente estou testando em StdCall + windows + MT (MultiThread) Sobre o cache na dll: Tentei localizar algum arquivo ini com as tags que vinham no cache mas não encontrei mesmo com o auxilio do pesquisador de arquivos "Everything" A solução que encontrei foi carregar o arquivo INIsempre na inicialização. [RESOLVIDO] Muito Obrigado pela ajuda, se precisar de algo com node não exite em me chamar, estou aqui para ajudar tambem Obrigado
-
eu sei que esta com cache por que sempre que o ini é gerado vem com a tag preenchida como fiz la atras, ja reinicie a maquina e persiste [Sistema] Nome=testeRenan
-
Estou usando acbrLibNfe + node + openssl 1.1.x + MT + Cdecl ou StdCall (testei ambos) Carrego a lib atraves de uma função igual a do DEMO node const path = require('path') const ffi = require('ffi-napi') const ref = require('ref-napi') const fs = require('fs') import { Request, Response } from 'express' import { checkVersion } from '../utils/checkVersion' // const pathDllACBrLibNFeCdecl = path.join(__dirname, '../../../libs/acbr/ACBrLibNFe/bin/MT/Cdecl/ACBrNFe64.dll') // 64 bits const pathDllACBrLibNFeStdCall = path.join(__dirname, '../../../libs/acbr/ACBrLibNFe/bin/MT/StdCall/ACBrNFe64.dll') // 64 bits //export const buflength = 1024 * 16 export const buflength = 256 export const getLibNfe = async (): Promise<any> => { const libm = await ffi.Library(pathDllACBrLibNFeStdCall, { NFE_Inicializar: ['int', ['pointer', 'string', 'string']], NFE_Finalizar: ['int', ['pointer']], NFE_CarregarINI: ['int', ['pointer', 'string']], NFE_StatusServico: ['int', ['pointer', 'string', 'string']], NFE_UltimoRetorno: ['int', ['pointer', 'string', 'string']], NFE_Nome: ['int', ['pointer', 'string', 'string']], NFE_Versao: ['int', ['pointer', 'string', 'string']], NFE_ConfigLer: ['int', ['pointer', 'string']], NFE_ConfigGravar: ['int', ['pointer', 'string']], NFE_ConfigLerValor: ['int', ['pointer', 'string', 'string', 'string', 'string']], NFE_ConfigGravarValor: ['int', ['pointer', 'string', 'string', 'string']], NFE_ConfigImportar: ['int', ['pointer', 'string']], NFE_ConfigExportar: ['int', ['pointer', 'string', 'string']], NFE_ObterCertificados: ['int', ['pointer', 'string', 'string']], NFE_CarregarXML: ['int', ['pointer', 'string']], NFE_SalvarPDF: ['int', ['pointer', 'string', 'string']] }) return libm } Em seguida inicio e gero o INI usando esta rotina export const statusServico = async (certificate: TPfx): Promise<any> => { const lib = await getLibNfe() let handle = ref.alloc('pointer') let aloc_sResposta = Buffer.alloc(buflength) let aloc_esTamanho = ref.alloc('int', buflength) handle = await inicializarBiblioteca(lib, handle) await configGravar(lib, handle) } export const configGravar = async (lib: any, handle: any): Promise<any> => { const dateAndHoursAA_MM_DD_HH_MM_SS = new Date().toISOString().replace(/:/g, '-') const iniPathGravar = path.resolve(__dirname, `../../logsIni/ACBrNFeServicosGravar${dateAndHoursAA_MM_DD_HH_MM_SS}.ini`) // NFE_ConfigGravar const retNFE_ConfigGravar = await lib.NFE_ConfigGravar(handle, iniPathGravar) if (retNFE_ConfigGravar !== 0) { const errorMessageResult = await errorMessage(handle, lib, retNFE_ConfigGravar) console.log('errorMessageResult: ', errorMessageResult) throw new Error(errorMessageResult) } return '' } async function inicializarBiblioteca(lib: any, handle: any): Promise<any> { const arqConfigFile = '' const retInicializar = await lib.NFE_Inicializar(handle, arqConfigFile, '') if (retInicializar !== 0) { throw new Error(`Falha ao inicializar: ${errorMessage(handle, lib, retInicializar)}`) } return ref.readPointer(handle, 0, buflength) } async function finalizarBiblioteca(lib: any, handle: any): Promise<any> { await lib.NFE_Finalizar(handle) } o que acho estranho é que sempre o ini gerado é igual ao anterior mesmo que eu reinicie a maquina parece que fica gravadoAnalisei a documentação mas não vejo o motivoremovi os ini das pastas para nao carregar automatico mas o cache continuao que me aconselhariamMuito obrigadohttps://acbr.sourceforge.io/ACBrLib/NFE_Inicializar.html o metodo que uso para pegar as configurações da dll e gerar o ini é NFE_ConfigGravar
-
Muito Obrigado Imaginei tambem, o lance é preenchimento correto Gratidão pela ajuda, excelente semana!
-
@Renato Rubinho essa rotina funciona porém quando chamo acbrboleto.imprimir; ele vai pra unit ACBrBoletoFCFR.pas dentro desta unit na linha 603 o componente gera novamente a linha digitavel com base no codigo de barras entao acredito que eu tenha que informar o [codigo de barras] no componente sera que existe esta propriedade no componente? Muito Obrigado !
-
Olá Uso o acbrboleto para impressão do boleto A parte de envio por webservice faço por uma classe interna minha Ai surge a necessidade de eu informar [linha-digitada] e [codigo-de-barras] O webservice do banco me retorna estes dois campos na api. É possivel eu informar eles no titulo? tipo assim titulo.LinhaDigitada := trim(cds.fieldbyname('BOL_DIGITA').asstring); titulo.CodigoBarras := trim(cds.fieldbyname('BOL_COD_BARRAS').asstring);
-
https://youtu.be/YV8UpxrZvWQ Gravei um video enisnando todas as marcas e modelos a configurar no exemplo uso dimep mas funciona todas as marcas
-
Achei que o prazo era 24 horas ao inves de 2 horas Então é isso passou 2 horas não cancela Obrigado por compartilhar!
-
Recentemente MATO GROSSO DO SUL (MT) comecou a retornar este erro: 501 Rejeicao: Prazo de cancelamento superior ao previsto na Legislacao Mesmo que eu espere apenas 10 minutos o erro é retornado, Seria erro da receita de MT? XML envio do evento: <envEvento xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00"> <idLote>1911190813</idLote> <evento xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00"> <infEvento Id="ID1101115119111289989900010555001000057425183210966601"> <cOrgao>51</cOrgao> <tpAmb>1</tpAmb> <CNPJ>12899899000105</CNPJ> <chNFe>51191112899899000105550010000574251832109666</chNFe> <dhEvento>2019-11-19T08:13:33-03:00</dhEvento> <tpEvento>110111</tpEvento> <nSeqEvento>1</nSeqEvento> <verEvento>1.00</verEvento> <detEvento versao="1.00"> <descEvento>Cancelamento</descEvento> <nProt>151190062305318</nProt> <xJust>CANCELAMENTO DE NFE SOLICITADO VIA SOFTWARE</xJust> </detEvento> </infEvento> <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> <SignedInfo> <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> <Reference URI="#ID1101115119111289989900010555001000057425183210966601"> <Transforms> <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> </Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <DigestValue>z9bHNp380ZNe1cuO/aLQlGPs6Ak=</DigestValue> </Reference> </SignedInfo> <SignatureValue> QtqC8t5etgZRyU427kSwRc0nXUYxvgjhIS/hgDdk76SDJ2JUJGAuZbKrIVVj+FretdSiDXVtkKY1siTNU9YEKKFggGyBfwbxZxwpdo4n1ASRQB9bKCElKh2JEtLxL4y9S5+JkND091Fr0PJpoc5acz3u24DAi/70a1WoPo1qBWU+mooGh9segEuvw+O9KBNuhTCea7KvlJnQ5u9CIdvt+ELj6N6b7nPVvRJ9cQhym//JxGWGlHNxJ5vjkl4e1tCFgm6VS2Nar0QF4wVupnehDQzNsHeAp9vGhS/IROlSjluxY9rbWkBxoy304lt2NdeTXrGJ811Hcnry2aiycQXLtw== </SignatureValue> <KeyInfo> <X509Data> <X509Certificate> MIIH2jCCBcKgAwIBAgIIKOYZAQJRwaQwDQYJKoZIhvcNAQELBQAwgYkxCzAJBgNVBAYTAkJSMRMwEQYDVQQKEwpJQ1AtQnJhc2lsMTQwMgYDVQQLEytBdXRvcmlkYWRlIENlcnRpZmljYWRvcmEgUmFpeiBCcmFzaWxlaXJhIHYyMRIwEAYDVQQLEwlBQyBTT0xVVEkxGzAZBgNVBAMTEkFDIFNPTFVUSSBNdWx0aXBsYTAeFw0xOTAxMDgxNDE5NDNaFw0yMDAxMDQxNTE5MDBaMIHwMQswCQYDVQQGEwJCUjETMBEGA1UEChMKSUNQLUJyYXNpbDE0MDIGA1UECxMrQXV0b3JpZGFkZSBDZXJ0aWZpY2Fkb3JhIFJhaXogQnJhc2lsZWlyYSB2MjESMBAGA1UECxMJQUMgU09MVVRJMRswGQYDVQQLExJBQyBTT0xVVEkgTXVsdGlwbGExGjAYBgNVBAsTEUNlcnRpZmljYWRvIFBKIEExMUkwRwYDVQQDE0BQSVUgUElVIERJU1RSSUJVSURPUkEgREUgRlJVVEFTIEUgTEVHVU1FUyBFSVJFTEkgOjEyODk5ODk5MDAwMTA1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoKV37TTGAx8Kb7gq7fFAqplOeA5aknkD/FDm5k6x2aTlLtwQxpfnPwhZcEuMgjYo0yPA871ryjzJsNu6mJJ0fvYhqITgch7BUCDK93XLf9dN2H5hKEQlM3+DB0uL7o6dmC/wDUJWnHrR6JvBz+WFQJJQw0GybNULk6vw7Wodj54Hkjdi1ABKWlr1ic3+tgt99pNTY0ujdDSxrJirwsLaUT23yyXdWeUf7EXS49m3mMaaHY9NjXFfBAUC92paxCuouWLBPiXmB1oVoYBjmhactgQksKvED3j/+IpxytiiTE/WFLX0sTc6SmSWajBUBs8Rfr6Wyu5hVtdmnIe94fxOiQIDAQABo4IC2zCCAtcwVAYIKwYBBQUHAQEESDBGMEQGCCsGAQUFBzAChjhodHRwOi8vY2NkLmFjc29sdXRpLmNvbS5ici9sY3IvYWMtc29sdXRpLW11bHRpcGxhLXYxLnA3YjAdBgNVHQ4EFgQUYRXlwFMWL5a00qM9Wki7Ja7I1DowCQYDVR0TBAIwADAfBgNVHSMEGDAWgBQ1rjEU9l7Sek9Y/jSoGmeXCsSbBzBeBgNVHSAEVzBVMFMGBmBMAQIBJjBJMEcGCCsGAQUFBwIBFjtodHRwczovL2NjZC5hY3NvbHV0aS5jb20uYnIvZG9jcy9kcGMtYWMtc29sdXRpLW11bHRpcGxhLnBkZjCB3gYDVR0fBIHWMIHTMD6gPKA6hjhodHRwOi8vY2NkLmFjc29sdXRpLmNvbS5ici9sY3IvYWMtc29sdXRpLW11bHRpcGxhLXYxLmNybDA/oD2gO4Y5aHR0cDovL2NjZDIuYWNzb2x1dGkuY29tLmJyL2xjci9hYy1zb2x1dGktbXVsdGlwbGEtdjEuY3JsMFCgTqBMhkpodHRwOi8vcmVwb3NpdG9yaW8uaWNwYnJhc2lsLmdvdi5ici9sY3IvQUNTT0xVVEkvYWMtc29sdXRpLW11bHRpcGxhLXYxLmNybDAOBgNVHQ8BAf8EBAMCBeAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMIHDBgNVHREEgbswgbiBIGF0ZW5kaW1lbnRvQGJhbmFuYXNwaXVwaXUuY29tLmJyoCYGBWBMAQMCoB0TG0VESUxTT04gQU5UT05JTyBERSBPTElWRUlSQaAZBgVgTAEDA6AQEw4xMjg5OTg5OTAwMDEwNaA4BgVgTAEDBKAvEy0yNjAzMTk4Mjk5MzMwNjQ0MTA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDCgFwYFYEwBAwegDhMMMDAwMDAwMDAwMDAwMA0GCSqGSIb3DQEBCwUAA4ICAQBS/Gi0L6oAKoggDM9VGZ1OuH4cHZNl/PelFg0ICwm5Vttkw9HVqDquzKNWB//u9ECf/ifELh6sIDpHnXcih8At5PjB55ONC0iA4A0KxiwACCcy2pCMbeSv2MtsmOFrREHdrGl+rbx+P15lnHLpg3xL8qOPTrM1V+0OlvpkAPnVXPjqxGRpb6zffVndlxNEgx1DmmX6kri1qo/k+T5YAJBnheNuSk9XufM8xuhpLfaVTvyb72ZI1TZbOm14VrDGa/2IN6K+I/Q+uWxXsgzticTVl9KDEwDrJHghrOxgPCsT52C8KFkbNeFAK6F0fWBTi2vWuQ9s8/DXeyCNOLnL7PJ0DKc58t+xqNAfrVnuuptjiEGmJSUTSTZDi8yDzI5fYytTY1bvme9UjtSCigYHI6Da7BacJm29lvwPNV1ymhIUQGK4C46mKDoJGE7p6k9HHgm7tFY46ARdmeXvgYx5I2fnp9tQ/ucLKTWFiKgL0KbFQHBTcbN3JBNYxrgj5U0I27mJ9PpN9sEJPjeGUPbp68DPARtQHPlCW2gVwwqxHkE58zvICqGPdeSZBsRAw7e81sGK+Jl3SSWu9GPKiMDbXW/ApfcriPcRPJpBn6rUzaZ4v1Cc1uHqjyNun+JJu2tlWF325ESCgdyDSJtp9rkdghTOhPWr+r2dLw+MHrDd4Wb+/g== </X509Certificate> </X509Data> </KeyInfo> </Signature> </evento> </envEvento> XML Retorno <retEnvEvento versao="1.00"> <idLote>1911190813</idLote> <tpAmb>1</tpAmb> <verAplic>MT_A2RL-4.00</verAplic> <cOrgao>51</cOrgao> <cStat>128</cStat> <xMotivo>Lote de Evento Processado</xMotivo> <retEvento versao="1.00"> <infEvento> <tpAmb>1</tpAmb> <verAplic>MT_A2RL-4.00</verAplic> <cOrgao>51</cOrgao> <cStat>501</cStat> <xMotivo> Rejeicao: Prazo de cancelamento superior ao previsto na Legislacao </xMotivo> <chNFe>51191112899899000105550010000574251832109666</chNFe> <tpEvento>110111</tpEvento> <nSeqEvento>1</nSeqEvento> <dhRegEvento>2019-11-19T07:14:28-04:00</dhRegEvento> </infEvento> </retEvento> </retEnvEvento>
-
Voce tem razao, obrigado RESOLVIDO MUito bom Funcionou 100%
-
Consegui modificar o erro Porem agora recebo o erro Resolvendo postarei a resposta aqui, se alguem tiver uma resposta é bem vindo muito obrigado
-
Olá Tudo bem ! Quando valido a NFe recebe este erro 35190915168524000163550010000005831040097185-nfe.xml Antes funcionava, seria alguma propriedade do componente que preciso alterar algo novo que entrou em vigor e eu nao notei?
-
Verdade, é assim que ele faz, muito OBRIGADO MESTRE!
-
Boa tarde Eu vi um exemplo na web de um programador que montava uma NFe contendo a quantidade de caixas no item, era mais ou menos isso. // Por Unidade Produto.Prod.uCom := 'UN'; Produto.Prod.qCom := 10; Produto.Prod.vUnCom := 2; Produto.Prod.vProd := 20; // Por Caixas Produto.Prod.uCX := 'CX'; Produto.Prod.qCX := 5; Produto.Prod.vUnCX := 4; Produto.Prod.vCaixa := 20; Alguem ja informou na mesma nota UNIDADES e CAIXAS ou sabe me dar uma dica de qual tag usar ?