Ir para conteúdo
  • Cadastre-se

dev botao

ACBrLib download XML(NFE_DistribuicaoDFePorChave) erro -10


DouglasDll
Ver Solução Respondido por BigWings,
  • Este tópico foi criado há 746 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Bom dia, 

Primeiramente estou utilizando linux como SO e nodejs como linguagem.

Não estou conseguindo baixar o XML através da chave. Tenho apenas retorno= -10 da chamada NFE_DistribuicaoDFePorChave. 
Segue abaixo como está a estrutura da chamada

nfeController // 

 

const nfe = require('nfe.js') 

function getNotaFiscalByChave(CHAVE_XML){
    let inicializar = nfe.NFE_Inicializar('', '')
    let retornoCerto = nfe.NFE_ConfigGravarValor()
    let NOF_XML = await nfe.NFE_DistribuicaoDFePorChave(50, CNPJ, CHAVE_XML)    
}

meu arquivo nfe

const path = require('path')
var pathACBrLibNFe = path.join(__dirname, 'libACBrNFe64');

const ffi = require('ffi-napi')
var ref = require('ref-napi');

var tint = ref.refType('int');
var tlong = ref.refType('long');
var tchar = ref.refType('char *');
var tshort = ref.refType('short');
var tvoid = ref.refType('void');
var buflength = 256;

var ACBrLibNFE = ffi.Library(pathACBrLibNFe, {
    NFE_Inicializar: ['int', ['string', 'string']],
    NFE_CarregarXML: ['int', ['string']],
    NFE_ObterXml: ['int', ['int', tchar, tint]],
    NFE_ObterIni: ['int', [tint, 'string']],
    NFE_Consultar: [tchar, ['string', 'bool']],
    NFE_DistribuicaoDFePorChave: ['int', ['int', 'string', 'string', tchar, tint]],
    NFE_ConfigGravarValor: ['int', ['string', 'string', 'string']],
    NFE_ConfigGravar: ['int', ['string']]
});


var NFE_Inicializar = function (eArqConfig, eChaveCrypt) {
    return ACBrLibNFE.NFE_Inicializar(eArqConfig, eChaveCrypt)
}

var NFE_ConfigGravarValor = function () {
         try {
            let pathDFE = __dirname + '/certificado.pfx'
            let retorno = ACBrLibNFE.NFE_ConfigGravarValor('DFe', 'ArquivoPFX', pathDFE)
            retorno = ACBrLibNFE.NFE_ConfigGravarValor('DFe', 'Senha', '*senhacertificado*')
            retorno = ACBrLibNFE.NFE_ConfigGravar('')

            return true
        } catch (error) {
            throw new Error(error)
        }
    })
}

var NFE_DistribuicaoDFePorChave = function (AcUFAutor, eCNPJCPF, eChave) {
    var aloc_sValor = Buffer.alloc(buflength);
    var aloc_esTamanho = ref.alloc('int', buflength)

    return new Promise(async (resolve, reject) => {
        try {
            ACBrLibNFE.NFE_DistribuicaoDFePorChave.async(AcUFAutor, eCNPJCPF, eChave, aloc_sValor, aloc_esTamanho, function (err, Result) {
                try {
                    if (err)
                        throw new Error(err)

                    if (Result !== 0) {
                        reject({ success: false, message: getResultMessage(Result), data: false })
                    } else {
                        resolve({ success: true, message: 'Ok', data: false })
                    }

                } catch (errorInterno) {
                    reject(errorInterno)
                }
            })
        } catch (error) {
            reject(error)
        }
    })
}

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia,

Eu não trabalho com a Lib, mas retorno negativo e principalmente -10 significa que houve um erro ao tentar executar a rotina de baixar esse documento.

1) Esse documento tem evento registrado de manifestação do destinatário para ele ?

2) Esse recurso de download por chave deve ser utilizado só em caso esporádicos conforme a NT, se não irá ter consumo indevido, e ele só irá liberar o documento quando houver um NSU do documento completo liberado para essa chave.

verifique essas 2 questões no seu fluxo de operação

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
20 minutos atrás, Victor H. Gonzales - Panda disse:

Bom dia,

Eu não trabalho com a Lib, mas retorno negativo e principalmente -10 significa que houve um erro ao tentar executar a rotina de baixar esse documento.

1) Esse documento tem evento registrado de manifestação do destinatário para ele ?

2) Esse recurso de download por chave deve ser utilizado só em caso esporádicos conforme a NT, se não irá ter consumo indevido, e ele só irá liberar o documento quando houver um NSU do documento completo liberado para essa chave.

verifique essas 2 questões no seu fluxo de operação

Bom dia, 

No outro software que usamos via Delphi estamos conseguindo baixar normal essa nota.

 

 

19 minutos atrás, José M. S. Junior disse:

Bom dia,

No caso de código retorno negativo -10 é necessário ler o retorno para obter o retorno de rejeição que está ocorrendo.

No exemplo para nodejs: http://svn.code.sf.net/p/acbr/code/trunk2/Projetos/ACBrLib/Demos/Node.js/NFe/lib_test_teste-acbrlibnfe.js não encontrei. Pode me auxiliar como devo realizar.

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
5 minutos atrás, BigWings disse:

O nome do arquivo não devia ser algo como 'libacbrnfe64.so' ?

Olá.. eu não havia percebido, ainda sim deu o mesmo erro. Eu não havia me atentado, pois no ACBrLibNFE.NFE_Inicializar(eArqConfig, eChaveCrypt) o retorno era 0 e conforme a documentação significava que foi iniciado corretamente.

Link para o comentário
Compartilhar em outros sites

  • Consultores
27 minutos atrás, DouglasDll disse:

No exemplo para nodejs: http://svn.code.sf.net/p/acbr/code/trunk2/Projetos/ACBrLib/Demos/Node.js/NFe/lib_test_teste-acbrlibnfe.js não encontrei. Pode me auxiliar como devo realizar.

Acho que o que quer é as chamadas para o método NFE_UltimoRetorno...

Como diz a documentação:

https://acbr.sourceforge.io/ACBrLib/NFE_UltimoRetorno.html

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Membros Pro
7 minutos atrás, DouglasDll disse:

Vou testar.

Olá,

segue abaixo minha implemetação do NFE_UltimoRetorno.

 

var ACBrLibNFE = ffi.Library(pathACBrLibNFe, {
    NFE_UltimoRetorno: ['int', ['string', 'string']], // adicionado
});

var NFE_UltimoRetorno = function () {
    return new Promise(async (resolve, reject) => {
        try {
            var aloc_sValor = Buffer.alloc(buflength);
            var aloc_esTamanho = ref.alloc('int', buflength);
            ACBrLibNFE.NFE_UltimoRetorno.async(aloc_sValor, aloc_esTamanho, function (error, Result) {
                if (error)
                    throw error;

                let retorno = aloc_sValor.toString()

                if (Result !== 0) {
                    reject({ success: false, message: getResultMessage(Result) });
                } else {
                    resolve({ success: true, message: 'Ok', data: aloc_sValor, tamanho: aloc_esTamanho });
                }

            })
        } catch (error) {
            reject({ success: false, message: e.message, data: false });
        }
    })
}

 

o Result veio como -10 também. Eu adicionei  let retorno = aloc_sValor.toString() para ver o retorno pois haviam dados nessa variável.  A variável retorno apresentou a seguinte mensagem: "Nenhum arquivo de Schema encontrado na pasta: \n/home/developer/.asdf/installs/nodejs/14.4.0/bin/Schemas/" 

Adicionei a pasta schemas no na função: NFE_ConfigGravarValor 

    let pathNFE = path.resolve(__dirname, 'Schemas')
    retornoa = ACBrLibNFE.NFE_ConfigGravarValor('NFe', 'PathSchemas', pathNFE);

 

Após isso continua retornando o valor -10 na função NFE_DistribuicaoDFePorChave. Na função NFE_UltimoRetorno  o retorno continua -10, porém o erro foi outro:

WebService Distribuição de DFe:\r\n- Inativo ou Inoperante tente novamente.\n\"CarregarCertificadoDeDadosPFX\" não implementado em: TDFeSSLCryptClass

Fiz o download da nova lib através do link: 

e substitui no sistema, porém o erro foi o mesmo: "WebService Distribuição de DFe:\r\n- Inativo ou Inoperante tente novamente.\n\"CarregarCertificadoDeDadosPFX\" não implementado em: TDFeSSLCryptClass"

Link para o comentário
Compartilhar em outros sites

  • Moderadores
  • Solution
1 hora atrás, DouglasDll disse:

"CarregarCertificadoDeDadosPFX\" não implementado em: TDFeSSLCryptClass

Está faltando configurar as propriedades SSLLib:

https://acbr.sourceforge.io/ACBrLib/DFe.html

No caso do Linux configure pra OpenSSL.

  • Curtir 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
5 horas atrás, DouglasDll disse:

Vou configurar.

Boa tarde,

conseguir fazer a busca do XML, 

"[DistribuicaoDFe]\nCStat=138\nCUF=0\nDhRecbto=\nMsg=Documento localizado\nVerAplic=1.5.9\nVersao=1.01\nXMotivo=Documento localizado\narquivo=50220410652176000181550010000350001000000018-resNFe.xml\ndhResp=06/04/2022 14:00:25\nindCont=0\nmaxNSU=\ntpAmb=2\nultNSU=\n\n[ResD"

Mas não consigo encontrar o arquivo no linux. Há como direcionar o path de onde eu desejo que ele seja salvo?

Link para o comentário
Compartilhar em outros sites

  • Moderadores
32 minutos atrás, DouglasDll disse:

conseguir fazer a busca do XML, 

"[DistribuicaoDFe]\nCStat=138\nCUF=0\nDhRecbto=\nMsg=Documento localizado\nVerAplic=1.5.9\nVersao=1.01\nXMotivo=Documento localizado\narquivo=50220410652176000181550010000350001000000018-resNFe.xml\ndhResp=06/04/2022 14:00:25\nindCont=0\nmaxNSU=\ntpAmb=2\nultNSU=\n\n[ResD"

Mas não consigo encontrar o arquivo no linux. Há como direcionar o path de onde eu desejo que ele seja salvo?

Boa tarde, os arquivos são gravados no diretório configurado em Download.PathDownload 

https://acbr.sourceforge.io/ACBrLib/ConfiguracoesdaBiblioteca16.html

Mas sempre bom validar pelo retorno para o caso de falha ou rejeição.

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
18 horas atrás, José M. S. Junior disse:

Boa tarde, os arquivos são gravados no diretório configurado em Download.PathDownload 

https://acbr.sourceforge.io/ACBrLib/ConfiguracoesdaBiblioteca16.html

Mas sempre bom validar pelo retorno para o caso de falha ou rejeição.

Bom dia,

Segue como realizei a configuração:

let pathXML = path.resolve(__dirname, 'XML')
let retorno = ACBrLibNFE.NFE_ConfigGravarValor('Geral', 'Download.PathDownload', pathXML);

porém o retorno está sendo -3. 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
55 minutos atrás, DouglasDll disse:

Bom dia,

Segue como realizei a configuração:

let pathXML = path.resolve(__dirname, 'XML')
let retorno = ACBrLibNFE.NFE_ConfigGravarValor('Geral', 'Download.PathDownload', pathXML);

porém o retorno está sendo -3. 

Bom dia,

A seção na configuração deve ser NFe, conforme se encontra no manual:

ACBrLibNFE.NFE_ConfigGravarValor('NFe', 'Download.PathDownload', pathXML);

Consultor SAC ACBr

José Junior
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

  • Administradores

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

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