NFeValidaAssinatura

A função NFeValidaAssinatura faz a validação da assinatura de um documento XML de uma NF-e.

Tipo de Retorno

Integer

Pacote

A função NFeValidaAssinatura está definida dentro do pacote NF-eValidaAssinatura.pkg.

Sintaxe

Move (NFeValidaAssinatura({sXml}, &{sMsgResultado}, &{sTitular}, ;
                          &{sCnpj}, &{sNroSerie}, &{sEmissor}, ;
                          &{sInicioValidade}, &{sFimValidade}, ;
                          {bExibeErro})) to {iRet}

Onde:

  • {sXml} é o conteúdo completo do arquivo XML que você quer validar. A partir da versão 2022/01, é possível informar apenas o caminho completo do arquivo XML.;
  • &{sMsgResultado} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá a mensagem literal do resultado da chamada da função;
  • &{sTitular} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá o nome do titular do certificado da assinatura;
  • &{sCnpj} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá o CNPJ do titular do certificado da assinatura;
  • &{sNroSerie} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá o número de série do certificado da assinatura;
  • &{sEmissor} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá o nome do emissor do certificado da assinatura;
  • &{sInicioValidade} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá a data de início da validade do certificado da assinatura;
  • &{sFimValidade} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá a data de fim da validade do certificado da assinatura;
  • {bExibeErro} é usado para indicar se a função deve exibir ou não os erros que ocorrerem na execução;
  • {iRet} é o retorno da execução da função sendo que um valor diferente de 0 (zero) indica que houve algum erro de validação e 0 (zero) indica que a assinatura é válida.

Exemplo

Um exemplo de uso da função pode ser encontrado na view ValidaAssinatura.vw da Workspace de Exemplo.

Observação:

  • A partir da versão 2022/01, o problema abaixo é solucionado desde que no parâmetro {sXML} seja informado o caminho completo do arquivo XML.
  • Há casos conhecidos de falha de validação, quando o XML possui caracteres UFT-8. Por exemplo, o caractere "-" em UTF-8 (C2 96) não é lido corretamente pelas classes de XML do DataFlex e é exibido como "?". Aparentemente, todos os caracteres UFT-8 que o DataFlex não consegue ler são convertidos para "?". Desta forma a função de validação falha ao validar o XML com este caractere.

Não encontrou o que precisava, entre em contato conosco.