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 softwares em 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 não 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!
Pergunta
Paulo Sérgio Duff
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 softwares 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 não 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.”
Escassez de material open source ou até mesmo falando de automação envolvendo NFC-e, no contexto do meu problema específico. Para não ser injusto, achei este link do portal acbr : http://www.projetoacbr.com.br/forum/topic/10018-nfc-e-nota-fiscal-do-consumidor-eletr%C3%B4nica/ e também este vídeo https://youtu.be/XK5rJAFA3cs . Mas obviamente para aplicação nativa (o que não é o meu caso). Já trabalhei com automação, e sei quanto é escasso o suporte para qualquer coisa.
Loop abstrato.
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!
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.