Ir para conteúdo
  • Cadastre-se

dev botao

Convertendo CTe de Capicom para OpenSSL


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

Recommended Posts

  • Membros Pro

Boa tarde amigos,

Por estar aparecendo diversos problemas para enviar conhecimentos de transporte para a SEFAZ/MG estou optando em converter o meu sistema de CAPICOM para DLL, poré estou tendo dificuldades, conto com a ajuda daqueles que tem o conhecimento necessário para me ajudar.

Vejam:

1) Eu fui no componente ACBrCTe e configurei : CONFIGURAÇÕES / GERAL / SSLIB para libOpenSSL

 

2) Para configurar o compenente ACBrCTe estou usando a seguinte rotina:

      {$IFDEF ACBrCTeOpenSSL}
        CTe.Configuracoes.Certificados.Certificado:=dm.qrempresa.fieldbyname('CERTIFICADO_CAMINHO').asstring;
        CTe.Configuracoes.Certificados.ArquivoPFX:=dm.qrempresa.fieldbyname('CERTIFICADO_CAMINHO').asstring;
        CTe.Configuracoes.Certificados.Senha:=dm.qrempresa.fieldbyname('CERTIFICADO_SENHA').AsString;
      {$ELSE}
        CTe.Configuracoes.Certificados.NumeroSerie:=dm.qrempresa.fieldbyname('CERTIFICADO_NUMERO_SERIE').asstring;
        CTe.Configuracoes.Certificados.Senha:=dm.qrempresa.fieldbyname('CERTIFICADO_SENHA').AsString;
      {$ENDIF}

      Cte.Configuracoes.Geral.Salvar:=True;
      Cte.Configuracoes.Arquivos.PathSchemas:=ExtractFilePath(Application.ExeName)+'Schemas\Cte\V200';
      Cte.Configuracoes.Arquivos.PathSalvar:=dm.qrempresa.fieldbyname('CTE_PATH_CTE').asstring;
      Cte.Configuracoes.Arquivos.PathCTe:=dm.qrempresa.fieldbyname('cte_path_cte').asstring;
      Cte.Configuracoes.Arquivos.PathEvento:=dm.qrempresa.fieldbyname('cte_path_can').asstring;
      Cte.Configuracoes.Arquivos.PathInu:=dm.qrempresa.fieldbyname('cte_path_inu').asstring;

      CTe.Configuracoes.Geral.FormaEmissao:=StrToTpEmis(OK,dm.qrempresa.fieldbyname('webservice_ambiente').asstring);
      CTe.Configuracoes.WebServices.UF:=UpperCase(dm.qrempresa.fieldbyname('webservice_uf').AsString);
      CTe.Configuracoes.WebServices.Ambiente:=StrToTpAmb(Ok,dm.qrempresa.fieldbyname('webservice_ambiente').asstring);

      if dm.qrempresa.fieldbyname('webservice_visualizar').asstring='S' then
        CTe.Configuracoes.WebServices.Visualizar := true
      else
        CTe.Configuracoes.WebServices.Visualizar := false;

      {$IFDEF ACBrCTeOpenSSL}
         CTe.Configuracoes.WebServices.ProxyHost := dm.qrempresa.fieldbyname('webservice_host').asstring;
         CTe.Configuracoes.WebServices.ProxyPort := dm.qrempresa.fieldbyname('webservice_porta').asstring;
         CTe.Configuracoes.WebServices.ProxyUser := dm.qrempresa.fieldbyname('webservice_usuario').asstring;
         CTe.Configuracoes.WebServices.ProxyPass := dm.qrempresa.fieldbyname('webservice_senha').asstring;
      {$ELSE}

      {$ENDIF}
 

O que pude perceber é nos IFs ({$IFDEF ACBrCTeOpenSSL}) o fluxo do programa sempre vai para após o ELSE...

 

3) Ao executar o sistema aparece o seguinte problema quando tento executar qual comando com o ACBrCTe:

Erro ao ler as informações do certificado. Provavelmente a senha está incorreta.

Já verifiquei o caminho do certificado e a senha e ambos estão corretos.

 

 

Link para o comentário
Compartilhar em outros sites

  • Moderadores
1 hora atrás, Juliano Otaviano Barreto disse:

O que pude perceber é nos IFs ({$IFDEF ACBrCTeOpenSSL}) o fluxo do programa sempre vai para após o ELSE...

Se você não tem familiaridade com diretivas de compilação, remova todos eles. {$IFDEF}, {$ELSE}, {$ENDIF}, etc.

Nesse trecho de código elas não farão diferença.

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

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

  • Membros Pro
15 horas atrás, BigWings disse:

Se você não tem familiaridade com diretivas de compilação, remova todos eles. {$IFDEF}, {$ELSE}, {$ENDIF}, etc.

Nesse trecho de código elas não farão diferença.

Obrigado pela atenção pessoal.

Deixei desta forma o trecho que vcs pediram para retirar:

      //{$IFDEF ACBrCTeOpenSSL}
        //CTe.Configuracoes.Certificados.Certificado:=dm.qrempresa.fieldbyname('CERTIFICADO_CAMINHO').asstring;
        CTe.Configuracoes.Certificados.ArquivoPFX:=dm.qrempresa.fieldbyname('CERTIFICADO_CAMINHO').asstring;
        CTe.Configuracoes.Certificados.Senha:=dm.qrempresa.fieldbyname('CERTIFICADO_SENHA').AsString;
      //{$ELSE}
      //  CTe.Configuracoes.Certificados.NumeroSerie:=dm.qrempresa.fieldbyname('CERTIFICADO_NUMERO_SERIE').asstring;
      //  CTe.Configuracoes.Certificados.Senha:=dm.qrempresa.fieldbyname('CERTIFICADO_SENHA').AsString;
      //{$ENDIF}
 

Mas durante a execução estão aparecendo: 

Erro ao ler informações do certificado. Provavelmente a senha está errada.

Link para o comentário
Compartilhar em outros sites

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