Ir para conteúdo
  • Cadastre-se

dev botao

ACBrLib download XML(NFE_DistribuicaoDFePorChave) erro -10


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

Recommended Posts

  • Membros Pro
Postado

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)
        }
    })
}

  • Consultores
Postado

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"

  • Membros Pro
Postado
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.

  • Moderadores
Postado
56 minutos atrás, DouglasDll disse:

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

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

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

  • Membros Pro
Postado
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.

  • Consultores
Postado
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.
  • Membros Pro
Postado
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"

  • Membros Pro
Postado
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?

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

  • Membros Pro
Postado
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. 

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

  • Administradores
Postado

Obrigado por reportar.

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

Consultora ACBr Pro

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 !!

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

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...