Ir ao conteúdo
  • Cadastre-se
Paulo Sérgio Duff

Como criar uma aplicação NFC-e em PHP/SOAP?

Recommended Posts

Peguei o seguinte projeto de um cliente: Uma aplicação rodando em PHP que trabalhe com NFC-e, já enviando o XML para o SEFAZ, que retorne Danfe e QR code. Isso para cliente do Rio de Janeiro. Eis o que já fiz para agilizar o processo do projeto:

  • Baixei o projeto NFePHP localizado no github https://github.com/nfephp-org/nfephp que ao mínimo, tem a tarefa de enfiar a NF-e, e já demonstra um princípio para trabalhar com SOAP para NFC-e também.

  • Utilizei o PDV Stok, que utiliza a biblioteca GTK para programas em PHP.

  • Estudei sobre Webservices SOAP, além de fazer pequenos testes. Um deles localizado no artigo http://www.thiagovespa.com.br/blog/2012/05/31/chamando-um-webservice-soap-com-php/

  • Reforcei estudos sobre programação orientada a objetos.

  • Estudei bastante sobre NFC-e.

  • Consultei bastante material oficiais do site do SEFAZ para se informar. Inclusive nota técnica, que a mais atual é a de 2013.005_v1.2 aonde inclusive tem os endereços de webservices do SEFAZ.

 

Porém, encontro os seguintes problemas para implementar o projeto:

  • As mensagens ao executar aplicações do NFePHP não parecem claras, além de algumas mensagens serem de erros que desconheço no próprio PHP.

  • O arquivo testaNFeEnvio.php da pasta exemplos/NFe/ retorna as seguinte mensagem: “houve erro !! 403Forbidden Nao houve retorno Soap verifique a mensagem de erro e o debug!!”  

  • No corpo do XML aparece a seguinte mensagem: “<h2>403 - Forbidden: Access is denied.</h2>
     <h3>You do not have permission to view this directory or page using the credentials that you supplied.</h3>
    </fieldset></div>”.

  • O mais importante dos erros acima, é saber se o PHP está retornando o que deve, ou a aplicação não está acessando o webservice do SEFAZ, porque sei que vou precisar do certificado do SEFAZ para envio completo. Só quero saber se aplicação faz o que promete!

  • O erro mais misterioso é do arquivo montaXmlWebServicesNFe.php da pasta exemplos/NFe/ que diz: “This page contains the following errors: error on line 2 at column 1: Extra content at the end of the document Below is a rendering of the page up to the first error.”

  • Certamente o loop abstrato é o maior vilão para pesquisar sobre problemas práticos (que só é problema neste caso). Muitas vezes precisamos ver a sintaxe funcionando para aprender um princípio, o código propriamente dito. Você pesquisa como solucionar determinado problema, e só acha tutoriais envolvendo a história da ferramenta, seu criador, fluxogramas, terminologia, mas raramente a solução em produção. Quando documentam a classe, não falam do método. Quando falam do método, pouco apontam em que direção/arquivo/pasta estão os atributos que busco (Search in files para que te quero). Ok, com a arquitetura MVC isso é amenizado. E quando buscamos pelos pormenores do problema, a mesma cadeia de acontecimentos citada acima se inicia novamente. Como por exemplo eu consigo acessar informações do WSDL de determinada página? basta colocar isso após a url do webservice? Eu não sei! Não consigo achar material sobre isso. Garanto que se eu pesquisar, vou encontrar alguma palestra falando de camadas de rede ou Tim Berners-Lee.

  • Maior parte da pesquisa retornar soluções pagas.

 

Caso não possa responder nenhum dos problemas acima, gostaria que me indicasse materiais pesados sobre SOAP e OOP. Algo didático mesmo, sem bla bla blá se possível. Mesmo ao postar isso, continuarei pesquisando!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×