-
Total de ítens
3 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Posts postados por PROSIS Informática Ijuí RS
-
-
Alguém com informações sobre?
-
Em 27/12/2017 at 14:39, Jeihcio Francis disse:
Eu acabei resolvendo o problema que mencionei acima da seguinte forma:
Configurações do componente:
If ( Obj.Modelo = A3 ) Then
Begin
If FConsultar Then
AACBreSocial.Configuracoes.Geral.SSLLib := libCapicom
Else
AACBreSocial.Configuracoes.Geral.SSLLib := libCustom;AACBreSocial.Configuracoes.Geral.SSLXmlSignLib := xsNone;
AACBreSocial.Configuracoes.Certificados.NumeroSerie := Obj.NumeroSerie;
AACBreSocial.SSL.CarregarCertificado;
End;Obs: Eu sei que por default o 'SSLXmlSignLib' vem 'xsNone', mas eu quis deixar explicitamente no código do meu controller que é obrigatório setar esse valor no atributo.
Depois e antes de enviar eu faço:
{ Assinatura digital }
ACBreSocial1.AssinarEventos;{ Enviar dados ao webservice }
ACBreSocial1.Configuracoes.Geral.SSLXmlSignLib := xsXmlSec;
ACBreSocial1.Enviar(getTipoGrupo(nTabela));Antes de enviar é obrigatório setar 'xsXmlSec' para a propriedade 'SSLXmlSignLib', pois no método 'Enviar' da classe 'TACBreSocial' que fica dentro do arquivo 'ACBReSocial' existe a seguinte verificação:
if SSL.SSLXmlSignLib <> xsXmlSec then
raise EACBreSocialException.Create('Necessário DigestMethod Algorithm = sha256 -> SSLLib = libOpenSSL');Essas configurações eu fiz no meu código da minha aplicação, já no componente da ACBR tive que fazer as seguintes alterações no arquivo 'ACBrDFeSSL':
Método 'Assinar' da classe 'TDFeSSLXmlSignClass':
function TDFeSSLXmlSignClass.Assinar(const ConteudoXML, docElement,
infElement: String; SignatureNode: String; SelectionNamespaces: String;
IdSignature: String; IdAttr: String): String;
var
xml: PAnsiChar;
begin
FpDFeSSL.SSLCryptLib := cryCapicom;xml := PAnsiChar(AnsiString(ConteudoXML));
TESocialSignature.SignSHA256Ansi(xml, PAnsiChar(AnsiString(infElement)),
PAnsiChar(AnsiString(FpDFeSSL.NumeroSerie)),
PAnsiChar(AnsiString(FpDFeSSL.Senha)));
Result := string(AnsiString(xml));
end;e no método 'Validar' dessa mesma classe:
function TDFeSSLXmlSignClass.Validar(const ConteudoXML, ArqSchema: String; out
MsgErro: String): Boolean;
var
DFeSSL: TDFeSSL;
begin
DFeSSL := TDFeSSL.Create;
Try
DFeSSL.SetSSLXmlSignLib(xsXmlSec);
Result := DFeSSL.Validar(ConteudoXML, ArqSchema, MsgErro);
Finally
DFeSSL.Free;
End;
end;Essas foram as unicas alterações que fiz para resolver o problema....
deixei exataente assim e está dando "metodo Enviar não implementado em TDFeSSLHttpClass"
Aconteceu isso pra alguem?
eSocial versão ve02_04_02
em ACBreSocial
Postado
Sim, enviei as 8 horas da manhã e até agora nada.