Ir para conteúdo
  • Cadastre-se

dev botao

Erro ao ajustar INTERNET_OPTION_CLIENT_CERT_CONTEXT: 12046


Ver Solução Respondido por Italo Giurizzato Junior,
  • Este tópico foi criado há 2143 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Se colocar UseCertificado=0 e algumas dessas opções

[Assinar]
RPS=0
Lote=1
URI=1
Recepcionar=0
ConsSit=0
ConsLote=0
ConsNFSeRps=0
ConsNFSe=0
Cancelar=1
RpsGerar=0
LoteGerar=0
RecSincrono=0
Substituir=0


Estiver marcada como 1, esse erro vai acontecer, pois o componente vai tentar assinar e está configurado para não usar certificado, então a mensagem de erro é coerente. Se quiser usar UseCerticado=0, coloque tudo como 0. Porém acho que em algum momento, será necessária a assinatura, e portanto o uso do certificado. Aqui pra mim não deu certo sem certificado para os provedores ISSnet e Thema.

Postado

Olá leandro. Também penso que se faça necessário o uso do certificado, pois quando utilizava o trunk emitia normalmente com o uso do certificado, só que se eu marcar a opção usa certificado = 1 me retorna o erro abaixo, e estou enfrentando este problema com Tecnos e Fiorelli, os dois que testei até agora encontrei o mesmo problema.

---------------------------
Erro ao ajustar INTERNET_OPTION_CLIENT_CERT_CONTEXT: 12046
---------------------------
 

Atenciosamente

Caetano

'Juntos podemos mais'

Postado

tenta mudar no teu componente a propriedade configuracoes.geral.SSLLib        := libCapicom;
Pra mim dá erro 12002 com Capicom, Caso dê esse erro, ( 12002 com libCapicom ), tem uma solução emergencial que pra mim deu certo.

Abre a unit ACBrHTTPReqResp do acbr, na pasta Fontes\AcbrCapicom, na procedure TACBrHTTPReqResp.Execute(Resp: TStream);, logo apos o begin, coloque
FUseCertificate=false; Importante que essa seja a primeir alinha da procedure... desse jeito, aqui pra mim funciona, ou seja, usar o certificado pra assinar mas não pra transmitir. Só que isso é uma gambiarra, pelo menos pra sair do sufoco. Estou depurando pra ver se descubro algo..

 

sds,

 

Leandro

Postado

Tentei fazer esta alteração, mas ai ocorrem outros erros de requisição não enviada. Alguém já esta utilizando o trunk 2 para o provedor Tecnos e Fiorelli?

Agradeço.

 

Atenciosamente

Caetano

'Juntos podemos mais'

Postado

Tamem fiz o seguinte, que deu certo, com lib=libCapicomDelphiSoap , na unit AcbrDfeCapicomDelphiSoap, ma linha 107, aonde define o parametro , INTERNET_OPTION_CLIENT_CERT_CONTEXT, deixei assim.

    if (UseCertificate) then
      InternetSetOption(Data, INTERNET_OPTION_CLIENT_CERT_CONTEXT, Pointer(HCertContext), SizeOf(CERT_CONTEXT))
ou seja, não mostra a mensagem em caso de erro. Funcionou pra envio da NFS-e e NF-e.   Só consigo testar nos provedores ISSnet e Thema, não sei o impacto nos outros provedores.
Não consegui entender ainda, porque a mesma chamada funciona pra emissão de NF-e e pra NFS-e não funciona.. estou analisando mais a fundo pra ver se descubro, mas por ora esta funcionando

Postado

Boa tarde Leandro, fiz como solicitado este erro corrige, porém volta  a outro que já postei aqui, emfim está em um loop de erros.

Ainda bem que é sexta, porque senão eu estaria abandonando o barco.

---------------------------
Seqüência de entrada não estava em um formato incorreto. -
---------------------------

Atenciosamente

Caetano

'Juntos podemos mais'

  • Membros Pro
Postado

Eu também tentei fazer essas alterações, estou fazendo testes mas não estou conseguindo achar uma forma de dar certo.

Se configuro libCapicomDelphiSoap dá o seguinte erro: Erro ao ajustar INTERNET_OPTION_CLIENT_CERT_CONTEXT: 12046

Se configuro libCapicom dá o seguinte erro: "requisição não enviada"

=(

Postado (editado)

Estou com o mesmo problema na Thema, que utiliza o método Enviar.

Está assinando o RPS corretamente, mas apresenta o erro:
Erro ao ajustar INTERNET_OPTION_CLIENT_CERT_CONTEXT: 12046

ACBrDFeCapicomDelphiSoap.pas

TDFeCapicomDelphiSoap.OnBeforePost

na linha 107 ele causa a excessão.

Agora não sai mais nota alguma, não faz mais nada.

Nota: acabei de atualizar todos os fontes.

Editado por Cristiane - Afirmação
  • Membros Pro
Postado (editado)

No meu caso eu fiz comentários nas linhas informadas e a nota não foi emitida. 

Também fiz a alteração passada pelo Itálo referente a parte de UseCertificate setando ela como false e comentando as linhas que falam que não pode emitir a nota sem o certificado, e mesmo assim a nota não é emitida, utilizamos o Pronim e o GovBr, e estamos com os fontes atualizados.

Editado por daniel_mirassol
  • Consultores
Postado

Bom dia Caetano,

Esse erro é do componente ou se trata de um retorno do provedor?

Se é um retorno do provedor, podemos concluir que com as alterações que propus deram certo, ou seja, foi possível estabelecer uma conexão com o provedor.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Membros Pro
Postado

O problema persiste 

Erro ao ajustar INTERNET_OPTION_CLIENT_CERT_CONTEXT: 12046

provedor DBSeller

Se alguem tiver alguma dica deste problema, se ja corrigiram em outros provedores, 

se encontraram alguma alternativa que funciona. Fontes atualizados e nada.

trunk1 funcionando normal.

Gostaria de poder ajudar mas nao esta facil, abraco a todos.

Postado

Estou com o mesmo erro. Inclusive em um executável meu que já funcionava, emitia notas normalmente com o Thema e com o ISSNET, e agora apresenta "Erro ao ajustar INTERNET_OPTION_CLIENT_CERT_CONTEXT: 12046" no Enviar.
Com o provedor Digifred está normal, pois utiliza o método Gerar.

Postado

O que eu fiz aqui pra mim e deu certo, pros provedores Thema e ISSNET, na unit ACBrDFeCapicomDelphiSoap, la linha 106, tem uma exception.. eu tirei ela, deixei somente assim.

    if (UseCertificate) then
        InternetSetOption(Data, INTERNET_OPTION_CLIENT_CERT_CONTEXT,  Pointer(HCertContext), SizeOf(CERT_CONTEXT));

nos arquivo INI, deixei UseCertificado=1 e no componente lib = libCapicomDelphiSoap.

Sempre que atualizo os componente, entro nessa unit e modifico...

  • Curtir 2
Postado

Boa Tarde a Todos,

Sou novo no fórum estou com o problema citado diversas vezes acima. Estou utilizando o servidor ISSNET, Santa Maria RS.

Tentei fazer a alteração na unit citada acima porem sem sucesso. Estou com os fontes e os INIs Atualizados. Quando ele passa pela Procedure OnBeforePost ele cai em um exception como mostra a imagem em anexo. Um muito obrigado a todos.

erro acbr.jpg

Postado

Boa tarde,

depois desta alteração (  if (UseCertificate) then
        InternetSetOption(Data, INTERNET_OPTION_CLIENT_CERT_CONTEXT,  Pointer(HCertContext), SizeOf(CERT_CONTEXT)); ) , o xml retorna em branco, alguma ideia?

  • Membros Pro
Postado

Ola Everton

 

Verifique seu arquivo de soap, provavelmente tem uma notificação de erro contendo o problema.

'Tive o mesmo problema, porem resolvi tudo nas configurações do provedor .ini

Espero ajudar

att

Fabio

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