Ir para conteúdo
  • Cadastre-se

andrejsilva

Membros
  • Total de ítens

    40
  • Registro em

  • Última visita

Tudo que andrejsilva postou

  1. Egon Bom dia Esse erro acontece porque o componente não encontrou o certificado, verifique se o caminho realmente esta correto.
  2. Italo Boa noite Tentei mas continua com o mesmo erro, a assinatura ocorre normalmente, tanto que a função que assina, salva o arquivo em disco, o arquivo fica com 7kb, com a assinatura correta. Ai quando vou chamar a função validar o conteudo da variavel AXML na função, esta com 5KB e a assinatura fica invalida. class function CTeUtil.Valida(const AXML: String; var AMsg: AnsiString; const APathSchemas: string): Boolean; Este é o resultado do validador da sefaz rs do conteudo AXML The 'http://www.w3.org/2000/09/xmldsig#:SignatureValue' element is invalid - The value 'Hpo+LEpY3PlOcTqpo51l8/GmmOQlreOFGCWXKyLw1MYeSyRkLIwZSQScOooXtU0OGyKvPnqcHluwVav8mRLGQmM7AwpcKP+FNTeQDIgrvQP069MWTdcBfJBcicdW78Y+cQyigqOAdsLPYx1KpAQFtb+Y0TpKL3a0AVfmqRh08TpkXtSp173XYvvne9g3uHOpuWAEi+UQJdYMwz4VNIYoqXodV1157W6NQQdt77ssnU3EjmRODaqyCE44rUvkiGi' is invalid according to its datatype 'http://www.w3.org/2000/09/xmldsig#:SignatureValueType' - Invalid length for a Base-64 char array. The 'http://www.w3.org/2000/09/xmldsig#:X509Certificate' element is invalid - The value 'MIIIADCCBeigAwIBAgIQPLHvXz9Lg6a3S73ygByUFTANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCQlIxEzARBgNVBAoTCklDUC1CcmFzaWwxSDBGBgNVBAsTP1NJTkNPUi1TUCAtIFNpbmRpY2F0byBkb3MgQ29ycmV0b3JlcyBkZSBTZWd1cm9zIG5vIEVzdGFkbyBkZSBTUDEVMBMGA1UEAxMMQUMgU0lOQ09SIEczMB4XDTEzMTAyMjA' is invalid according to its datatype 'http://www.w3.org/2001/XMLSchema:base64Binary' - Invalid length for a Base-64 char array. Não sei mas acho que pode ser algum problema com a propriedade XML da Classe Conhecimento. Ou em neste ponto em function TCTeW.GerarXml: boolean; na unit pcteCTeW neste ponto if FOpcoes.GerarTagAssinatura <> taNunca then begin Gerar := true; if FOpcoes.GerarTagAssinatura = taSomenteSeAssinada then Gerar := ((trim(CTe.signature.DigestValue) <> '') and (trim(CTe.signature.SignatureValue) <> '') and (trim(CTe.signature.X509Certificate) <> '')); if FOpcoes.GerarTagAssinatura = taSomenteParaNaoAssinada then Gerar := ((trim(CTe.signature.DigestValue) = '') and (trim(CTe.signature.SignatureValue) = '') and (trim(CTe.signature.X509Certificate) = '')); if Gerar then begin FCTe.signature.URI := somenteNumeros(CTe.infCTe.ID); FCTe.signature.Gerador.Opcoes.IdentarXML := Gerador.Opcoes.IdentarXML; FCTe.signature.GerarXMLCTe; Gerador.ArquivoFormatoXML := Gerador.ArquivoFormatoXML + FCTe.signature.Gerador.ArquivoFormatoXML; end; end;
  3. Na sequencia Assinar -> Nessa função, se passar direto para o validar, ele não valida da erro na assinatura. Então fiz este teste alterei e salvei o arquivo em disco, e observei que o arquivo salvo esta com a assinatura correta, mas o que fica na memória, fica com a assinatura errada. Validar Enviar
  4. Italo Bom dia Sim os dois arquivos foram gerado pelo ACBR. Acontece que o primeiro arquivo assinado-cte.xml, depois que o acbr assinou eu coloquei modifiquei o código para testar e salvei o arquivo, ai verifiquei a assinatura, e tudo esta correto. Ai quando o mesmo arquivo que continua na memória vai passar pela validação 'validar.xml' o mesmo, fica com a assinatura inválida. Eu estou achando que pode ser alguma limitação de alguma variável. Assim, nessa função class function CTeUtil.Valida(const AXML: AnsiString; var AMsg: AnsiString; const APathSchemas: string = ''): Boolean; Se você observar e passar o conteúdo de AXML, ele esta como a assinatura inválida, Eu testei assim Assinei -> Assinou corretamente Salvei o arquivo em disco para verificar, assinado-cte.xml - Assinatura correta. Validar -> Aí esta o problema, o conteúdo passado para AXML fica com a assinatuda inválida. Mas se eu pegar o mesmo arquivo que foi assinado e carregar novamente arq := TStringList.Create; arq.LoadFromFile("assinado-cte.xml") Result := ValidaLibXML(arq.Text, AMsg, APathSchemas); Aí é validado corretamente.
  5. Italo Boa noite Acha não precisa de desculpa não, me desculpe eu pela insistência, eu tenho um ERP/TMS, que funciona em 4 filiais na transportadora que eu trabalho, ele é desenvolvido no lazarus usando SQLDB e banco MySQL todas as filiais gravam no mesmo BD em um datacenter o sistema é grande. E assim tudo funciona o CT-e eu utilizo assim, o XML é gerado usando o ACBR, ai para validar assinar e transmitir uso o unimake, funciona muito bem. É que eu queria fazer tudo no Lazarus mesmo, seria legal se desse certo. Mas voltando ao assunto, fiz vários teste do jeito que eu fiz passando para a validação usando uma StringList, ele transmitiu para a sefaz, mas não validou na sefaz. Acho que o problema também acontece quando vai ser enviando para a sefaz, a assinatura fica invalida. Então mas você viu como fica os arquivos XML, é estranho mesmo, pois eles ficam diferentes, e o estranho é que só a parte da assinatura no XML fica diferente.
  6. Italo Boa noite Constatei que no Lazarus ocorre o seguinte problema, o ct-e é assinado normalmente, quando vai validar class function CTeUtil.Valida(const AXML: AnsiString; var AMsg: AnsiString; const APathSchemas: string = ''): Boolean; o conteudo da const AXML aonde consta a assinatura, fica invalida. Fiz um teste carregando manualmente o arquivo depois de assinado class function CTeUtil.Valida(const AXML: AnsiString; var AMsg: AnsiString; const APathSchemas: string = ''): Boolean; var arq: TStringList; begin {$IFDEF ACBrCTeOpenSSL} // Result := ValidaLibXML(AXML, AMsg, APathSchemas); arq := TStringList.Create; arq.LoadFromFile('C:\Erp\DFe\35140750386473000147570010000001321610801331-cte.xml'); Result := ValidaLibXML(arq.Text, AMsg, APathSchemas); E ai sim o arquivo é validado com sucesso. assinado-cte.xml validar.xml
  7. Italo Boa noite Atualizei teste, e continua com o mesmo problema.
  8. Ah só pra constar, esta mesma falha ocorre tanto no delphi como no lazarus.
  9. Italo Boa noite Então a violação de acesso esta ocorrendo na segunte função: {$IFDEF ACBrCTeOpenSSL} function ValidaLibXML(const AXML: AnsiString; var AMsg: AnsiString; const APathSchemas: string = ''): Boolean; no seguinte local schema_doc := xmlReadFile(Pansichar(AnsiToUtf8(schema_filename)), nil, XML_DETECT_IDS); O trecho do código abaixo, que fica antes deste local onde esta ocorrendo o erro, estava comentado, ele verifica se o arquivo schema_filename existe, ai eu descomentei para testar se realmente o arquivo estava sendo encontrado, e esta sendo encontrando normalmente. if not FileExists(schema_filename) then raise Exception.Create('Arquivo de Schema não encontrado' + sLineBreak + schema_filename);
  10. Italo Boa tarde, Verifiquei o caminho para o pathschemas esta correto, e este é o exemplo que vem com o acbr os schemas são os que vem com o acbr, mudei para a versão capicom e funcionou, mas gostaria que funcionasse com a versão openssl.
  11. Boa noite Estou tentando validar um CT-e, mas sempre gera um access violation na MSVCRT.DLL. Estou tentando usando o ACBR_CTE DEMO com todas as configurações informadas.
  12. Boa tarde, compilei o ACBRCTe para gerar os XML na versão 2.00, até ai tudo correto mas quando vou imprimir o DACTE esta dando o seguinte erro: Stream Read Error. Delphi versão 2007 Quick Report 4.07
  13. Já estou para começar os teste, se tiver como me envia o dacte que você tem pra mim dar uma olhada. Skype: [email protected]
  14. andrejsilva

    Dacte No Lazarus

    Boa tarde, meu é André sou novo aqui no Forum e no ACBr, fiz um porte do componente DACTE do FastReport para o Lazarus, agora só esta faltando mesmo é desenhar a impressão do dacte. Gostaria de saber se tem interesse de vocês para enviar o componente para o svn do ACBr, e se tem alguém para me ajudar a desenhar o DACTE no LazReport. Segue em anexo os fontes. dacte.7z
×
×
  • 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.