Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Bom dia

Estou desenvolvendo a nota de substituição NFSe com o provedor SystemPro  e estou com erro na Assinatura da tag InfPedidoCancelamento

Nao consigo validar, acredito que é por causa que meu xml não está incluindo a Id dentro da Signature

image.thumb.png.ff68e564dac5540886af4e82c185c825.png

Tem algum procedimento que não esteja fazendo corretamente?

Estou encaminhando em anexo o exemplo SubstituirNfseEnvio.xml, o 274-ped-sub.xml é o xml que consegui fazer e também estou enviando em anexo o arquivo SystemPro.ini

Aguardo retorno

 

274-ped-sub.xml SystemPro.ini SubstituirNfseEnvio.xml

  • Consultores
Postado

Boa tarde Diane,

Favor atualizar todos os fontes de todas as pastas, reinstale a suíte ACBr usando o ACBrInstall_Trunk2 com a opção de apagar arquivos antigos marcada.

Note que o arquivo INI do provedor contem algumas alterações comparado com o que você anexou.

Atualiza tudo e faça novos testes.

  • Curtir 1
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

  • 2 meses depois ...
Postado

Sim consegui Resolver na linha comentada dos fontes do Acbr

//    FPDadosMsg := {FTagI + }GerarDadosMsg.Gera_DadosMsgSubstituirNFSe{ + FTagF};

coloquei devolta a tag 

 FPDadosMsg := FTagI + GerarDadosMsg.Gera_DadosMsgSubstituirNFSe + FTagF;

Segue código abaixo:

procedure TNFSeSubstituirNFSe.DefinirDadosMsg;
var
  i: Integer;
  Gerador: TGerador;
  Identificador: string;
begin
  FCabecalhoStr := FPConfiguracoesNFSe.Geral.ConfigEnvelope.Substituir.CabecalhoStr;
  FDadosStr     := FPConfiguracoesNFSe.Geral.ConfigEnvelope.Substituir.DadosStr;
  FTagGrupo     := FPConfiguracoesNFSe.Geral.ConfigEnvelope.Substituir.TagGrupo;
  FTagElemento  := FPConfiguracoesNFSe.Geral.ConfigEnvelope.Substituir.TagElemento;
  FDocElemento  := FPConfiguracoesNFSe.Geral.ConfigEnvelope.Substituir.DocElemento;
  FInfElemento  := FPConfiguracoesNFSe.Geral.ConfigEnvelope.Substituir.InfElemento;

  FxsdServico := FPConfiguracoesNFSe.Geral.ConfigSchemas.ServicoSubstituir;

  Identificador := '';/// FPConfiguracoesNFSe.Geral.ConfigGeral.Identificador;

  if Identificador <> '' then
    Identificador := ' ' + Identificador + '="sub' +
                     TNFSeSubstituirNfse(Self).FNumeroNFSe + '"';

  InicializarDadosMsg(FPConfiguracoesNFSe.Geral.ConfigEnvelope.Substituir.IncluiEncodingCab);

  GerarDadosMsg := TNFSeG.Create;
  try
    if FTagGrupo <> '' then
      FTagGrupo := FPrefixo3 + FTagGrupo;

    if FdocElemento <> '' then
      FdocElemento := FPrefixo3 + FdocElemento;

    if FPConfiguracoesNFSe.Geral.ConfigAssinar.RPS then
    begin
      for I := 0 to FNotasFiscais.Count - 1 do
        GerarLoteRPScomAssinatura(FNotasFiscais.Items.XMLAssinado);
    end
    else begin
      for I := 0 to FNotasFiscais.Count - 1 do
        GerarLoteRPSsemAssinatura(FNotasFiscais.Items.XMLOriginal);
    end;

    case FProvedor of
      proEquiplano,
      proPublica: FURI:= '';

      proDigifred:  FURI := 'CANC' + TNFSeSubstituirNfse(Self).FNumeroNFSe;

      proSaatri: FURI := 'Cancelamento_' + FPConfiguracoesNFSe.Geral.Emitente.CNPJ;

      proIssIntel,
      proISSNet: begin
                   FURI := '';
                   FURIRef := 'http://www.w3.org/TR/2000/REC-xhtml1-20000126/';
                 end;

      proTecnos: FURI := '2' + FPConfiguracoesNFSe.Geral.Emitente.CNPJ +
                            IntToStrZero(StrToInt(TNFSeSubstituirNfse(Self).FNumeroNFSe), 16);

    else
      FURI := 'pedidoCancelamento_' + FPConfiguracoesNFSe.Geral.Emitente.CNPJ +
                      FPConfiguracoesNFSe.Geral.Emitente.InscMun +
                      TNFSeSubstituirNfse(Self).FNumeroNFSe;
    end;

    InicializarTagITagF;

    if FProvedor in [proIssDSF] then
    begin
      Gerador := TGerador.Create;
      try
        Gerador.ArquivoFormatoXML := '';

        for i := 0 to FNotasFiscais.Count-1 do
        begin
          with FNotasFiscais.Items do
          begin
            Gerador.wGrupoNFSe('Nota Id="nota:' + NFSe.Numero + '"');
            Gerador.wCampoNFSe(tcStr, '', 'InscricaoMunicipalPrestador', 01, 11,  1, FPConfiguracoesNFSe.Geral.Emitente.InscMun, '');
            Gerador.wCampoNFSe(tcStr, '#1', 'NumeroNota', 01, 12, 1, OnlyNumber(NFSe.Numero), '');
            Gerador.wCampoNFSe(tcStr, '', 'CodigoVerificacao', 01, 255,  1, NFSe.CodigoVerificacao, '');
            Gerador.wCampoNFSe(tcStr, '', 'MotivoCancelamento', 01, 80, 1, TNFSeSubstituirNfse(Self).FMotivoCancelamento, '');
            Gerador.wGrupoNFSe('/Nota');
          end;
        end;

        FvNotas := Gerador.ArquivoFormatoXML;
      finally
        Gerador.Free;
      end;
    end;

    InicializarGerarDadosMsg;

    with GerarDadosMsg do
    begin
      NumeroNFSe := TNFSeSubstituirNfse(Self).NumeroNFSe;
      CodigoCanc := TNFSeSubstituirNfse(Self).FCodigoCancelamento;
      MotivoCanc := TNFSeSubstituirNfse(Self).FMotivoCancelamento;
      NumeroRps  := TNFSeSubstituirNfse(Self).FNumeroRps;
      QtdeNotas  := FNotasFiscais.Count;
      Notas      := FvNotas;

      // Necessário para o provedor ISSDSF - CTA
      NumeroLote := FNotasFiscais.NumeroLote;
      Transacao  := FNotasFiscais.Transacao;
    end;

    AjustarOpcoes( GerarDadosMsg.Gerador.Opcoes );

//    FPDadosMsg := {FTagI + }GerarDadosMsg.Gera_DadosMsgSubstituirNFSe{ + FTagF};
    FPDadosMsg := FTagI + GerarDadosMsg.Gera_DadosMsgSubstituirNFSe + FTagF;
    FIDLote := GerarDadosMsg.IdLote;
  finally
    GerarDadosMsg.Free;
  end;

  // O procedimento recebe como parametro o XML a ser assinado e retorna o
  // mesmo assinado da propriedade FPDadosMsg
  if (FPConfiguracoesNFSe.Geral.ConfigAssinar.Substituir) and (FPDadosMsg <> '') then
    AssinarXML(FPDadosMsg, FdocElemento, FinfElemento, 'Falha ao Assinar - Substituir NFS-e: ');

  FPDadosMsg := '<' + FPrefixo3 + 'SubstituirNfseEnvio' + FNameSpaceDad + '>' +
                '<' + FPrefixo3 + 'SubstituicaoNfse'+ Identificador + '>' +
                 SeparaDados(FPDadosMsg, FPrefixo3 + 'Pedido', True) +
                 FvNotas  + FTagF;

  if FPConfiguracoesNFSe.Geral.ConfigSchemas.Validar then
    FNotasFiscais.ValidarLote(FPDadosMsg,
                              FPConfiguracoes.Arquivos.PathSchemas +
                              FPConfiguracoesNFSe.Geral.ConfigSchemas.ServicoSubstituir);


  IncluirEncoding(FPConfiguracoesNFSe.Geral.ConfigEnvelope.Substituir.IncluiEncodingDados);

  FDadosEnvelope := FPConfiguracoesNFSe.Geral.ConfigEnvelope.Substituir.Envelope;

  if (FPDadosMsg = '') or (FDadosEnvelope = '') then
    GerarException(ACBrStr('A funcionalidade [Substituir NFSe] não foi disponibilizada pelo provedor: ' +
                           FPConfiguracoesNFSe.Geral.xProvedor));
end;

Postado

Obrigado pela ajuda.

Mas para mim está acontecendo o seguinte, se tiro o comentário, deixando igual ao que vc fez, o provedor SystemPro retorna: 

<?xml version="1.0" encoding="UTF-8"?>
-<SubstituirNfseResposta xmlns="http://www.abrasf.org.br/nfse.xsd" xmlns:ns2="http://www.w3.org/2000/09/xmldsig#">
-<ListaMensagemRetorno>
-<MensagemRetorno>
<Codigo>L56</Codigo>
<Mensagem>Arquivo XML nao contem a Assinatura Digital apos a tag InfDeclaracaoPrestacaoServico</Mensagem>
<Correcao>Efetue a geracao da Assinatura</Correcao>
</MensagemRetorno>
</ListaMensagemRetorno>
</SubstituirNfseResposta>

Se deixo como está nos fontes do ACBr retorna:

<?xml version="1.0" encoding="UTF-8"?>
-<SubstituirNfseResposta xmlns="http://www.abrasf.org.br/nfse.xsd" xmlns:ns2="http://www.w3.org/2000/09/xmldsig#">
-<ListaMensagemRetorno>
-<MensagemRetorno>
<Codigo>L56</Codigo>
<Mensagem>Assinatura Invalida na tag InfPedidoCancelamento</Mensagem>
<Correcao>Assinatura Invalida na tag InfPedidoCancelamento</Correcao>
</MensagemRetorno>
</ListaMensagemRetorno>
</SubstituirNfseResposta>

Segue meu arquivo XML gerado:

<?xml version="1.0" encoding="UTF-8"?>
-<SubstituirNfseEnvio xmlns="http://www.abrasf.org.br/nfse.xsd">
-<SubstituicaoNfse Id="sub104">
-<Pedido>
-<InfPedidoCancelamento Id="pedidoCancelamento_0408530600014918701104">
-<IdentificacaoNfse>
<Numero>104</Numero>
-<CpfCnpj>
<Cnpj>04085306000149</Cnpj>
</CpfCnpj>
<InscricaoMunicipal>18701</InscricaoMunicipal>
<CodigoMunicipio>4307005</CodigoMunicipio>
</IdentificacaoNfse>
<CodigoCancelamento>2</CodigoCancelamento>
</InfPedidoCancelamento>
-<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="#pedidoCancelamento_0408530600014918701104">
-<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>tB+IbmmQMsdd7Vi9iPmG6XPT+D8=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>Cvo//b+142hx4zT+rWmto/sxS5A5Th2PsOj3Vj4Q7cruMOcz8D0BRcIR2UsszEyEKfIhBgTss1WxWNkNqZpZjAoBWEi7fFlq/rX8ksPgySvkusllKOvXPenR5Ny4n/JGXYbEKDG0JQNRP/vAorSN2A3ddgjU/fYd5zIrC6FvHg6y7vvoOGIgDQBYUx/W1g/6wpkielfWR4sVMo1GhCxiAYgXK50xGDCUUfPhfxrLhsGWE9WvcabQmycf3xL0r1R1TpLadMcTolhTnrrtE7cU8iF22dnVCV5/IoF7EtE8ESTSTKaDe5hIhBd2nyVWpRrjsjfsY+gi5/F2oKVmmB2org==</SignatureValue>
-<KeyInfo>
-<X509Data>
<X509Certificate>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</X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
</Pedido>
-<Rps>
-<InfDeclaracaoPrestacaoServico Id="047687RPP">
-<Rps>
-<IdentificacaoRps>
<Numero>047687</Numero>
<Serie>RPP</Serie>
<Tipo>1</Tipo>
</IdentificacaoRps>
<DataEmissao>2019-10-02</DataEmissao>
<Status>1</Status>
</Rps>
-<Servico>
-<Valores>
<ValorServicos>5.00</ValorServicos>
<ValorDeducoes>0.00</ValorDeducoes>
<ValorIss>0.15</ValorIss>
<Aliquota>3.00</Aliquota>
<BaseCalculo>5.00</BaseCalculo>
<ValorPis>0.00</ValorPis>
<ValorCofins>0.00</ValorCofins>
<ValorInss>0.00</ValorInss>
<ValorIr>0.00</ValorIr>
<ValorCsll>0.00</ValorCsll>
</Valores>
<IssRetido>2</IssRetido>
<ItemListaServico>01.07</ItemListaServico>
<Discriminacao>SERV. DE INTALACAO E TREINAM. DE EQUIPAMENTOS</Discriminacao>
<CodigoMunicipio>4307005</CodigoMunicipio>
<ExigibilidadeISS>1</ExigibilidadeISS>
<MunicipioIncidencia>4307005</MunicipioIncidencia>
</Servico>
<Competencia>2019-10-01</Competencia>
-<Prestador>
-<CpfCnpj>
<Cnpj>04085306000149</Cnpj>
</CpfCnpj>
<InscricaoMunicipal>18701</InscricaoMunicipal>
</Prestador>
-<Tomador>
<RazaoSocial>Consumidor Final</RazaoSocial>
</Tomador>
<RegimeEspecialTributacao>6</RegimeEspecialTributacao>
<OptanteSimplesNacional>1</OptanteSimplesNacional>
<IncentivoFiscal>2</IncentivoFiscal>
</InfDeclaracaoPrestacaoServico>
</Rps>
</SubstituicaoNfse>
</SubstituirNfseEnvio>

Alguma luz?

Obrigado

 

Postado

No arquivo SystemPro.ini deve tar falanto colocar true pra assinatura do substituir

exemplo:

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

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