Ir para conteúdo
  • Cadastre-se

dev botao

Erro: Não encontrei final do elemento: </EnviarLoteRpsEnvio>


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

Recommended Posts

Postado

Bom dia!

Acabei de atualizar todos os componentes, quando estou gerando o RPS ou um Lote de RPS estou recebendo a seguinte mensagem:
 

Citar

Não encontrei final do elemento: </EnviarLoteRpsEnvio>

Já debuguei o código, e ele está parando aqui:
 

function TDFeSSLClass.AdicionarSignatureElement(ConteudoXML: String;
  AddX509Data: Boolean; docElement, IdSignature: String): String;
var
  URI, TagEndDocElement: String;
  I: Integer;
begin
  URI := ExtraiURI(ConteudoXML);

  TagEndDocElement := '</' + docElement + '>';
  I := PosLast(TagEndDocElement, ConteudoXML);
  if I = 0 then
    raise EACBrDFeException.Create('Não encontrei final do elemento: ' + TagEndDocElement);

  Result := copy(ConteudoXML, 1, I - 1) +
            SignatureElement(URI, AddX509Data, IdSignature) + TagEndDocElement;
end;

Os valores das variáveis:

Citar

docElement: EnviarLoteRpsEnvio
TagEndDocElement: </EnviarLoteRpsEnvio >
ConteudoXML: '<?xml version="1.0" encoding="UTF-8"?><Arg xmlns="http://www.tinus.com.br"><LoteRps Id="5"><NumeroLote>5</NumeroLote><Cnpj>24185522000173</Cnpj><InscricaoMunicipal>0014028</InscricaoMunicipal><QuantidadeRps>1</QuantidadeRps><ListaRps><Rps><InfRps Id="28005"><IdentificacaoRps><Numero>28</Numero><Serie>005</Serie><Tipo>1</Tipo></IdentificacaoRps><DataEmissao>2016-07-12T09:57:20</DataEmissao><NaturezaOperacao>1</NaturezaOperacao><RegimeEspecialTributacao>2</RegimeEspecialTributacao><OptanteSimplesNacional>2</OptanteSimplesNacional><IncentivadorCultural>2</IncentivadorCultural><Status>1</Status><Servico><Valores><ValorServicos>35.00</ValorServicos><IssRetido>2</IssRetido><ValorIss>1.75</ValorIss><BaseCalculo>35.00</BaseCalculo><Aliquota>0.0500</Aliquota><ValorLiquidoNfse>35.00</ValorLiquidoNfse></Valores><ItemListaServico>1401</ItemListaServico><CodigoTributacaoMunicipio>2408003</CodigoTributacaoMunicipio><Discriminacao>01 ALINHAMENTO DIRECAO LASER PASSEIO R$: 35,00</Discriminacao><CodigoMunicipio>2408003</CodigoMunicipio></Servico><Prestador><Cnpj>24185522000173</Cnpj><InscricaoMunicipal>0014028</InscricaoMunicipal></Prestador><Tomador><IdentificacaoTomador><CpfCnpj><Cnpj>01974267000738</Cnpj></CpfCnpj></IdentificacaoTomador><RazaoSocial>NOLEM COMERCIAL IMP E EXPORT S/A</RazaoSocial><Endereco><Endereco>BR 304 KM 13-0</Endereco><Bairro>ZONA RURAL</Bairro><CodigoMunicipio>2408003</CodigoMunicipio><Uf>RN</Uf><Cep>59600970</Cep></Endereco><Contato><Telefone>8434224033</Telefone></Contato></Tomador></InfRps><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="#28005"><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>lcQSzKH7yUPcyixLNG1ORCgZIEI=</DigestValue></Reference></SignedInfo><SignatureValue>UcUGU+mI9Ob80Y7xzd/2W3+KvgE6Jp7K9/x9KcbTr12m8hm8obcuykwyRKcTuNRtvKmPAetXnNKx2SsNAmw3CQJm5MDd6g5jmbOAJYKquT37auzthOZNxxwSR5x5aBBlRt9ELv7HNQMbmdc4xeJRvy2kmA5sHnZiG1e2tbvZ0Tu+WUJaRLWGnlwZ7fKl3jG9CsKOQSyd6oRs+iv84+TltrlytsxO9rPNxoDJNYtsiDIxehjlWc9PnjLyPY976xHkeOJxNiGSUYN/z9nRjTrh3EhzCVqk8s+IOomZq1y8FHWX3DOxlkhcNGEYqZs+CJ+IB6Y6/dz1nEGf9dGkS2N87A==</SignatureValue><KeyInfo><X509Data><X509Certificate>MIIITjCCBjagAwIBAgIQeJI94t/AOsRJ7DfbcnI7/DANBgkqhkiG9w0BAQsFADB0MQswCQYDVQQGEwJCUjETMBEGA1UEChMKSUNQLUJyYXNpbDEtMCsGA1UECxMkQ2VydGlzaWduIENlcnRpZmljYWRvcmEgRGlnaXRhbCBTLkEuMSEwHwYDVQQDExhBQyBDZXJ0aXNpZ24gTXVsdGlwbGEgRzUwHhcNMTYwNDExMDAwMDAwWhcNMTcwNDEwMjM1OTU5WjCB2TELMAkGA1UEBhMCQlIxEzARBgNVBAoUCklDUC1CcmFzaWwxKTAnBgNVBAsUIEF1dGVudGljYWRvIHBvciBBUiBGZWNvbWVyY2lvIENFMRswGQYDVQQLFBJBc3NpbmF0dXJhIFRpcG8gQTExFjAUBgNVBAsUDUlEIC0gMTAxMDc0NDAxLjAsBgNVBAMTJUpVTUJPIERJU1RSSUJVSURPUkEgREUgQVVUT1BFQ0FTIExUREExJTAjBgkqhkiG9w0BCQEWFmNwZEBvbGluZGFwbmV1cy5jb20uYnIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCTVtyLN6LmpB7/7U2bEFXWELLkIRwMPaX/WBke0DMaxQMCEysfqQZnkOf1hXPmTI78SLOYwnB6jFiJwZGhytAzg6BBCz51Z4JNhauTt5oa44i5f5Byouo0+Qa1BWNtSN9506A6XduOHN9M0rUVyp1wweohEhDIJdt2xC5Nhnt3Gvi8e2AvGsbhj8MCM2NSgPqxX4mePykLpnsouhimJv5eLTOq496jTspti9EjpQzgjSn96xbFUj6ZR/BZIs/3tn8vrnMQpA4f3/1R38S52c1irmRALtEQ64c0Vakel6W2XS6CoKSPfJRqAU5x13KcknS1CM6cC7t5zfDlZk0UVyjPAgMBAAGjggN0MIIDcDCBugYDVR0RBIGyMIGvoD4GBWBMAQMEoDUEMzExMDMxOTk2MDc3Mzc0MzE0NjIwMDAwMDAwMDAwMDAwMDAwMDAwMjY1OTg1MlNFU1BSTqAhBgVgTAEDAqAYBBZOSUNPTEUgU09BUkVTIERFIFNPVVNBoBkGBWBMAQMDoBAEDjEwMjkxMDQyMDAwMTgyoBcGBWBMAQMHoA4EDDAwMDAwMDAwMDAwMIEWY3BkQG9saW5kYXBuZXVzLmNvbS5icjAJBgNVHRMEAjAAMB8GA1UdIwQYMBaAFJ1Qz73/JMqvsTPrF+JCeo5pKo5TMA4GA1UdDwEB/wQEAwIF4DCBiQYDVR0gBIGBMH8wfQYGYEwBAgELMHMwcQYIKwYBBQUHAgEWZWh0dHA6Ly9pY3AtYnJhc2lsLmNlcnRpc2lnbi5jb20uYnIvcmVwb3NpdG9yaW8vZHBjL0FDX0NlcnRpc2lnbl9NdWx0aXBsYS9EUENfQUNfQ2VydGlTaWduTXVsdGlwbGEucGRmMIIBJQYDVR0fBIIBHDCCARgwXKBaoFiGVmh0dHA6Ly9pY3AtYnJhc2lsLmNlcnRpc2lnbi5jb20uYnIvcmVwb3NpdG9yaW8vbGNyL0FDQ2VydGl

 

João Leno

Developer In Lunar Tecnologia
Formação: Bacharel em Sistemas de Informação
Pós Graduação: Infraestrutura e aplicações em redes de computadores (Cursando)
Cell: (84) 8135-9585
Skype: joaolenosi
Site: http://lunartecnologia.com.br/

Se não puder vencer pelo o talento, vença pelo o esforço.

Postado

Desculpe-me, Italo!
Estou emitindo para cidade de Mossoró provedor Tinus.

Aqui não possui webservices é apenas a geração do XML e upload manual.

João Leno

Developer In Lunar Tecnologia
Formação: Bacharel em Sistemas de Informação
Pós Graduação: Infraestrutura e aplicações em redes de computadores (Cursando)
Cell: (84) 8135-9585
Skype: joaolenosi
Site: http://lunartecnologia.com.br/

Se não puder vencer pelo o talento, vença pelo o esforço.

Postado

Exatamente, estou utilizando o método GerarLote.
Vou atualizar e posto o feedback!

  • Curtir 1

João Leno

Developer In Lunar Tecnologia
Formação: Bacharel em Sistemas de Informação
Pós Graduação: Infraestrutura e aplicações em redes de computadores (Cursando)
Cell: (84) 8135-9585
Skype: joaolenosi
Site: http://lunartecnologia.com.br/

Se não puder vencer pelo o talento, vença pelo o esforço.

Postado

Italo, o erro que mencionei no post foi resolvido,

porém outro erro aconteceu.

Demorei a dar o feedback por que estava debugando.

Segue os prints do erro.

Te adianto que o problema era que estava faltando abrir " na tag do tinus e o nome também estava escrito errado: inus.com.br

Citar

Como estava vindo:
 '  xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ds1=inus.com.br" '

A forma correta:
' xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ds1="tinus.com.br"  '
 

Solução do problema:
 

Citar

  SelectionNamespaces   := StringReplace(SelectionNamespaces, 'xmlns:ds1=inus.com.br"', 'xmlns:ds1="tinus.com.br"', [rfIgnoreCase]);

A alteração foi realizada na unit ACBrDFeCapicom
 

procedure TDFeCapicom.VerificarValoresPadrao(var SignatureNode: String;
  var SelectionNamespaces: String);
begin
  if SignatureNode = '' then
    SignatureNode := CAPICOM_SIGNATURE_NODE;

  SelectionNamespaces   := StringReplace(SelectionNamespaces, 'xmlns:ds1=inus.com.br"', 'xmlns:ds1="tinus.com.br"', [rfIgnoreCase]); 
  if SelectionNamespaces = '' then
    SelectionNamespaces := DSIGNS
  else
  begin
    if LeftStr(SelectionNamespaces, Length(DSIGNS)) <> DSIGNS then
      SelectionNamespaces := DSIGNS + ' ' + SelectionNamespaces;
  end;
end;

Eu dei um replace por que não consegui localizar de onde tava vindo o valor.

 

imagem1.png

imagem2.png

imagem3.png

imagem4.png

O último problema que está acontecendo é na hora ler o elemento de assinatura XMLDOC.

Citar

É preciso carregar o template antes de assinar.


Segue o print:

 

imagem5.png

Trecho do código:

   if (not xmldoc.loadXML( WideString(AXml) )) then
        raise EACBrDFeException.Create('Não foi possível carregar XML'+sLineBreak+ AXml);

      xmldoc.setProperty('SelectionNamespaces', SelectionNamespaces);

      //DEBUG
      //xmldoc.save('c:\temp\xmldoc.xml');

      // Criando Elemento de assinatura //
      xmldsig := CoMXDigitalSignature50.Create;

      // Lendo elemento de Assinatura de XMLDOC //
      xmldsig.signature := xmldoc.selectSingleNode( WideString(SignatureNode) );
      if (xmldsig.signature = nil) then
        raise EACBrDFeException.Create('É preciso carregar o template antes de assinar.');

Valor das variáveis:

SignatureNode     = .//ds1:EnviarLoteRpsEnvio/ds:Signature
xmldsig.signature = nil

João Leno

Developer In Lunar Tecnologia
Formação: Bacharel em Sistemas de Informação
Pós Graduação: Infraestrutura e aplicações em redes de computadores (Cursando)
Cell: (84) 8135-9585
Skype: joaolenosi
Site: http://lunartecnologia.com.br/

Se não puder vencer pelo o talento, vença pelo o esforço.

Postado

Muito obrigado, Italo!

Vou ficar verificando direto para ver se já está disponível.

Assim que efetuar todos os testes, eu posto novamente para dizer se está tudo ok.

João Leno

Developer In Lunar Tecnologia
Formação: Bacharel em Sistemas de Informação
Pós Graduação: Infraestrutura e aplicações em redes de computadores (Cursando)
Cell: (84) 8135-9585
Skype: joaolenosi
Site: http://lunartecnologia.com.br/

Se não puder vencer pelo o talento, vença pelo o esforço.

  • 2 anos depois...
  • Administradores
Postado

Boa tarde @PrimeSoftware

Este tópico é bem antigo, caso precise de apoio SAC, queira por favor criar um novo tópico na área SAC fornecendo todos os detalhes da sua situação.

Att.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Este tópico foi criado há 2146 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.