Erro de validação na geração da NFC-e

378 views
Skip to first unread message

Diego Queiroz

unread,
Oct 24, 2016, 6:33:22 AM10/24/16
to NFePHP
Bom dia pessoal,

Estou utilizando a biblioteca NFEPHP no desenvolvimento de um ERP e estou tendo problemas com a geração da NFC-e. Talvez alguém possa me ajudar.

O problema que estou tendo é na validação do QR CODE com a seguinte mensagem de retorno:

Elemento 'qrCode': [Erro 'Layout'] O valor 'http://dec.fazenda.df.gov.br/ConsultarNFCe.aspx?chNFe=53161009331635000146650020000003411176620628&nVersao=100&tpAmb=2&dhEmi=323031362d31302d32345431303a31383a35362b30303a3030&vNF=262.50&vICMS=0.00&digVal=6e6e505a47696a58426c4951566c764b69564d6d67442b6a7a73303d&cIdToken=000001&cHashQRCode=5A8A32E3E8F5FB921F5819166A52E1230E2E2B37' não é aceito para o padrão. '((HTTPS?|https?)://.*\?chNFe=[0-9]{44}&nVersao=[0-9]{3}&tpAmb=[1-2](&cDest=([A-Za-z0-9.:+-/)(]{0}|[A-Za-z0-9.:+-/)(]{5,20})?)?&dhEmi=[A-Fa-f0-9]{50}&vNF=(0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?)&vICMS=(0|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?)&digVal=[A-Fa-f0-9]{56}&cIdToken=[0-9]{6}&cHashQRCode=[A-Fa-f0-9]{40})'.↵↵"

Tentei fazer a validação pelo site do Sefaz RS e retornou este mesmo erro. Segue print da tela e também o xml.

Atualmente estou utilizando o "schemesNFe" => "PL_008i1", mas já fiz testes com os demais esquemas retornando o mesmo erro.

Não sei o que pode estar acontecendo. Alguem já passou por isso?

Obrigado!


validacao-xml.jpg
53161009331635000146650020000003411176620628-nfe.xml

Roberto Machado

unread,
Oct 24, 2016, 6:40:21 AM10/24/16
to nfe...@googlegroups.com
Está escrito é só ler ::

PADRÃO HTTPS ... então o HTTP do endereço não é aceito pela clausula do XSD


Roberto

Diego Queiroz

unread,
Oct 24, 2016, 6:49:17 AM10/24/16
to NFePHP
Obrigado pela resposta Roberto, mas já tentei validar com o https e não foi possível também.

Eu vi que existe o padrão da expressão regular. Apesar de entender superficialmente sobre expressões regulares, vi a exigência do padrão HTTPS, mas mesmo assim não valida. :(

Roberto Machado

unread,
Oct 24, 2016, 7:01:49 AM10/24/16
to nfe...@googlegroups.com
Bom ... as vezes o padrão usado nas expressões regulares do XSD da SEFAZ é incompatível com a versão do PHP.

Mas é preciso fazer muitos testes para entender a falha do REGEX.

Minha sugestão:

1 - use o XSD mais novo  
2 - verifique a validade no validador do RS
3 - Aqui uma pergunta .... como você colocou o campo qrcode no xml ?  você usou a API ou fez de outra forma ??? me parece que tem algo estranho no seu xml

Roberto

Diego Queiroz

unread,
Oct 24, 2016, 7:06:42 AM10/24/16
to NFePHP
OK Roberto, irei seguir suas sugestões.

Utilizei apenas a API.

Roberto Machado

unread,
Oct 24, 2016, 7:09:08 AM10/24/16
to nfe...@googlegroups.com
Muito bem fiz alguns testes por aqui ... e não passa na validação nem local nem no validador da SEFAZ RS.

Temos que investigar mais ... mas como eu não gero NFCe vou pedir ajuda que quem gera !!!

Roberto

Heron Reis dos Santos

unread,
Oct 24, 2016, 7:09:17 AM10/24/16
to nfe...@googlegroups.com
--
--
Você recebeu esta mensagem porque está inscrito no Grupo "NFePHP".
Para Postar: nfe...@googlegroups.com
Para Sair do Grupo: nfephp+un...@googlegroups.com
Link: http://groups.google.com.br/group/nfephp?hl=pt-BR
-------
Repositório: https://github.com/nfephp-org/nfephp
---
Você recebeu essa mensagem porque está inscrito no grupo "NFePHP" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nfephp+un...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Diego Queiroz

unread,
Oct 24, 2016, 7:12:49 AM10/24/16
to NFePHP

Roberto Machado

unread,
Oct 24, 2016, 7:54:40 AM10/24/16
to nfe...@googlegroups.com
Fiz testes aqui, criando uma NFCe e assinando e nesse caso validou normalmente !!!

Verifique seu token (CSC) e o tokenId que você está usando !!!

Roberto

Heron Reis dos Santos

unread,
Oct 24, 2016, 7:55:59 AM10/24/16
to nfe...@googlegroups.com
Diego,

Estive analizando as URL's que vc indicou nos emails.

Na primeira versão da URL, seu erro foi não ter colocado o HTTPS.

Nesta última, você colocou, porém o vICMS veio sem valor, deve vir 0.00.

Outra questão, é o seu digVal que mesmo as URL's estando diferentes, ela manteve o mesmo HASH, ele está gerando corretamente?


Abraços,


Roberto Machado

unread,
Oct 24, 2016, 7:57:38 AM10/24/16
to nfe...@googlegroups.com
Olha que o XSD valida com HTTP ou com HTTPS sem problemas !!!

O problema está em outro lugar ... 

Roberto

Roberto Machado

unread,
Oct 24, 2016, 8:04:29 AM10/24/16
to nfe...@googlegroups.com
Sua nfce está com formatação incorreta no campo dos totais 

<ICMSTot>
                <vBC>0</vBC>
                <vICMS>0</vICMS>
                <vICMSDeson>0</vICMSDeson>
                <vBCST>0</vBCST>
                <vST>0</vST>
                <vProd>262.50</vProd>
                <vFrete>0</vFrete>
                <vSeg>0</vSeg>
                <vDesc>0</vDesc>
                <vII>0</vII>
                <vIPI>0</vIPI>
                <vPIS>0</vPIS>
                <vCOFINS>0</vCOFINS>
                <vOutro>0</vOutro>
                <vNF>262.50</vNF>
                <vTotTrib>0.00</vTotTrib>
</ICMSTot>

Todos os dados devem ter duas casas decimais

<ICMSTot>
                <vBC>0.00</vBC>
                <vICMS>0.00</vICMS>
                <vICMSDeson>0.00</vICMSDeson>
                <vBCST>0.00</vBCST>
                <vST>0.00</vST>
                <vProd>262.50</vProd>
                <vFrete>0.00</vFrete>
                <vSeg>0.00</vSeg>
                <vDesc>0.00</vDesc>
                <vII>0.00</vII>
                <vIPI>0.00</vIPI>
                <vPIS>0.00</vPIS>
                <vCOFINS>0.00</vCOFINS>
                <vOutro>0.00</vOutro>
                <vNF>262.50</vNF>
                <vTotTrib>0.00</vTotTrib>
</ICMSTot>

Roberto

Diego Queiroz

unread,
Oct 24, 2016, 8:22:14 AM10/24/16
to NFePHP
Roberto, a empresa me passou um CSC que não possuía hifens.

e gerei um CSC de ambiente de homologação, que foi gerado com hifens.

Nas configurações do JSON devo colocar o CSC com hífen ou sem hífen?

Roberto Machado

unread,
Oct 24, 2016, 8:49:08 AM10/24/16
to nfe...@googlegroups.com
O token deve ter 36 digitos !!
e o idtoken deve ter 6 digitos (zeros a esquerda)
Roberto

Diego Queiroz

unread,
Oct 24, 2016, 12:12:10 PM10/24/16
to NFePHP
Heron, o digVal está mudando de acordo com a nota gerada.

Eu fiz o que o Roberto indicou, alterando alguns valores de impostos de '0' para '0.00' e o xml foi aceito e autorizado para uso, inclusive já possui a tag de protocolo. O engraçado é que se pego esse xml e jogo no validador do sefaz ele ainda me retorna erro na validação da url do QRCODE com ambos os protocolos ( HTTP e HTTPS).

O mais louco é que se eu pego a url do QrCode e acesso via browser, lá está a NFCe, mas sem o QRCODE. :(

Talvez por isso agora eu não estou conseguindo imprimir a DANFCe, pois retorna o erro :

ErrorException in BaseTools.php line 497:Undefined index: NfeConsultaQR



Alguma ideia deste erro?

Diego Queiroz

unread,
Oct 24, 2016, 12:18:17 PM10/24/16
to NFePHP
Acredito que na hora de consultar não deve aparecer o QR Code mesmo.

Diego Queiroz

unread,
Oct 24, 2016, 3:28:31 PM10/24/16
to NFePHP
Boa tarde Roberto e Heron,

Depois de algumas tentativas, consegui validar, assinar, autorizar e gerar a Danfec.

Tive que fazer algumas mudanças pois eu não gero um config.json na pasta que a API busca. Fiz uma classe que gera um json com json_encode em tempo de execução, pois terei vários clientes com configurações diferentes.

Assim tive que passar na instancia da classe new Danfce, todos os parâmetros que o construtor necessitava, inclusive a url do QRCode.

Outra mudança que tive que fazer foi no arquivo Danfce.php, no método montaDANFCE eu passei um segundo parâmetro que é meu arquivo de configuração. Assim a variável $toolsNFe passou a receber esse meu parâmetro, anteriormente o caminho do json estava estático.

Como existem outras formas de chegar a um resultado, não sei se isso é de alguma forma válido para a comunidade.

Obrigado pela ajuda!

Heron Reis dos Santos

unread,
Oct 24, 2016, 3:28:59 PM10/24/16
to nfe...@googlegroups.com
Diego,

Sobre o QRCode no site da Sefaz, realmente ele não existe lá, já que o QRCode é para acessar este site.

Sobre o erro, ele está indicando que a tag "NfeConsultaQR” não está no seu nfe_ws3_mod65.xml, ou ele não conseguiu ler corretamente o nfe_ws3_mod65.xml ou a UF (siglaUF) não foi informada (para ele pegar no XML, a tag NfeConsultaQR) ao declarar a BaseTools (me corrija se eu estiver errado, pois estou usando a versão antiga do NFePHP ainda).

Conforme o disponível no GIT do NFePHP:

  <UF>
    <sigla>DF</sigla>
    <homologacao>
      <NfeConsultaQR method="QR-CODE" operation="NfeConsultaQR" version="100">http://dec.fazenda.df.gov.br/ConsultarNFCe.aspx</NfeConsultaQR>
    </homologacao>
    <producao>
      <NfeConsultaQR method="QR-CODE" operation="NfeConsultaQR" version="100">http://dec.fazenda.df.gov.br/ConsultarNFCe.aspx</NfeConsultaQR>
    </producao>
  </UF>

Blz?




Virgilio Filho

unread,
Aug 19, 2017, 4:22:50 PM8/19/17
to NFePHP
6 digitos (zeros a esquerda) .... me salvou.
Reply all
Reply to author
Forward
0 new messages