Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Olá pessoal, estou com uma situação que antes eram gerados xmls para importação das Declarações de importação, mas eles estão mudando para API e estou com dificuldades em conseguir fazer a comunicação com o servidor. Eu até olhei uma resposta de moderador dizendo pra ver como o acbr faz, mas não consegui achar isso nos fontes, não soube procurar provavelmente.

No postman eu consegui fazer funcionar, configurando o certificado em settings -> Certificates, e o postman me retornou o set-token e x-csrf-token que precisa para fazer as demais requisições.

No portal (https://docs.portalunico.siscomex.gov.br/introducao-api-publica/) é mencionado o handshake SSL, mas eu não compreendi como fazer isso. Eu cheguei a olhar os fontes do acbrnfe, e vi que ele usa AcbrNfe.WebServices.Enviar pra envio das notas, mas não consegui achar a parte que ele configura componentes.

 

Eu achei um exemplo na internet, que usa openssl, mas só funcionaria com certificado .PEM e nós utilizamos .PFX na empresa. 

 

Conseguem me auxiliar, preciso fazer a conexão com o site basicamente.

 

Fiz assim e não deu certo por causa do certificado:

var
  slPostData: TStringList;
  IdHTTP1 : TIdHTTP;
  Id_HandlerSocket : TIdSSLIOHandlerSocketOpenSSL;
  cRetorno : string;
begin
    try
      IdHTTP1 := TIdHTTP.Create( nil );
      IdHTTP1.Request.BasicAuthentication := False;
//      IdHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0';
      IdHTTP1.Request.UserAgent := 'Mozilla/3.0 (compatible;Indy Library)';
      IdHTTP1.Request.ContentType := 'utf-8';
      Id_HandlerSocket := TIdSSLIOHandlerSocketOpenSSL.Create( IdHTTP1 );

      Id_HandlerSocket.SSLOptions.CertFile := AcbrNFe.Configuracoes.Certificados.ArquivoPFX; (aqui eu tinha configurado o acbrnfe com o caminho do arquivo pfx)
      Id_HandlerSocket.SSLOptions.KeyFile := AcbrNFe.Configuracoes.Certificados.ArquivoPFX; (aqui eu tinha configurado o acbrnfe com o caminho do arquivo pfx)

      Id_HandlerSocket.SSLOptions.Mode := sslmClient;
      Id_HandlerSocket.SSLOptions.Method := sslvSSLv23;
      IdHTTP1.IOHandler := Id_HandlerSocket;

      RegistraLog('TGeradorDeclaracaoImportacao.Teste: Id_HandlerSocket.SSLOptions.CertFile -> ' + Id_HandlerSocket.SSLOptions.CertFile, DEBUG);

      slPostData := TStringList.Create();

      cRetorno := IdHTTP1.Post( 'https://val.portalunico.siscomex.gov.br/portal/api/autenticar', slPostData);

      RegistraLog('TGeradorDeclaracaoImportacao.Teste: ' + cRetorno, DEBUG);

    finally
      Id_HandlerSocket.Free;
      IdHTTP1.Free;

      if Assigned(slPostData) then
        FreeAndNil(slPostData);
    end;
end;

 

 

---------------------------
Debugger Exception Notification
---------------------------
Project Teste.exe raised exception class EIdOSSLLoadingCertError with message 'Could not load certificate.
error:0906D06C:PEM routines:PEM_read_bio:no start line'.
---------------------------
Break   Continue   Help   
---------------------------
 

  • Consultores
Postado
2 horas atrás, MANOELUFSC disse:

Eu achei um exemplo na internet, que usa openssl, mas só funcionaria com certificado .PEM e nós utilizamos .PFX na empresa. 

extrai o PEM do PFX!
mas diria que pode ser mais simples usando o synapse

uses httpsend

var

LClient : THttpSend;

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

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