Juliomar,
Coloquei todas as configurações que acredito sejam necessárias:
//Certificado por número de série
if (dmADS.tbEmp.fieldbyname('CERTIFDIGSERIAL').AsString <> '') then begin
ACBrCTe1.Configuracoes.Certificados.NumeroSerie := dmADS.tbEmp.fieldbyname('CERTIFDIGSERIAL').AsString;
ACBrCTe1.Configuracoes.Certificados.ArquivoPFX := '';
ACBrCTe1.Configuracoes.Certificados.Senha := '';
end
else if (dmADS.tbEmp.fieldbyname('CERTPASS').AsString <> '') then begin
ACBrCTe1.Configuracoes.Certificados.ArquivoPFX := dmADS.tbEmp.fieldbyname('CERTIFDIG').AsString;
ACBrCTe1.Configuracoes.Certificados.Senha := dmADS.tbEmp.fieldbyname('CERTPASS').AsString;
ACBrCTe1.Configuracoes.Certificados.NumeroSerie := '';
end;
if (not (ACBrCTe1.SSL.CertificadoLido)) then begin
try
ACBrCTe1.SSL.DescarregarCertificado;
ACBrCTe1.Configuracoes.Geral.SSLLib := TSSLLib(StrToIntDef(LerArqINI('', 'Certificado', 'SSLLib' , '4'), 4));
ACBrCTe1.Configuracoes.Geral.SSLCryptLib := TSSLCryptLib(StrToIntDef(LerArqINI('', 'Certificado', 'CryptLib' , '3'), 3));
ACBrCTe1.Configuracoes.Geral.SSLHttpLib := TSSLHttpLib(StrToIntDef(LerArqINI('', 'Certificado', 'HttpLib' , '2'), 2));
ACBrCTe1.Configuracoes.Geral.SSLXmlSignLib := TSSLXmlSignLib(StrToIntDef(LerArqINI('', 'Certificado', 'XmlSignLib' , '4'), 4));
ACBrCTe1.SSL.SSLType := TSSLType(StrToIntDef(LerArqINI('', 'WebService', 'SSLType2' , '0'), 0));
ACBrCTe1.SSL.CarregarCertificadoSeNecessario;
except
//Exceção
on E: Exception do begin
MensErro('', 91, '(InificalizaCTe_LerCertificado) ' + E.ClassName + ' - ' + E.Message, true, true);
end;
end;
end;
with ACBrCTe1.Configuracoes.WebServices do begin
UF := sUFEmit;
if (dmADs.tbEmpNFEPRODUCAO.asstring = 'P') then
Ambiente := taProducao
else
Ambiente := taHomologacao;
//Se true visualiza mensagens diretamente do componente ACBr
//Bom para quando se quer depurar algum retorno
Visualizar := false;
//Valida o arquivo INI para definir os padrões básicos das consultas
if (LerArqINI('', 'NFe', 'TimeOutConsulta', 'ERRO') = 'ERRO') then
GravaArqINI('', 'NFe', 'TimeOutConsulta', '5000');
if (LerArqINI('', 'NFe', 'Tentativas', 'ERRO') = 'ERRO') then
GravaArqINI('', 'NFe', 'Tentativas', '10');
if (LerArqINI('', 'NFe', 'TimeOutTentativas', 'ERRO') = 'ERRO') then
GravaArqINI('', 'NFe', 'TimeOutTentativas', '3000');
if (LerArqINI('', 'NFe', 'TimeOut', 'ERRO') = 'ERRO') then
GravaArqINI('', 'NFe', 'TimeOut', '18000');
Salvar := (dmADS.tbEmpGERAARQLOG.value = 'S');
AjustaAguardaConsultaRet := true;
AguardarConsultaRet := StrToIntDef(LerArqINI('', 'NFe', 'TimeOutConsulta', '5000'), 5000);
Tentativas := StrToIntDef(LerArqINI('', 'NFe', 'Tentativas', '10'), 10);
IntervaloTentativas := StrToIntDef(LerArqINI('', 'NFe', 'TimeOutTentativas', '3000'), 3000);
TimeOut := StrToIntDef(LerArqINI('', 'NFe', 'TimeOut', '18000'), 18000);
end;
with ACBrCTe1.Configuracoes.Geral do begin
ExibirErroSchema := true;
FormatoAlerta := 'TAG:%TAGNIVEL% ID:%ID%/%TAG%(%DESCRICAO%) - %MSG%.';
FormaEmissao := teNormal;
ModeloDF := moCTe;
VersaoDF := ve400;
Salvar := (dmADS.tbEmpGERAARQLOG.value = 'S');
RetirarAcentos := true;
ValidarDigest := true;
end;
with ACBrCTe1.Configuracoes.Arquivos do begin
Salvar := true;
SepararPorMes := true;
AdicionarLiteral := false;
EmissaoPathCTe := true;
SepararPorCNPJ := false;
SepararPorModelo := false;
PathSalvar := ExtractFilePath(paramstr(0)) + 'Temp';
PathSchemas := ExtractFilePath(paramstr(0)) + 'EsquemasCTe';
PathCTe := sPastaSis;
PathEvento := sPastaSis + '\Eventos';
end;