Ir para conteúdo
  • Cadastre-se

Recommended Posts

Postado

Boa tarde, tive que fazer um ajuste para poder usar a API do CRESOL na parte de gerar o token, tinha um IF legendado que estava causando um acessviolation, voltando com esse if resolveu e gerou o boleto na função function TOAuth.GerarToken: Boolean;

esse if ( if Assigned(FACBrBoleto.OnDepoisAutenticar) then) atualizado pelo svn esta legendado

function TOAuth.GerarToken: Boolean;
var
  LToken  : String;
  LExpire : TDateTime;

  function TokenValido: Boolean;
  begin
    Result := (FToken <> '') and (FExpire > Now);
  end;

begin
  Result := False;
  try
    CarregaCertificados;

    // Antes de autenticar
    if Assigned(FACBrBoleto.OnAntesAutenticar) then
    begin
      FACBrBoleto.OnAntesAutenticar(LToken, LExpire);
      FToken  := LToken;
      FExpire := LExpire;
    end;

    // Forçar novo token
    if FForceNewToken then
    begin
      FToken  := '';
      FExpire := 0;
    end;

    // Verificar se precisa autenticar
    if Assigned(FACBrBoleto.OnPrecisaAutenticar) and not TokenValido and not FForceNewToken then
    begin
      FACBrBoleto.OnPrecisaAutenticar(LToken, LExpire);
      FToken  := LToken;
      FExpire := LExpire;
    end;

    // Se já possui token válido, só retorna sucesso
    if TokenValido then
      Result := True
    else if (not Assigned(FACBrBoleto.OnPrecisaAutenticar)) or FForceNewToken then
    begin
      // Converte ClientID/Secret para Basic Auth em Base64
      Result := Executar('Basic ' + String(EncodeBase64(AnsiString(ClientID + ':' + ClientSecret))));
    end;

     if Assigned(FACBrBoleto.OnDepoisAutenticar) then
      FACBrBoleto.OnDepoisAutenticar(FToken, FExpire);
  finally
    FForceNewToken := False;
  end;
end;

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.