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.