Ir para conteúdo
  • Cadastre-se

dev botao

Erro Assinatura


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

Recommended Posts

Postado

Boa tarde,

 

   Estou com um problema que não estou achando a solução.

   

  Envio o Cte normalmente, ele envia, salva em PDF e imprime, mas se eo vou cancelar ou emitir um segundo da a mensagem de: REJEIÇÃO - Assinatura Difere do Calculado.

 

  Se eu removo o token da invia, fecho o programa e ecoloco o token e renicio o meu programa volta a funcionar mas só para uma tentativa, na segunda dá o mesmo erro de novo.

Liandro Costa

Analista / Programador Delphi

email: [email protected]

Sapucaia do Sul - RS

 

  • Membros Pro
Postado

Ola Pessoal quero primeiramente agradecer o apoio no qual estão me fornecendo, e em segundo lugar quero pedir um auxilio na seguinte questão estou gerando o xml do cte tem validado junto a receita e tudo mais esta certo porem, um cliente me cobrou que o xml esta com um parâmetro errado esta faltando uma linha no cabeçalho queria ver como que faço para poder resolver. segue os modelos abaixo

 

modelo certo

 

<?xml version="1.0" encoding="UTF-8" ?>
- <cteProc versao="1.04" xmlns="http://www.portalfiscal.inf.br/cte">  "estaria  faltando esta linha no parametro abaixo"
- <infCte Id="CTe42130811575458000195570010000000261000460202" versao="1.04">
- <ide>

 

modelo errado

 

<?xml version="1.0" encoding="UTF-8" ?>
- <infCte versao="1.04" Id="CTe42130811575458000195570010000000421241265797">
- <ide>

 

 

att Edilson

  • Consultores
Postado

Boa tarde Edilson,

 

O problema é que você esta enviando o XML sem o protocolo de autorização.

 

O comando Enviar do componente se encarrega de incluir o protocolo de autorização no XML.

 

As propriedades Salvar estão com o valor TRUE?

 

Configuracoes.Geral,Salvar := True;

Configuracoes.Arquivos.Salvar := True;

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Consultores
Postado

Boa noite Liandrocs,

 

A minha aplicação durante 1 ano rodou com certificado A1, e já vai para 1 ano e meio rodando com o A3 sem nenhum problema.

 

Eu acredito que não seja o certificado e sim a sua aplicação.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Eu crio o acbrcte em tempo de execução.

 

1) Crio ele no show de minha tenha de emissão

2) configuro ele, após criar.

3) ao enviar, eu populo as informações e envio.

 

Obs.

a primeira sempre dá certo (Grava XML, imprime e imprimePDF), testei duas com dados semelhantes, a segunda que dá o erro de ASSINATURA DIFERE DO CALCULADO.

Isso para emissão ou cancelamento.

 

Para voltar a funcionar tenho que fechar a aplicação e retirar o token e reiniciar o processo.

 

Sempre antes de começar a popular a ACBRCte eu uso o ACBRCte.conhecimentos.Clear; Tem outro comando que devo usar para limpar as informações do anterior.

Grato.

Liandro Costa

Analista / Programador Delphi

email: [email protected]

Sapucaia do Sul - RS

 

  • Moderadores
Postado

Eu crio o acbrcte em tempo de execução.

 

1) Crio ele no show de minha tenha de emissão

2) configuro ele, após criar.

3) ao enviar, eu populo as informações e envio.

Deixe o componente em um datamodule e use sempre o mesmo, assim você não precisa ficar criando e destruindo o componente em cada tela que precisa de funções do CTe.

djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.xpos.com.br
Postado

Sim, mas a eu centralizo todos os comando do ACBRCte dentro deste form, crio uma unica vez, e destruo só no ondestroy desta tela, inclusive a configuração dele é só na criação..

Liandro Costa

Analista / Programador Delphi

email: [email protected]

Sapucaia do Sul - RS

 

Postado

Boa Tarde.

 

Criei um projeto novo de um único form.

 

como segue abaixo, só que este executável pega um XML já aprovado em homologação e o cancela. (O primeiro ele cancela, mas o segundo da erro de ASSINATURA DIFERE DO CALCULADO. (Por favor preciso de ajuda, talvez eu esteja esquecendo de algo)

 

//////***********************************************************************************************

unit Unit12;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, FileCtrl, JvDriveCtrls,
  QuickRpt, ACbrCte, ACBrCTeDACTeQRClass, pcnConversao, pcnAuxiliar;
 
type
  TForm12 = class(TForm)
    JvFileListBox1: TJvFileListBox;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    ACBrCTE_C: TACBrCTE;
    procedure ConfiguraCTE;
  end;
 
var
  Form12: TForm12;
 
implementation
 
{$R *.dfm}
 

procedure TForm12.Button1Click(Sender: TObject);

var
  NomeArquivo: string;
begin
 
  NomeArquivo := JvFileListBox1.Directory + '\' +  JvFileListBox1.Items[JvFileListBox1.ItemIndex];
 
  ACBrCTE_C.Conhecimentos.Clear;
  if FileExists(NomeArquivo) then
    ACBrCTE_C.Conhecimentos.LoadFromFile(NomeArquivo)
  else
    raise Exception.create('Arquivo XML do conhecimento não localizado!');
 
  // Cancela
  if ACBrCTE_C.Cancelamento('TESTE CANCELAMENTO AMBIENTE HOMOLOGACAO') then
  begin
    ShowMessage('Cancelou');
    ACBrCTE_C.Conhecimentos.Imprimir;
    DeleteFile(NomeArquivo);
    JvFileListBox1.Refresh;
  end;
end;
 
procedure TForm12.FormDestroy(Sender: TObject);
begin
  if Assigned(ACBrCTE_C) then
    FreeAndNil(ACBrCTE_C);
end;
 
procedure TForm12.ConfiguraCTE;
var
  PastaInicial: string;
begin
  PastaInicial := ExtractFilePath(Application.ExeName);
 
  ACBrCTE_C.Configuracoes.Arquivos.AdicionarLiteral := True;
  ACBrCTE_C.Configuracoes.Arquivos.EmissaoPathCTe := True;
  ACBrCTE_C.Configuracoes.Arquivos.PastaMensal := True;
  ACBrCTE_C.Configuracoes.Arquivos.PathCan := PastaInicial + 'Canceladas';
  ACBrCTE_C.Configuracoes.Arquivos.PathDPEC := PastaInicial + 'DPEC';
  ACBrCTE_C.Configuracoes.Arquivos.PathInu := PastaInicial + 'Inutilizacoes';
  ACBrCTE_C.Configuracoes.Arquivos.PathCTe := PastaInicial + 'CTE';
  ACBrCTE_C.Configuracoes.Arquivos.Salvar := True;
 
  // Criação das pastas
  ForceDirectories(PastaInicial + 'Canceladas');
  ForceDirectories(PastaInicial + 'DPEC');
  ForceDirectories(PastaInicial + 'Inutilizacoes');
  ForceDirectories(PastaInicial + 'PDF');
  ForceDirectories(PastaInicial + 'CTE');
  ForceDirectories(PastaInicial + 'Geral');
 
  // Configurações -> Certificados
  ACBrCTE_C.Configuracoes.Certificados.NumeroSerie := NumerodeSerie
  ACBrCTE_C.Configuracoes.Certificados.Senha := Senha'';
 
  // Configurações -> Geral
  ACBrCTE_C.Configuracoes.Geral.FormaEmissao := teNormal;
  ACBrCTE_C.Configuracoes.Geral.PathSalvar := PastaInicial + 'Geral';
  ACBrCTE_C.Configuracoes.Geral.PathSchemas := PastaInicial + 'Schemas'; ;
  ACBrCTE_C.Configuracoes.Geral.Salvar := True;
 
  // Configurações -> WebServices
  ACBrCTE_C.Configuracoes.WebServices.AguardarConsultaRet := 0;
  ACBrCTE_C.Configuracoes.WebServices.AjustaAguardaConsultaRet := False;
 
  ACBrCTE_C.Configuracoes.WebServices.Ambiente := taHomologacao;
 
  ACBrCTE_C.Configuracoes.WebServices.IntervaloTentativas := 0;
  ACBrCTE_C.Configuracoes.WebServices.ProxyHost := '';
  ACBrCTE_C.Configuracoes.WebServices.ProxyPass := '';
  ACBrCTE_C.Configuracoes.WebServices.ProxyPort := '';
  ACBrCTE_C.Configuracoes.WebServices.ProxyUser := '';
  ACBrCTE_C.Configuracoes.WebServices.Tentativas := 5;
  ACBrCTE_C.Configuracoes.WebServices.UF := 'RS';
 
  ACBrCTE_C.DACTe.PathPDF := PastaInicial + 'PDF';
  ACBrCTE_C.DACTe.ImprimirDescPorc := False;
  ACBrCTE_C.DACTe.ImprimirHoraSaida := True;
  ACBrCTE_C.DACTe.ImprimirHoraSaida_Hora := DateToStr(Date);
//  ACBrCTE_C.DACTe.Logo := PastaInicial + 'LogoCte.jpg';
  ACBrCTE_C.DACTe.MostrarPreview := True;
  ACBrCTE_C.DACTe.Sistema := Application.Title;
  ACBrCTE_C.DACTe.Site := '';
  ACBrCTE_C.DACTe.TipoDACTE := tiPaisagem;
  ACBrCTE_C.DACTe.Usuario := '';
end;
 
procedure TForm12.FormShow(Sender: TObject);
begin
  JvFileListBox1.Directory := ExtractFilePath(Application.ExeName) + 'XML';
 
  ACBrCTE_C := TACBrCTE.Create(nil);
  ACBrCTE_C.DACTe := TACBrCTeDACTeQR.Create(nil);
  //
  ConfiguraCTE;
end;

Liandro Costa

Analista / Programador Delphi

email: [email protected]

Sapucaia do Sul - RS

 

  • Membros Pro
Postado

Boa tarde Edilson,

 

O problema é que você esta enviando o XML sem o protocolo de autorização.

 

O comando Enviar do componente se encarrega de incluir o protocolo de autorização no XML.

 

As propriedades Salvar estão com o valor TRUE?

 

Configuracoes.Geral,Salvar := True;

Configuracoes.Arquivos.Salvar := True;

Muito Obrigado Italojr era isso mesmo

Postado (editado)

é coisa doutro, de outro mundo...

 

Passei o ACBR para dentro do data module, crio ele e configuro no create, destruo no detroi..

 

Até para cancelamento ou envio o primeiro funciona, imprime e envia email, o segundo não vai mais, dá erro e só volta ao normal quando fecho o programa e abro novamente, parece que fica algo em memoria, tambem tentei direto pelo executavel sem o delphi e dá no mesmo.

 

REJEIÇÃO: Assinatura difere do calculado.

 

 

HELP, HELP, HELP....

Editado por Liandrocs

Liandro Costa

Analista / Programador Delphi

email: [email protected]

Sapucaia do Sul - RS

 

  • Consultores
Postado

Bom dia Liandrocs,

 

Você tentou incluir os componentes em um Data Module ou direto no form que ele vai ser utilizado e não usar o Create e muito menos o Destroy, ou seja mante-los criados o tempo todo, enquanto a aplicação estiver rodando?

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Sim, incluir ele está agora em um datamodule, e da a mesma coisa...

 

Fiz outro teste tambem, crie um projeto novo com um unico form e uma lista de Cte aprovados, e um unico botão para cancelar,

crio e configuro no show do form.

 

Unica coisa que é feita é cancelamento...

 

cte.conhecimento.clear

cte.conhcimento.loadfronfile(xxx)

cte.conhecimento.cancela('ffffffffffffffffffffff')

....

O primeiro cancela normalmente, sem erros o segundo que vou mandar cancelar da erro : REJEIÇÃO: Assinatura difere do calculado.

 

***

Tentei pegar outro certificado, para ver se é problema nele, mas não consegui um que seja de transportadora...

Liandro Costa

Analista / Programador Delphi

email: [email protected]

Sapucaia do Sul - RS

 

Postado

Se alguém poder me ajudar, eu poderia passar os fontes do cancelamento para quem poder testar, com seu certificado.

 

é bem simples, cancela o primeiro no segundo cancelamento já da erro para mim...

Liandro Costa

Analista / Programador Delphi

email: [email protected]

Sapucaia do Sul - RS

 

  • Consultores
Postado

Boa tarde Liandrocs,

 

Hoje a noite vou realizar o seguinte teste:

 

Emitir dois CTe e depois em seguinte efetuar o cancelamento de ambos.

 

Se funcionar sem nenhum problema, podemos concluir que o problema é realmente a sua aplicação.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado (editado)

Se não for muito incomodo, segue abaixo, os fontes de meu teste que deu o mesmo erro, só no segundo cancelamento(O primeiro funciona).

 

É uma rotina simples de cancelamento pelo XML do Cte. Nele tem as configurações que eu uso, vê se esta faltando algo.

 

http://www.4shared.com/zip/ZZArfIsO/Teste.html

 

Outra coisa, tanto faz se for dois cancelamentos ou duas emissões, o primeiro processo funciona o segundo dá erro.

 

Grato...

Editado por Liandrocs

Liandro Costa

Analista / Programador Delphi

email: [email protected]

Sapucaia do Sul - RS

 

  • Consultores
Postado

Bom dia Liandro,

 

Ontem a noite, usando a minha aplicação, lancei dois conhecimentos, emiti o primeiro sem nenhum problema, mandei emitir o segundo, sem nenhum problema.

 

Depois solicitei o cancelamento do primeiro, também o cancelamento foi realizado sem nenhum erro, solicitei o cancelamento do segundo, idem.

 

Nenhum erro foi apresentado, logo o problema deve ser com a sua aplicação.

 

Você esta utilizando as DLLs, que vem junto com o ACBr, principalmente a Capicom ?

 

Depois do XML gerado assinado, não existe algo que por ventura esteja alterado o XML?

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Não utilizo nenhuma DLL do ACBR, nem altero o XML, o ACBR é que faz todo o processo, crio ele em tempo de execução... Tenho outro sistema de NFe e faço do mesmo modo e funciona tudo.

 

Tenho que usar as Dlls do ACBR ? (Quais que preciso ?)

 

O que me parece é que fica algo em memória no componente, que não é limpo, dai quando envio o segundo dá erro, o problema maior é que o primeiro sempre funciona, quando vou fazer o segundo Cte que da o erro, (tando para envio como cancelamento).

 

Um teste que eu tinha feito, era com uma executavel a parte que cria o ACBR para cancelamento, que tb dava erro no segundo cancelamento.

Liandro Costa

Analista / Programador Delphi

email: [email protected]

Sapucaia do Sul - RS

 

Postado

Teria como vc dar uma olhada na parte configuração que postei, para ver se esta correta, se sim. Vou retestar o certificado. Já estou ficando sem opções...

Liandro Costa

Analista / Programador Delphi

email: [email protected]

Sapucaia do Sul - RS

 

Postado

Boa Noite Italo, atualizei as DLLs no system32, reiniciei o computador, e deu o mesmo erro, o primeiro conhecimento sai correto, apartir daí só saindo do aplicativo e entrando denovo. Parece que fica algo preso na memória. Achei que era as DLLs mesmo, agora sim não sei o que fazer mais...

Liandro Costa

Analista / Programador Delphi

email: [email protected]

Sapucaia do Sul - RS

 

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