Jump to content
Fivewin Brasil

error ao selecionar certificado


JUDSON ROSA

Recommended Posts

Pessoal a titulo de informação:

nosso cliente tem windows 10 home , ao usar o method 
PegaNomeCertificado , o nosso sistema , nao chama a tea para seleção do certificado e sai do sistema.

o que podemos fazer ???

resposta da flexdocs:

**************************

Data: 02-08-2018 10:50:17
Nome: Equipe Suporte

Mensagem:

 

Prezado Sr. judson rosa,

Pelos relatos que tivemos de outros usuários, o erro reportado está relacionado com o plugin warsaw da GAS Tecnologia, a remoção do plugin seria uma solução, mas vai causar problemas com o cliente, pois vai impedir o uso do equipamento para acessar os bancos.

==================================================================
POSSÍVEL SOLUÇÃO: DESINSTALAR O WARSAW E REINSTALAR NOVAMENTE
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apenas para passar um feedback para vocês: Hoje pela manhã meu colega foi até o cliente que possui certificado A3, removeu o Warsaw, reiniciou o computador, selecionou o certificado e emitiu uma NF-e sem problemas, porém o cliente insistiu em instalar o Warsaw novamente. 

Então meu colega re-instalou o Warsaw, reiniciou o computador e retirou o nome do certificado da nossa aplicação para testar se iria abrir a janela para seleção do certificado na hora de emitir a NF-e e segundo ele, a aplicação continuou funcionando sem problemas, tanto na seleção do certificado quanto na digitação do PIN.
==================================================================

Como o problema ocorre somente quando usamos o pegaNomeCertificado passando "" no nomeCertificado para selecionar um novo certificado digital, o melhor seria não utilizar a funcionalidade para selecionar o certificado digital.

O pegaNomeCertificado só é necessário utilizar uma única vez na aplicação para ter o nomeCertificado, ocasião que deverá ser informado com "" para abrir a caixa de diálogo de escolha de certificado digita, após obter o campo assunto do certificado digital no nomeCertificado, a aplicação deve armazenar o nomeCertificado junto com a licena de uso da DLL e não será mais necessário usar o pegaNomeCertificado.

No equipamento que ocorre o problema relatado, utilize o certflex para ter o campo assunto, copie e cole na sua aplicação para contornar o problema.

Se o utiliza o pegaNomeCertificado antes da chamada das demais funcionalidades, não é necessário alterar a aplicação, basta deixar o parâmetro nomeCertificado com a informação quando carregar a sua aplicação, assim, mesmo que a funcionalidade pegaNomeCertificado seja chamada, não vai dar problema, pois não haverá tentativa de abrir a caixa de diálogo para seleção do certificado digital.

Estamos estudando uma forma alternativa para obter o nomeCertificado para evitar o problema reportado.

Atenciosamente,

Equipe de Suporte

»Importante:

A versão 3.10 do leiaute da NF-e vai ser desativada em 02/08/18.

www.facebook.com/flexdocs

Link to comment
Share on other sites

Judson, sinceramente, não entendi a resposta da Flexdocs, ela recomenda não usar a funcionalidade? 
Não é melhor você dizer ao uçuário para instalar os lixos dos plugins de bancos em outra máquina que não seja a do faturamento? E que eu saiba, destruindos os plugins  e instaladno a última versão do Warsaw, funciona de boa.

Explique melhor qual foi a solução que você fez. Tá confuso pra karamba... Obg. Abs.

Method PegaCertificado( Nome ) Class TVoNFeUtil2G
	   local nRet, Mensagem:="", lRet := .t.
	   Default Nome := If( !Empty( ::cCertificado), ::cCertificado, "" )
	   Try
	      nRet:=::oNFEUtil:PegaNomeCertificado(@Nome,@Mensagem)
	   CATCH
	      MsgStop( "Atenção Usuário:                                     " +CRLF+;
               "Instale um Certfificado Digital Válido Para Poder    " +CRLF+;
               "Usar a Nota Fiscal Eletrônica. Se Você Não Tem um    " +CRLF+;
               "Certificado Digital Válido, Consulte o Seu Contador  " +CRLF+;
               "ou a Sua Certificadora de Certificados Digitais Tipo:" +CRLF+;
               "Serasa Experian, Certisign, Ar São Paulo, Boa Vista. " +CRLF+;
               "Pronova, Digital Sign, Etc. Você Que Escolhe...      " +CRLF+;
               "Depois de Adquirir o Seu Certificado Digital,        " +CRLF+;
               "Instale-o, e Entre no Programa da Nota Fiscal e:     " +CRLF+;
               "<Click> no Botão: <Manutenção>  Depois no:           " +CRLF+;
               "Botão: <Trocar Certificado Digital da NF-e>.         " +CRLF+;
               "Tecle <Enter> Para Continuar...                      ",      ;
               "Instale um Certfificado Digital Válido da NF-e.      " )
	      Return(.f.)
	   End Try
	   If nRet != 5402 // Erro ao Selecionar o certificado
	      ::GeraLog(Mensagem)
	      lRet:=.f.
	      if ::lMensagem
	         #IFDEF __DOS__
            Alert( hb_ansitooem(Mensagem+"-"+ProcName()) )
         #ELSE
            MsgStop( Mensagem+CRLF+ProcName(),CAPTION_MSG )
         #ENDIF
      Endif
	   Else
	      ::cCertificado:=Nome
	   Endif
	Return(lRet)


 

Link to comment
Share on other sites

  • 2 months later...

Bom dia Judson,

 

 

no meu caso o cliente tinha esse plugin , e nosso sistema tava saindo ao selecionar o certificado ( igual ao seu method ) , so resolveu depois q fizemos o q a flexdoc recomendou , coloquei aqui pq pode ser q alguem precise .

Você poderia explicar melhor como fez isso? Como pega o nome do certificado?
Eu tinha resolvido o problema desinstalando o warsaw mas o cliente insiste em usar o banco na mesma máquina (só tem uma) .
Sds.

 

Link to comment
Share on other sites

Por exemplo, campo com 250 caracateres:

	         //-> venceu o Certificado
         IF CADPARAM->CERTIF=SPACE(250)              .AND. ;
            LEN(ALLTRIM(oNFEUtil:cCertificado))>0    .AND. ;
            LEN(ALLTRIM(oNFEUtil:cCertificado))<=250
	            SELECT CADPARAM
            RLOCK()
            REPL CERTIF   WITH ALLTRIM(oNFEUtil:cCertificado)
            REPL DTCERTIF WITH DTOC( oNFEUtil:dInicioValidade ) + ;
                               DTOC( oNFEUtil:dFimValidade    )
            COMMIT
            UNLOCK
	            cCertificado := ALLTRIM(CADPARAM->CERTIF)
	         ELSE //-> Certificado nao venceu ainda e data Certif esta em branco
	            SELECT CADPARAM
            RLOCK()
	            REPL DTCERTIF WITH DTOC( oNFEUtil:dInicioValidade ) + ;
                               DTOC( oNFEUtil:dFimValidade    )
            COMMIT
            UNLOCK
	            cCertificado := ALLTRIM(CADPARAM->CERTIF)
	         ENDIF

Link to comment
Share on other sites

Ok,  descobri.
Tenho que salvar o conteúdo completo

CN=NFe - Associacao NF-e:99999090910270, C=BR, L=PORTO ALEGRE, O=Teste Projeto NFe RS, OU=Teste Projeto NFe RS, S=RS               

isso tudo é que forma o cCertificado.

Testei no cliente e funcionou com o warsaw na memória.

Tks 4 all.

                                                                                                                   

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...