Ir para conteúdo
  • Cadastre-se

dev botao

IssDsf+Campinas+ACBrNFSeX+Cancelamento+Erro1405+Assinatura Digital InvalidaAssinatura Invalida


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

Recommended Posts

  • Membros Pro

Pessoal,

Após migração, erro ao tentar cancelar NFSe do profedor ISSDSF cidade de Campinas.

A emissão funciona ok, componente é o mesmo, configurações as mesmas. 

Pelo exemplo Delphi 7 funciona ok, então copiei TODA a configuração (leitura de INI, copiei o próprio componente) e mesmo assim dá o erro de certificado. Até copiei o arquivo INI da pasta de exemplos e coloquei no diretório da aplicação (arquivo em anexo).

Rotina:

      CANC_ConfigurarComponente;
      InfCancelamento := TInfCancelamento.Create;

      xOkCanc := false;
      try try
        with InfCancelamento do
        begin
          NumeroNFSe      := IntToStr(recNFSeCampinas.NumeroNota);
          SerieNFSe       := '';
          ChaveNFSe       := '';
          CodCancelamento := '1';
          MotCancelamento := recNFSeCampinas.MotCancelamento;
          NumeroLote      := '1';
          NumeroRps       := 0;
          SerieRps        := '';
          ValorNFSe       := 0;
          CodVerificacao  := copy(recFtNotFis.txtver,1,8);
          email           := '';
        end;

        ACBrNFSeX_CANC.CancelarNFSe(InfCancelamento);

        xOkCanc := true;
      except on E: Exception do
      begin
        LogEspecifico('MAGCAM','ERR Cancelamento '+E.Message);
      end;
      end;
      finally
        InfCancelamento.Free;
      end;

      ChecarResposta(tmCancelarNFSe);
      xOkCanc := ACBrNFSeX_CANC.WebService.CancelaNFSe.Sucesso;

Configuração do Componente:

procedure TfmMtNotFis.CANC_ConfigurarComponente;
var
  Ok: Boolean;
  PathMensal, SerieCert: String;
  IniFile: String;
  Ini: TIniFile;
  StreamMemo: TMemoryStream;
begin
  ACBrNFSeX_CANC.LerCidades;

  IniFile := ExtractFilePath(application.ExeName)+'\conf'+LimpaMascara2(gRhEmpres.numide)+'.ini';
  IniFile := BuscaTroca(IniFile,'\\','\');

  Ini := TIniFile.Create(IniFile);


  SerieCert := Ini.ReadString( 'Certificado', 'NumSerie',   '');
  ACBrNFSeX_CANC.Configuracoes.Certificados.NumeroSerie := SerieCert;

  ACBrNFSeX_CANC.SSL.DescarregarCertificado;

  with ACBrNFSeX_CANC.Configuracoes.Geral do
  begin
    SSLLib        := TSSLLib(Ini.ReadInteger('Certificado', 'SSLLib',     0));
    SSLCryptLib   := TSSLCryptLib(Ini.ReadInteger('Certificado', 'CryptLib',   0));
    SSLHttpLib    := TSSLHttpLib(Ini.ReadInteger('Certificado', 'HttpLib',    0));
    SSLXmlSignLib := TSSLXmlSignLib(Ini.ReadInteger('Certificado', 'XmlSignLib', 0));

    Salvar           := Ini.ReadBool(  'Geral', 'Salvar',         True);
    ExibirErroSchema := Ini.ReadBool(   'Geral', 'ExibirErroSchema', True);
    RetirarAcentos   := Ini.ReadBool(  'Geral', 'RetirarAcentos', True);
    FormatoAlerta    := Ini.ReadString( 'Geral', 'FormatoAlerta',    'TAG:%TAGNIVEL% ID:%ID%/%TAG%(%DESCRICAO%) - %MSG%.');
    FormaEmissao     := TpcnTipoEmissao(Ini.ReadInteger('Geral', 'FormaEmissao',     0));

    ConsultaLoteAposEnvio := Ini.ReadBool('Geral', 'ConsultaAposEnvio',    False);
    ConsultaAposCancelar  := Ini.ReadBool('Geral', 'ConsultaAposCancelar', False);
    MontarPathSchema := Ini.ReadBool('Geral', 'MontarPathSchemas',    True);

    CNPJPrefeitura := Ini.ReadString('Emitente', 'CNPJPref',    '');

    Emitente.CNPJ           := Ini.ReadString('Emitente', 'CNPJ',        '');
    Emitente.InscMun        := Ini.ReadString('Emitente', 'IM',          '');
    Emitente.RazSocial      := Ini.ReadString('Emitente', 'RazaoSocial', '');
    Emitente.WSUser         := '';
    Emitente.WSSenha        := '';
    Emitente.WSFraseSecr    := '';
    Emitente.WSChaveAcesso  := '';
    Emitente.WSChaveAutoriz := '';
  end;

  with ACBrNFSeX_CANC.Configuracoes.WebServices do
  begin
    Ambiente   := StrToTpAmb(Ok,IntToStr(Ini.ReadInteger('WebService', 'Ambiente',     0)+1));
    Visualizar := Ini.ReadBool(   'WebService', 'Visualizar',   False);
    Salvar     := Ini.ReadBool(   'WebService', 'SalvarSOAP',   False);
    UF         := Ini.ReadString('Emitente', 'UF',          '');

    AjustaAguardaConsultaRet := Ini.ReadBool(   'WebService', 'AjustarAut',   False);

      AguardarConsultaRet := ifThen(StrToInt(Ini.ReadString( 'WebService', 'Aguardar',     '0')) < 1000,
         StrToInt(Ini.ReadString( 'WebService', 'Aguardar',     '0')) * 1000,
         StrToInt(Ini.ReadString( 'WebService', 'Aguardar',     '0')));

      Tentativas := StrToInt(Ini.ReadString( 'WebService', 'Tentativas',   '5'));

      IntervaloTentativas := ifThen(StrToInt(Ini.ReadString( 'WebService', 'Intervalo',    '0')) < 1000,
         StrToInt(Ini.ReadString( 'WebService', 'Intervalo',    '0')) * 1000,
         StrToInt(Ini.ReadString( 'WebService', 'Intervalo',    '0')));

    TimeOut   := Ini.ReadInteger('WebService', 'TimeOut',      5000);
    ProxyHost := Ini.ReadString('Proxy', 'Host',  '');
    ProxyPort := Ini.ReadString('Proxy', 'Porta', '');
    ProxyUser := Ini.ReadString('Proxy', 'User',  '');
    ProxyPass := Ini.ReadString('Proxy', 'Pass',  '');
  end;

  ACBrNFSeX_CANC.SSL.SSLType := TSSLType(Ini.ReadInteger('WebService', 'SSLType',      0));

  with ACBrNFSeX_CANC.Configuracoes.Arquivos do
  begin
    NomeLongoNFSe    := True;
    Salvar           := Ini.ReadBool(  'Arquivos', 'Salvar',          False);
    SepararPorMes    := Ini.ReadBool(  'Arquivos', 'PastaMensal',     False);
    AdicionarLiteral := Ini.ReadBool(  'Arquivos', 'AddLiteral',      False);
    EmissaoPathNFSe  := Ini.ReadBool(  'Arquivos', 'EmissaoPathNFSe', False);
    SepararPorCNPJ   := Ini.ReadBool(  'Arquivos', 'SepararPorCNPJ',  False);
    PathSchemas      := Ini.ReadString('Geral', 'PathSchemas',    '');
    PathGer          := Ini.ReadString('Geral', 'PathSalvar',     PathWithDelim(ExtractFilePath(Application.ExeName))+'Logs');
    PathMensal       := GetPathGer(0);
    PathSalvar       := PathMensal;
    PathCan          := PathMensal;
  end;

  // A propriedade CodigoMunicipio tem que ser a ultima a receber o seu valor
  // Pois ela se utiliza das demais configurações
  with ACBrNFSeX_CANC.Configuracoes.Geral do
  begin
    CodigoMunicipio := StrToIntDef(Ini.ReadString('Emitente', 'CodCidade',   ''), 0);
  end;
  
  Ini.Free;

end;

 

 

Erro:

Método Executado: CancelarNFSe
 
Parâmetros de Envio
Numero da NFSe: 4077
Série da NFSe : 
 
Parâmetros de Retorno
Situação: 
Link    : 
Sucesso : False
 
Retorno do Pedido de Cancelamento:
Situação : 
Data/Hora: 30/12/1899
Mensagem : 
Sucesso  : 
Link     : 
 
Erro(s):
Código  : 1405
Mensagem: Assinatura Digital InvalidaAssinatura Invalida.
Correção: 
---------
Código  : X203
Mensagem: Não foi retornado nenhuma NFSe.
Correção: 
---------

 

Agradeço a atenção

conf06973087000160.ini

Link para o comentário
Compartilhar em outros sites

  • Administradores

Tópico movido para a área do SAC, para que o SLA de respostas seja considerado

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 !!

Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

Boa tarde,

Você esta com todos os fontes de todas as pastas atualizados?

Se sim, reinstalou o ACBr?

Tivemos relatos com um outro provedor que também acusava assinatura invalida no cancelamento.

Detectamos que o problema era quebra de linha no motivo do cancelamento.

Foi feita uma alteração para trocar a quebra de linha pelo ";"

Se não esta com os fontes atualizados, favor atualizar e faça novos testes.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Membros Pro

Era o Enter mesmo no campo motivo!!! Muito obrigada!

Usei essa função básica e resolveu.
 

function RetiraEnter(aText : string;fReplace:string=''): string;
begin
  { Retirando as quebras de linha em campos blob }
  Result := StringReplace(aText, #$D#$A, fReplace, [rfReplaceAll]);
 
  { Retirando as quebras de linha em campos blob }
  Result := StringReplace(Result, #13#10, fReplace, [rfReplaceAll]);
end;

 

Link para o comentário
Compartilhar em outros sites

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

The popup will be closed in 10 segundos...