Ir para conteúdo
  • Cadastre-se

Rafael Chuede

Membros
  • Total de ítens

    21
  • Registro em

  • Última visita

Tudo que Rafael Chuede postou

  1. Agora o paraná está exigindo essa porcaria de hash csrt até para homologação...
  2. Estou tendo problema para enviar NFE com o csrt cadastrado no site da sefaz, tenho a resposta: cStat:978 Motivo:Hash do CSRT diverge do calculado o hashcsrt gerado no xml é : ZiHliiErI7yqzQMPhlbWLqOvLb0= mas usei esse script python para calcular o hash e obtive o resultado: H8MM+n33A4G7pIM5MxFTbiYDHac= import hashlib import base64 def gerar_hash_csrt(csrt, chave_nfe): # 1. concatena CSRT + chave da NFe dados = (csrt + chave_nfe).encode("utf-8") # 2. calcula SHA1 sha1 = hashlib.sha1(dados).digest() # 3. converte para Base64 hash_csrt = base64.b64encode(sha1).decode("utf-8") return hash_csrt # ===== EXEMPLO ===== csrt = "VCKHBU34HHM115BMPMXBB5WM8QPZ3ZLT6XJQ" chave = "41260303307205000102550010000003451301018538" hash_gerado = gerar_hash_csrt(csrt, chave) print("Hash CSRT:", hash_gerado) Alguem tem alguma ideia do que pode estar acontecendo, se a lib está calculando errado ou eu estou fazendo alguma coisa errada.
  3. no lazbuild é só usar WIDGETSET="nogui". no lazarus IDE não descobri ainda.
  4. Já tentei compilar pelo lazarus IDE selecionando "tipo Widget LCL" como qt6, gtk e NoGUI mas o resultado parece aleatório, as vezes fica sem dependencias de gráficos (qt, gtk) e as vezes fica com. Verifico isso pelo ldd no binario gerado. Tentei pelo lazbuild também, mas não consigo usar o NoGUI. Preciso ficar sem dependencias de qt pois isso faz o programa crashar ao usar juntamente com a biblioteca acbrlibNFe que esta compilada com qt6.
  5. Compilei a versão Console MT da lib consulta CNPJ e está funcionando. Só fico em duvida se conseguirei usar as outras libs ACBr junto futuramente mas obrigado.
  6. Compilei somente a lib consultacnpj usando gtk3 ao inves de qt6 e nao tenho mais o crash... mas preciso que as duas libs sejam compiladas com qt6 o que posso fazer? nem sei por que a lib consultacnpj precisa de qt ou gtk mas enfim
  7. Nesse código o método Versao() está assim: std::string ACBrConsultaCNPJ::Versao() const { CNPJ_Versao method; #if defined(ISWINDOWS) method = reinterpret_cast<CNPJ_Versao>(GetProcAddress(nHandler, "CNPJ_Versao")); #else method = reinterpret_cast<CNPJ_Versao>(dlsym(nHandler, "CNPJ_Versao")); #endif std::string buffer(BUFFER_LEN, '\0'); long len = BUFFER_LEN; const int ret = method(this->libHandler, buffer.data(), &len); CheckResult(ret); return ProcessResult(buffer, len); } Mas ja testei com mais ou menos igual você recomendou: void ACBrConsultaCNPJ::resolveSymbols() { CNPJ_InicializarMT = (CNPJ_InicializarPtr)DLSYM(dllHandle, "CNPJ_Inicializar"); CNPJ_FinalizarMT = (CNPJ_FinalizarPtr) DLSYM(dllHandle, "CNPJ_Finalizar"); CNPJ_VersaoMT = (CNPJ_VersaoPtr) DLSYM(dllHandle, "CNPJ_Versao"); } void ACBrConsultaCNPJ::load(const std::string &libPath, const std::string &iniPath, const std::string &cryptKey) { unload(); dllHandle = DLOPEN(libPath.c_str()); if (!dllHandle) { throw std::runtime_error(std::string("Falha ao carregar ") + libPath + ": " + dlerror()); } resolveSymbols(); int ret = CNPJ_InicializarMT(&cnpjHandle, iniPath.c_str(), cryptKey.c_str()); } std::string ACBrConsultaCNPJ::versao() { if (!cnpjHandle) throw std::runtime_error("ACBrConsultaCNPJ não inicializado."); int bufferSize = 256; std::vector<char> buffer(bufferSize); int ret = CNPJ_VersaoMT(cnpjHandle, buffer.data(), &bufferSize); if (ret != 0) throw std::runtime_error("Erro ao chamar CNPJ_Versao: " + std::to_string(ret)); return std::string(buffer.data()); }
  8. Meu código esta usando as duas libs MT 64 bit com esse codigo simples, o programa da seg fault após exibir a versão. Se eu comentar o construtor de qualquer uma lib a outra funciona sem seg fault. Alguém aqui está usando essas duas libs juntas com c++ no linux? #include "ACBrNFe.h" #include "ACBrConsultaCNPJ.h" #include <iostream> int main(){ ACBrConsultaCNPJ cnpj("cnpj.ini", ""); ACBrNFe nfe("nfe.ini", ""); std::cout << cnpj.Versao() << "\n"; }
  9. Não funcionou, não consigo entender como uma lib interfere na outra sendo que as duas são compiladas separadamente e os pacotes comuns são estaticamente compilado em cada lib. Já tentei usar a ACBrconsultaCNPJ ST junto da NFE MT mas o problema continua.
  10. Sim os handles são definidos na classe, para NFE estou usando as classes do demo, para o consulta CNPJ criei a classe wrapper baseada na NFE. as duas classes funcionam separadamente. Código da classe wrapper CNPJ apenas até a função versao: typedef int (*CNPJ_Inicializar)(void**, const char*, const char*); typedef int (*CNPJ_Finalizar)(void*); typedef int (*CNPJ_Versao)(void*, char*, long*); ACBrConsultaCNPJ::ACBrConsultaCNPJ(std::string eArqConfig, std::string eChaveCrypt) { #if defined(ISWINDOWS) #if defined(ENVIRONMENT32) nHandler = LoadLibraryW(L"ACBrConsultaCNPJ32.dll"); #else nHandler = LoadLibraryW(L"ACBrConsultaCNPJ64.dll"); #endif #else #if defined(ENVIRONMENT32) std::string path = "/usr/lib/libacbrlibconsultacnpj32.so"; #else std::string path = "/usr/lib/libacbrconsultacnpj64.so"; #endif nHandler = dlopen(path.c_str(), RTLD_LAZY); #endif if (!nHandler) throw std::runtime_error("Falha ao carregar biblioteca ACBrLibConsultaCNPJ"); CNPJ_Inicializar method; #if defined(ISWINDOWS) method = reinterpret_cast<CNPJ_Inicializar>(GetProcAddress(nHandler, "CNPJ_Inicializar")); #else method = reinterpret_cast<CNPJ_Inicializar>(dlsym(nHandler, "CNPJ_Inicializar")); #endif if (!method) throw std::runtime_error("Não encontrou função CNPJ_Inicializar na biblioteca"); const int ret = method(&this->libHandler, eArqConfig.c_str(), eChaveCrypt.c_str()); CheckResult(ret); } ACBrConsultaCNPJ::~ACBrConsultaCNPJ() { qDebug() << "~ACBrConsultaCNPJ() chamado"; if (!nHandler) return; CNPJ_Finalizar method; #if defined(ISWINDOWS) method = reinterpret_cast<CNPJ_Finalizar>(GetProcAddress(nHandler, "CNPJ_Finalizar")); #else method = reinterpret_cast<CNPJ_Finalizar>(dlsym(nHandler, "CNPJ_Finalizar")); #endif if (method) method(this->libHandler); #if defined(ISWINDOWS) FreeLibrary(nHandler); #else dlclose(nHandler); #endif qDebug() << "Finalização concluída"; } std::string ACBrConsultaCNPJ::Versao() const { CNPJ_Versao method; #if defined(ISWINDOWS) method = reinterpret_cast<CNPJ_Versao>(GetProcAddress(nHandler, "CNPJ_Versao")); #else method = reinterpret_cast<CNPJ_Versao>(dlsym(nHandler, "CNPJ_Versao")); #endif
  11. As duas libs que estou usando são MT, percebi aqui que só de instanciar as duas ja crasha, estou tentando usar as libs com QT framework e esse código faz crashar o programa, ao tentar escrever alguma coisa no LineEdit(widget TextField do qt): ACBrNFe *nfe = new ACBrNFe("nfe.ini", ""); std::string a = nfe->Versao(); nfe = NULL; ACBrConsultaCNPJ *cnpj = new ACBrConsultaCNPJ("cnpj.ini", "");
  12. Percebi que no linux, meu programa em C++ crasha quando tenho instanciado as duas libs ACBR ConsultaCNPJ e NFE e uso um método qualquer da lib CNPJ, como o Versão(). o Crash só acontece no Linux quando eu instacio a classe das duas libs e uso o método da lib consulta, quando eu uso apenas um método da lib NFE não crasha. Alguma ideia do por que isto pode estar acontecendo?
  13. Obrigado era isso mesmo que eu precisava, por algum motivo passei 50 vezes na documentação e não vi isso.
  14. Boa tarde consegui resolver o problema do crash que não mostrava o erro, era da classe de exemplo que tinha um errinho besta, mas agora eu estou quase conseguindo enviar a nfce mas tenho o erro: "nXMotivo=Total da BC do IBS e da CBS difere da soma dos itens. [vBCIBSCBS informado: 0.00, vBCIBSCBS calculado: 10.00]\ntpAmb=2" e não sei onde adicionar esse total, o erro é so esse mesmo pois quando edito o total em: <IBSCBSTot> <vBCIBSCBS>00.00</vBCIBSCBS> </IBSCBSTot> para 10.00no xml a nfce é autorizada, alguem consegue me ajudar a achar em qual componente do .ini eu devo colocar esse total?
  15. Achei que esses campos IBS/CBS substituiriam o ICMS E PISCOFINS mas ja tentei deixar tudo e continua nao enviando, só envia se retirar os campos relacionados a IBS/CBS.
  16. Tentei adicionar os campos mencionados no NFCE teste e retirar os campos ICMS PIS e COFINS mas sem sucesso, ao enviar o xml o programa apenas crasha sem exibir mais retorno. adicionei os campos logo apos [Produto001]: [IBSCBS001] CST=00 cClassTrib=000001 [gIBSCBS001] vBC=10.00 vIBS=0.00 [gIBSUF001] pIBSUF=0.00 vIBSUF=0.00 pDif=0.00 vDif=0.00 vDevTrib=0.00 pRedAliq=0.00 pAliqEfet=0.00 [gIBSMun001] pIBSMun=0.00 vIBSMun=0.00 pDif=0.00 vDif=0.00 vDevTrib=0.00 pRedAliq=0.00 pAliqEfet=0.00 [gCBS001] pCBS=0.00 vCBS=0.00 pDif=0.00 vDif=0.00 vDevTrib=0.00 pRedAliq=0.00 pAliqEfet=0.00 [gTribRegular001] CSTReg=00 cClassTribReg=000001 pAliqEfetRegIBSUF=0.00 vTribRegIBSUF=0.00 pAliqEfetRegIBSMun=0.00 vTribRegIBSMun=0.00 pAliqEfetRegCBS=0.00 vTribRegCBS=0.00 [gIBSCredPres001] cCredPres=000001 pCredPres=0.00 vCredPres=0.00 [gCBSCredPres001] cCredPres=000001 pCredPres=0.00 vCredPres=0.00
  17. Boa tarde, estou tentando emitir uma NFCe com ACBrLibNFe no ambiente de homologação da SEFAZ PR e tenho os retornos: "IBS/CBS nao informado." Cstat: 1115. Tentei adicionar os campos no .ini mas o xml gerado nao esta salvando esses campos por algum motivo. Coloquei os campos antes de [Total] e depois de PIS[001] e [COFINS001]: [CBS001] CST=01 vBC=10.00 pCBS=0.00 vCBS=0.00 [IBS001] CST=00 vBC=10.00 pIBS=0.00 vIBS=0.00
  18. Estou tentando usar a lib compilada AcbrLibNFE em c++ e consigo validar e enviar um xml previamente gerado mas percebi que não existem funções exportadas para a geração e preenchimente de um XML de NFCe ou NFe, qual o jeito certo de fazer isso? vi que é possivel fazer um .ini com as informações da nota e salvar o xml mas estou em duvida se esse é o jeito mais prático de fazer isso usando a lib em outras linguagens.
  19. Boa tarde, descobri o problema: eu estava compilando a lib para ST e o exemplo usa apenas MT. Outra coisa é que no exemplo esta faltando incluir a lib <memory> e colocar os metodos nome e versão começando com letra maiuscula, de resto o exemplo compila e executa certinho se tiver a lib multithread em /usr/lib. Gostaria tambem se for possivel dos headers para a lib ACBrConsultaCNPJ, ou uma explicação sobre como faze-los.
  20. Não tenho certeza mas acho que é multi thread, não teria um exemplo simples completo para eu testar a integração da lib? algo por exemplo que só retorne o status_serviço, tentei usar esse header e a biblioteca é inicializada mas ainda tenho problema com as funções. Não, para testes estou apenas tentando compilar com g++ cru mesmo.
  21. Estou tentando usar a ACBrLibNfe e/ou libacbrconsultacnpj em c++, mas não achei os arquivos .h, mesmo assim para libnfe tentei usar o exemplo do repositorio para c++ mas estou tendo erro Segmentation Fault, alguem pode me confirmar se o exemplo esta funcionando corretamente? estou usando linux 64.
×
×
  • 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.