Ir para conteúdo
  • Cadastre-se

dev botao

Como Assinar um .XML (não de NF-e) utilizando o ACBR


Guilherme Lanius
  • Este tópico foi criado há 2905 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Gostaria de uma ajuda para tentar assinar um documento XML (não é NFE-e, ou outro documento fiscal) qualquer utilizando a estrutura do ACBR.

Eu sei que o ACBR não foi feito para essa finalidade, mas acredito que seria possível usar o componente para esta finalidade.

Ele até esta gerando a assinatura no XML, mas não está verificando a mesma... tentei inclusive verificado com outro programa (xmlsec), mas também não validou a assinatura.

Estou usando o seguinte código:

  arq.LoadFromFile('tosign.xml');
  ACBrNFe1.Configuracoes.Certificados.ArquivoPFX := caminhoCertificado;
  ACBrNFe1.Configuracoes.Certificados.Senha := senhaCertificado;
  ACBrNFe1.SSL.CarregarCertificado;
  arq.Text := ACBrNFe1.SSL.Assinar(arqConv,'Envelope','vehicle_weight');
  arq.SaveToFile('signed.xml');
  FreeAndNil(arq);

  if ACBrNFe1.SSL.VerificarAssinatura(arqConv,erro,'vehicle_weight') then
    ShowMessage('verificado');

Obrigado pela ajuda.

MGWare Tecnologia LTDA

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Fundadores
Em 02/02/2016 at 10:43, Guilherme Lanius disse:

Gostaria de uma ajuda para tentar assinar um documento XML (não é NFE-e, ou outro documento fiscal) qualquer utilizando a estrutura do ACBR.

Eu sei que o ACBR não foi feito para essa finalidade, mas acredito que seria possível usar o componente para esta finalidade.

Ele até esta gerando a assinatura no XML, mas não está verificando a mesma... tentei inclusive verificado com outro programa (xmlsec), mas também não validou a assinatura.

Por favor poste um exemplo do XML sem a assinatura, e um Exemplo de como ele deverá ficar após assinado

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
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

Oi Daniel, eu já consegui resolver o problema.

A assinatura fica igual da NF-e, com os mesmos campos.

Eu apenas precisei alterar o TDFeCapicom.Assinar

alterar a linha

signedKey := xmldsig.sign(dsigKey, $00000002);

por

signedKey := xmldsig.sign(dsigKey, KEYVALUE+CERTIFICATES);

e comentar a linha XmlAss := AjustarXMLAssinado(XmlAss);

Essa última que estava dando maiores problemas para validação.

  • Curtir 1

MGWare Tecnologia LTDA

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois ...

Seguindo a linha do mesmo assunto, estou tentando fazer a assinatura de um documento que não é NFe, por sinal bem diferente, e pela dica do REGIS, estou usando ACBRDfe da seguinte forma:

var
   assinatura : TACBrDFe;
begin
   //   Fazer rotina de assinatura
   assinatura := TACBrDFe.Create(nil);   //  Aqui não sei o que referenciar, então coloquei "nil"
   assinatura.SSL.SelecionarCertificado;  // Aqui carrego o certificado instalado
   DOC_XML := assinatura.SSL.Assinar(DOC_XML,'Ensaio','InformarEnsaio','Ensaio','','');  // Creio ser aqui meu problena
 

Estou meio perdido, minha(s) dúvida(s) são :

A Tag que quero assinar é 

<Ensaio>
   ...
</Ensaio>
 
O arquivo XML tem a estrutura :
<InformarEnsaio>
   <Ensaio>
         ...
   </Ensaio>
</InformarEnsaio>

a variável DOC_XML é umAnsiString com o conteúdo do ensaio XML

Qual a sintaxe para essa operação ? Alguém saberia me orientar ?

Desde já agradecido !

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2905 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.