-
Total de ítens
21 -
Registro em
-
Última visita
Últimos Visitantes
O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.
Rafael Chuede's Achievements
-
Agora o paraná está exigindo essa porcaria de hash csrt até para homologação...
-
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.
-
no lazbuild é só usar WIDGETSET="nogui". no lazarus IDE não descobri ainda.
-
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.
-
Programa crashando ao usar lib ConsultaCNPJ e NFe
Rafael Chuede replied to Rafael Chuede's tópico in ACBrLIB
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. -
Programa crashando ao usar lib ConsultaCNPJ e NFe
Rafael Chuede replied to Rafael Chuede's tópico in ACBrLIB
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 -
Programa crashando ao usar lib ConsultaCNPJ e NFe
Rafael Chuede replied to Rafael Chuede's tópico in ACBrLIB
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()); } -
Programa crashando ao usar lib ConsultaCNPJ e NFe
Rafael Chuede replied to Rafael Chuede's tópico in ACBrLIB
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"; } -
Programa crashando ao usar lib ConsultaCNPJ e NFe
Rafael Chuede replied to Rafael Chuede's tópico in ACBrLIB
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. -
Programa crashando ao usar lib ConsultaCNPJ e NFe
Rafael Chuede replied to Rafael Chuede's tópico in ACBrLIB
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 -
Programa crashando ao usar lib ConsultaCNPJ e NFe
Rafael Chuede replied to Rafael Chuede's tópico in ACBrLIB
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", ""); -
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?
-
IBS/CBS nao informado. como preencher campos no .ini?
Rafael Chuede replied to Rafael Chuede's tópico in ACBrNFe
Obrigado era isso mesmo que eu precisava, por algum motivo passei 50 vezes na documentação e não vi isso. -
IBS/CBS nao informado. como preencher campos no .ini?
Rafael Chuede replied to Rafael Chuede's tópico in ACBrNFe
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? -
IBS/CBS nao informado. como preencher campos no .ini?
Rafael Chuede replied to Rafael Chuede's tópico in ACBrNFe
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.
