weverton
Membros-
Total de ítens
8 -
Registro em
-
Última visita
Últimos Visitantes
842 visualizações
weverton's Achievements
-
Boa tarde, Tenho uma aplicação que gera e envia informações para o e-Social. Estou implementando uma funcionalidade para salvar o serial e a senha do certificado A3 para que o usuário não tenha que ficar digitando toda vez. A geração já está funcionando 100%. Porém na hora do envio, aparece a tela do windows pedindo a senha do certificado. Fiz o teste usando o Demo do eSocial e acontece a mesma coisa. Seguem os passos: 1 - Configuração 2 - Importo o XML gerado pela minha aplicação 3 - Peço pra enviar Debugando a aplicação, cheguei até o arquivo ACBrTCP\ACBrWinHTTPReqResp.pas e vi que o problema acontece nesse trecho: Na chamada do método WinHttpReceiveResponse a aplicação pede a senha. Um pouco antes dessa chamada, o contexto do certificado é passado na chamada do método WinHttpSetOption. Alguém já passou por problema semelhante?? Grato,
-
Italo, alguma ideia do que pode estar errado no meu caso, então??
-
Bom dia Italo, Veja como fica o XML quando usa CAPICOM, que funciona normalmente: <?xml version="1.0" encoding="UTF-8"?><Rps xmlns="http://nfse.goiania.go.gov.br/xsd/nfse_gyn_v02.xsd"><InfDeclaracaoPrestacaoServico><Rps Id="rps817UNICA"><IdentificacaoRps><Numero>123</Numero><Serie>SERIE</Serie><Tipo>1</Tipo></IdentificacaoRps><DataEmissao>2017-10-19T08:11:02</DataEmissao><Status>1</Status></Rps><Servico><Valores><ValorServicos>1.00</ValorServicos><Aliquota>2.7900</Aliquota></Valores><CodigoTributacaoMunicipio>620910000</CodigoTributacaoMunicipio><Discriminacao>SERVIÇO</Discriminacao><CodigoMunicipio>25300</CodigoMunicipio></Servico><Prestador><CpfCnpj><Cnpj>18300900000126</Cnpj></CpfCnpj><InscricaoMunicipal>3544539</InscricaoMunicipal></Prestador><Tomador><IdentificacaoTomador><CpfCnpj><Cnpj>12345678000123</Cnpj></CpfCnpj></IdentificacaoTomador><RazaoSocial>TOMADOR</RazaoSocial><Endereco><Endereco>ENDEREÇO</Endereco><Numero>55</Numero><Bairro>Jardim Presidente</Bairro><CodigoMunicipio>25300</CodigoMunicipio><Uf>GO</Uf><Cep>74353230</Cep></Endereco></Tomador></InfDeclaracaoPrestacaoServico><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /><Reference URI="#rps817UNICA"><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /><DigestValue></DigestValue></Reference></SignedInfo><SignatureValue></SignatureValue><KeyInfo></KeyInfo></Signature></Rps> Notei que, nesse caso, não é inserida a parte "<!DOCTYPE test [<!ATTLIST InfDeclaracaoPrestacaoServico Id ID #IMPLIED>]>" no começo do XML. Comentei o trecho de código que gera essa linha no OpenSSL, porém o continua dando o mesmo erro.
-
ConteudoXML: <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE test [<!ATTLIST InfDeclaracaoPrestacaoServico Id ID #IMPLIED>]><Rps xmlns="http://nfse.goiania.go.gov.br/xsd/nfse_gyn_v02.xsd"><InfDeclaracaoPrestacaoServico><Rps Id="rps817UNICA"><IdentificacaoRps><Numero>123</Numero><Serie>SERIE</Serie><Tipo>1</Tipo></IdentificacaoRps><DataEmissao>2017-10-17T19:18:58</DataEmissao><Status>1</Status></Rps><Servico><Valores><ValorServicos>1.00</ValorServicos><Aliquota>2.7900</Aliquota></Valores><CodigoTributacaoMunicipio>620910000</CodigoTributacaoMunicipio><Discriminacao>SERVIÇO</Discriminacao><CodigoMunicipio>25300</CodigoMunicipio></Servico><Prestador><CpfCnpj><Cnpj>18349907000126</Cnpj></CpfCnpj><InscricaoMunicipal>3544206</InscricaoMunicipal></Prestador><Tomador><IdentificacaoTomador><CpfCnpj><Cnpj>37400348000186</Cnpj></CpfCnpj></IdentificacaoTomador><RazaoSocial>TOMADOR</RazaoSocial><Endereco><Endereco>ENDEREÇO</Endereco><Numero></Numero><Bairro>Jardim Presidente</Bairro><CodigoMunicipio>25300</CodigoMunicipio><Uf>GO</Uf><Cep>74353230</Cep></Endereco></Tomador></InfDeclaracaoPrestacaoServico><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /><Reference URI="#rps817UNICA"><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /><DigestValue></DigestValue></Reference></SignedInfo><SignatureValue></SignatureValue><KeyInfo><X509Data><X509Certificate></X509Certificate></X509Data></KeyInfo></Signature></Rps> SignatureNode: SelectionNamespaces: InfElement: InfDeclaracaoPrestacaoServico
-
Italo, Mesmo precisando usar OpenSSL?? Eu já tinha testado com Capicom e funciona normalmente. Porém, no meu caso, precisar assinar usando a property DadosPFX.
-
Bom dia Italo, Sim, no exemplo ocorre o mesmo erro. A única coisa que ajustei no demo foi mudar a biblioteca pra libOpenSSL e setei o caminho do PFX e a senha.
-
Bom dia, Ao tentar enviar uma NFS-e para a prefeitura de Goiânia, no momento de assinar o documento, está ocorrendo um erro no método function "TDFeSSLXmlSignXmlSec.XmlSecSign(const ConteudoXML: AnsiString; SignatureNode, SelectionNamespaces, InfElement: AnsiString): AnsiString" , no seguinte trecho de código: SignResult := xmlSecDSigCtxSign(FdsigCtx, SignNode); if (SignResult < 0) then begin xmlsecMsg := xmlSecErrorsGetMsg(2); raise EACBrDFeException.CreateFmt(cErrDSigSign + sLineBreak + xmlsecMsg, [SignResult]); end; A mensagem é "Erro -1: Falha ao assinar o Documento strdup function failed" Consigo carregar as informações do cerficado normalmente no método SSL.CarregarCertificado
-
Boa noite, Acabei de atualizar e pra mim o erro continua. Já tentei com as DLL's das pastas OpenSSL e XmlSec bem como da MinGW. Estou tentanto assinar XML da Prefeitura de Goiânia e o erro acontece na unit ACBrDFeXsXmlSec na linha 588: SignResult := xmlSecDSigCtxSign(FdsigCtx, SignNode); if (SignResult < 0) then begin xmlsecMsg := xmlSecErrorsGetMsg(2); raise EACBrDFeException.CreateFmt(cErrDSigSign + sLineBreak + xmlsecMsg, [SignResult]); end;