Ir para conteúdo
  • Cadastre-se

dev botao

CT-e Qr Code Contingência


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

Recommended Posts

  • Moderadores
1 hora atrás, Marcelo Souza disse:

Boa tarde, gostaria de saber se existe alguma previsão do ACBR para implementar a 3a parte do QRCode do CT-e quando a emissão é feita em contingência FS-DA ou EPEC.

Ao que parece isso já está implementado:

Citar

function TACBrCTe.GetURLQRCode(const CUF: integer;
  const TipoAmbiente: TpcnTipoAmbiente; const TipoEmissao: TpcnTipoEmissao;
  const AChaveCTe: String; const Versao: Double): String;
var
  idCTe, sEntrada, urlUF, Passo2, sign: String;
//  VersaoDFe: TVersaoCTe;
//  ok: Boolean;
begin
//  VersaoDFe := DblToVersaoCTe(ok, Versao);  // Deixado para usu futuro

  urlUF := LerURLDeParams('CTe', CUFtoUF(CUF), TipoAmbiente, 'URL-QRCode', 0);

  if Pos('?', urlUF) <= 0 then
    urlUF := urlUF + '?';

  idCTe := OnlyNumber(AChaveCTe);

  // Passo 1
  sEntrada := 'chCTe=' + idCTe + '&tpAmb=' + TpAmbToStr(TipoAmbiente);

  // Passo 2 calcular o SHA-1 da string idCTe se o Tipo de Emissão for EPEC ou FSDA
  if TipoEmissao in [teDPEC, teFSDA] then
  begin
    // Tipo de Emissão em Contingência
    SSL.CarregarCertificadoSeNecessario;
    sign := SSL.CalcHash(idCTe, dgstSHA1, outBase64, True);
    Passo2 := '&sign=' + sign;

    sEntrada := sEntrada + Passo2;
  end;

  Result := urlUF + sEntrada;
end;

 

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

Foi o que achei também, mas ao percorrer internamente nos métodos, chego aqui...

function TDFeSSLCryptClass.CalcHash(const AStream: TStream; const Digest: TSSLDgst;
  const Assina: Boolean): AnsiString;
begin
  {$IfDef FPC}Result := '';{$EndIf}
  raise EACBrDFeException.Create('"CalcHash" não suportado em: ' + ClassName);
end;

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
4 minutos atrás, Marcelo Souza disse:

Foi o que achei também, mas ao percorrer internamente nos métodos, chego aqui...

Os métodos são implementados nas classes filhas, dependendo da configuração SSLCryptLib.

Por isso é levantada a exceção nesse trecho, para indicar que há configuração incorreta.

  • Curtir 1
Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

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

The popup will be closed in 10 segundos...