Jump to content

Embarcadero Conference 2019

22/10 - Visite o Stand do ACBr
Saiba mais

Nova Loja Oficial
loja.projetoacbr.com.br
Ajude o projeto a crescer, com estilo

Comprar

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

rf.soares

ACBrNFe como serviço do windows

Recommended Posts

Boa tarde a todos,

Aqui na empresa, precisamos converter nosso aplicativo servidor para um serviço do windows mas esbarramos em um problema: O ACBr não encontra o certificado digital, pois ele procura no repositório do usuário logado e não no repositório da máquina. Depois de muito pesquisar, encontramos a referencia abaixo que resolveu o problema, apenas alterando as chamadas ao método Store.Open conforme abaixo:

function TCertificadosConf.GetCertificado: ICertificate2;

var

  Store        : IStore3;

...

//  Store.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_STORE_NAME, CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);

  Store.Open(CAPICOM_LOCAL_MACHINE_STORE, CAPICOM_STORE_NAME, CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);

...

end;


function TCertificadosConf.SelecionarCertificado: AnsiString;

var

  Store        : IStore3;

...

//  Store.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_STORE_NAME, CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);

  Store.Open(CAPICOM_LOCAL_MACHINE_STORE, CAPICOM_STORE_NAME, CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);

...

end;

http://msdn.microsoft.com/en-us/library/windows/desktop/aa388130(v=vs.85).aspx

A pergunta é: Seria possível criar uma propriedade para definir de qual reposítorio a ACBrNFe deverá buscar os certificados?

[]'s

Rafael Soares

  • Like 1

Share this post


Link to post
Share on other sites

Rafael,

Eu tambem preciso rodar o acbrnfe em um windows service.  Mas, no meu caso a opcao acima também não funcionou!

Estou usando um certificado A3.  Alguma sugestão?

Obrigado


Alexandre Bernardes
www.bugfree.com.br

Share this post


Link to post
Share on other sites

Sei que o Post é muito muito antigo... mas acabei caindo no mesmo problema... e implementei uma maneira de permitir configurar o "StoreLocation" na CAPICOM...

 

Porém as mudanças são apenas para o "trunk2"
 

ACBrDFeCapicom.pas -
  - Adicionada a propriedade "property StoreLocation: CAPICOM_STORE_LOCATION", para permitir carregar certificados da Máquina e não do Usuário

ACBrDFeSSL.pas
  - Expondo a classe interna através de uma propriedade: property SSLClass: TDFeSSLClass, para permitir acesso a propriedades da mesma através de Typecast

ACBrDFeOpenSSL.pas
  - Rotina de Carga de XMLSec revisada para usar a versão atual, disponível na pasta DLLs do Trunk2 (1.2.18)

 

Exemplo de uso:

procedure TForm1.sbtnGetCertClick(Sender: TObject);
begin
  if (ACBrNFe1.SSL.SSLClass is TDFeCapicom) then
    TDFeCapicom(ACBrNFe1.SSL.SSLClass).StoreLocation := CAPICOM_LOCAL_MACHINE_STORE;

  edtNumSerie.Text := ACBrNFe1.SSL.SelecionarCertificado;
end;
  • Like 2

Consultor SAC ACBr

Daniel Simões de Almeida
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Share this post


Link to post
Share on other sites

Boa tarde @Daniel Simoes, @Alexandre_Bernardes e @rf.soares

Como o post já é meio antigo não sei se vocês conseguiram resolver mais estou com um problema parecido:

Desenvolvi um serviço do Windows para fazer toda parte de emissão e consultas de NFe, visto que meu cliente possui um certificado A3 e quer usar de mais de uma maquina. Faço toda a comunicação entre meu sistema e o serviço através de um banco especifico para troca das informações e o serviço fica encarregado de receber tais consultas/emissões, executa-las e enviar a resposta. A questão que vem é a seguinte. Com o Windows 10 funciona perfeitamente, porém quando o cliente possui um Windows 7, eu fico recebendo a mensagem de Inativo ou inoperante, e reparo que o led do leitor do cartão nem chega a piscar, dando impressão que não houve comunicação com o certificado digital. Experimentei rodar no Windows 7 com um certificado A1, e nesse caso funcionou. Não sei então se o problema é o acesso efetivo ao certificado A3 ou a leitora. Vocês saberiam de algo que eu pudesse fazer ou conseguiram rodar esses serviços com A3 no Windows 7 ? 

 

Obs:- Já esta adicionada na Unit Principal e no projeto as Uses Windows, Forms e ActiveX, e também o serviço esta configurado com o usuário administrador.

 

Obrigado desde já pela atenção.

Share this post


Link to post
Share on other sites
11 minutos atrás, danielznt disse:

Boa tarde @Daniel Simoes, @Alexandre_Bernardes e @rf.soares

Como o post já é meio antigo não sei se vocês conseguiram resolver mais estou com um problema parecido:

Desenvolvi um serviço do Windows para fazer toda parte de emissão e consultas de NFe, visto que meu cliente possui um certificado A3 e quer usar de mais de uma maquina. Faço toda a comunicação entre meu sistema e o serviço através de um banco especifico para troca das informações e o serviço fica encarregado de receber tais consultas/emissões, executa-las e enviar a resposta. A questão que vem é a seguinte. Com o Windows 10 funciona perfeitamente, porém quando o cliente possui um Windows 7, eu fico recebendo a mensagem de Inativo ou inoperante, e reparo que o led do leitor do cartão nem chega a piscar, dando impressão que não houve comunicação com o certificado digital. Experimentei rodar no Windows 7 com um certificado A1, e nesse caso funcionou. Não sei então se o problema é o acesso efetivo ao certificado A3 ou a leitora. Vocês saberiam de algo que eu pudesse fazer ou conseguiram rodar esses serviços com A3 no Windows 7 ? 

 

Obs:- Já esta adicionada na Unit Principal e no projeto as Uses Windows, Forms e ActiveX, e também o serviço esta configurado com o usuário administrador.

 

Obrigado desde já pela atenção.

Leia as regras do fórum e poste em um lugar tu fez o mesmo post em outro tópico igual


Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar
telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...