Problema com ambiente de produção
lkfischer opened this issue · comments
Olá pessoal, estou fazendo a geração de etiqueta em um sistema de um cliente meu, peguei o exemplo do solicitar etiqueta com o ambiente de homologação, ele retorna perfeitamente os dados, porém quando colocou os dados masters do contrato do cliente, ele me retorna que esta com erro de autenticação, imaginei que o problema existia por que estava tentando achar os dados dela na base de homologação dos correios, porém quando troco para o link de produção dos correios, a página fica carregando eternamente, não sei se eu estou cometendo algum erro na hora de alterar para o ambiente de produção, onde seria exatamente?
Agraçado, desde já qualquer ajuda.
Att,
Estou com o mesmo problema, Já conseguiste resolver? Alem disso parece que a conexão trava não obtenho resposta.
Obrigado
Zeca
Jorom, resolvi da seguinte maneira, o Web Service dos correios tem algum problema com a versão 5.3 do PHP então para resolver esse problema basta fazer o download do xml deles e utilizar ele no seu servidor para fazer conexão com a maquina deles.
Link do arquivo de produção para download:
https://apps.correios.com.br/SigepMasterJPA/AtendeClienteService/AtendeCliente?wsdl
OBS: Ele não irá funcionar em um servidor local, como Wamp, Xammp entre outros... Então teste em um servidor na Web mesmo.
Qualquer dúvida em como implementar, fala comigo pois não sei se fui muito claro.
Att,
Obrigado pela dica, mas sou leigo neste tipo de comunicação onde coloco o XML para a conexão?
Coloco no meu servidor e busco de ao inves deste link no WSDL_ATENDE_CLIENTE_PRODUCTION?
Abraços,
Você vai alterar o link do arquivo Config o de produção e colocar o destino de onde esta o arquivo que você baixou.
Por exemplo: "const WSDL_ATENDE_CLIENTE_PRODUCTION = 'http://suaurl/AtendeCliente.xml?wsdl';"
Entendeu?
Sim vou testar
Funcionou..muito obrigado. Por um acaso você fez algo para Autorização de Postagem? Percebi que nesta biblioteca não tem isso.
VAleu
@pvpzaum Obrigado pela dica, você é foda, te devo uma breja brother!
Posso fechar esse bug galera?
@stavarengo ah não ser que o pessoal ainda tenha dúvidas, pode fechar.
esse bug acontece com muita gente, seria interessante colocar um aviso em algum lugar sobre isso.
Uma outra opção é setar a url direto na var $wsdl lá em SoapClientFactory no método getSoapClient()
@xjaco222x Você pode fazer esse aviso pra gente?
Pode ser uma sessão no readme.md explicando sobre o problema e como resolver.
Você consegue?
@stavarengo fiz a solicitação de alteração, não tenho tanto conhecimento no gitHub mas tentei me basear no restante do README.MD
Show. Aguardo o seu PR entao.
@xjaco222x
No readme.md você disse "OBS: Não irá funcionar em um servidor local, como Wamp, Xammp entre outros.".
Porque não funciona? Sabe dizer?
@stavarengo fiz os testes e não consegui fazer funcionar mas não sei pq, vi que o @pvpzaum informou que não funciona, então intendi que não era um erro meu.
@xjaco222x e @stavarengo quando eu chegar em casa eu falo por que nao funciona, mas basicamente é por causa da versão do php. Quando chegar eu explico melhor .
Aguardo @pvpzaum.
Valeu!
Vi que informaram que este problema é devido a versão do php, mas utilizo o php 5.5 e este problema de autenticação continua, vou tentar fazer o que o @pvpzaum informou e ver se funciona
@IuryChristmas , entendo, você esta imaginando que o problema esta com a versão antiga, mas pelo contrario, ele só funciona perfeitamente até a versão PHP 5.2, a partir da versão 5.3+ é que la para de funcionar. Eu estou tentando arrumar um tempo para que possa vir aqui mostrar os resultados dos meus testes, mas estou pegado no meu trabalho.
Ah, entendi... É que no readme deu a entender que o problema estava com as versões mais antigas, mas não entendi muito bem a solução... Fiz o download do wsdl, mas estou em dúvida onde salva-lo... em um servidor web ou no meu local, a dúvida é porque foi informado que em um servidor local como wampp, xampp... não funcionaria, no meu caso estou utilizando lampp e quando testei colando no local, acabou por não funcionar.
@IuryChristmas teria que salvar o arquivo no servidor, e no lugar do link colocar o caminho do arquivo, nos meus testes em servidor local não consegui fazer funcionar mas também não insisti muito os testes.
Pois é @xjaco222x , também estou tentando... salvei no local, mas ainda não obtive êxito... mas vou continuar testando e ver se consigo
@xjaco222x e @IuryChristmas , poderia me mostrar como esta sua linha de código onde você tenta trazer o arquivo salvo? E o arquivo deve estar salvo em seu servidor na nuvem, no servidor local ele não irá funcionar.
Att,
@pvpzaum, era essa minha dúvida... vou tentar subir ele então pra nuvem e testar novamente... até então estava local... A linha de código está assim:
const WSDL_ATENDE_CLIENTE_PRODUCTION = '127.0.0.1/AtendeCliente.xml?wsdl';
está correto dessa forma?
@IuryChristmas exato.
Pessoal, lembrando a todos que não é necessário mudar o valor da constante diretamente na classe.
O caminho do WSDL é configurável como explicado aqui: https://github.com/stavarengo/php-sigep#example-change-wsdl
@pvpzaum Estamos todos ansiosos pela solução :)
Pessoa, estava também com o problema e voltei a versão do PHP para a 5.2.9 e funcionou perfeitamente. O duro foi ter que voltar e perder as atualizações.
Boa tarde galera, eu testei subindo o arquivo e apareceu a seguinte mensagem de erro: failed to load external entity
Preciso fazer mais alguma coisa além de só subir o AtendeCliente.xml?wsdl pro servidor e fazer o setWsdlAtendeCliente()?
@IuryChristmas , você deve setar o WSDL_ATENDE_CLIENTE_PRODUCTION como caminho do arquivo.
@stavarengo creio que vc tenha colocado errado no readme.md sobre onde alterar.
@xjaco222x eu fiz o que me indicou, mas continuou a dar o mesmo erro
Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://servidor/AtendeCliente.xml?wsdl' : failed to load external entity "http://servidor/AtendeCliente.xml?wsdl" in /var/www/html/local/lib/PhpSigep/Services/Real/SoapClientFactory.php on line 52
@IuryChristmas coloque o valor completo, exemplo http://www.seusite.com.br/clientes/SIGEPWEB/src/PhpSigep/correios.xml?wsdl
ou se vc baixou o wsdl em formato wsdl é só colocar http://www.seusite.com.br/clientes/correios/SIGEPWEB/src/PhpSigep/correios.wsdl
Ou fazer downgrade para o PHP 5.2*
On Thu, Sep 1, 2016 at 5:24 PM, Jessiley Willian Valerio de Oliveira <
notifications@github.com> wrote:
ou se vc baixou o wsdl em formato sdl é só colocar
http://www.seusite.com.br/clientes/correios/SIGEPWEB/
src/PhpSigep/correios.wsdl—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
#35 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABASSiUIpKsSx0FtgeGHncJzhw1MFTzhks5qlzRigaJpZM4HdLCH
.
Vou dizer como salvei, abri o wsdl dos correios, cliquei em ver código fonte da página e depois cliquei em salvar página como, mudei o nome do arquivo e coloquei o AtendeCliente.xml?wsdl
@xjaco222x eu coloquei exatamente assim, coloquei o caminho completo do site, www.site.com.br/correios.xml?wsdl
@itamogi vou deixar essa opção como último recurso, depois que você fez o downgrade, funcionou tudo normal?
@IuryChristmas não tem que salvar como xml?wsdl vc salva ou com a extensão xml ou com a extensão wsdl.
@xjaco222x entendi, eu fiz de maneira errada então... vou tentar novamente e salvr como xml e testar mais uma vez e digo aqui se deu certo ou não
@luryChristmas https://github.com/IuryChristmas instalei em um outro
servidor o php 5.2 e estou usando nele obtendo os resultados via json, aí
não mexi no site que estava minha aplicação com o 5.6
Foi tudo normal ...
Em quinta-feira, 1 de setembro de 2016, Jessiley Willian Valerio de
Oliveira notifications@github.com escreveu:
@stavarengo https://github.com/stavarengo creio que vc tenha colocado
errado no readme.md sobre onde alterar.—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
#35 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABASStMMYIs9JiHeAnR36PZXhC397JEBks5qlzA5gaJpZM4HdLCH
.
Ola
Bom dia
Aqui fiz o procedimento de comentar o parâmetro "stream_context" onde vemos que funcionou com dados de ambiente de produção em um servidor local
@mozgbrasil Olhando o histórico de alterações neste arquivo eu vi o seguinte.
- Eu adicionei
stream_context
neste commit 1ce44a0 para resolver o bug #21 - Depois disto o @rafaelsiqueira fez o PR #28 que removia totalmente
stream_context
. Provavelmente pq ele deve ter chego a mesma conclusão que vc. - Por último, @gustvao enviou o PR #38 que desfez o trabalho de @rafaelsiqueira. Neste caso o @gustvao voltou a opção
stream_context
, porem com configurações diferentes das que eu tinha adicionado lá no passo 1.
Para mim, parece que remover stream_context
não é a solução correta pois vai quebrar outros pontos e outra pessoa vai acabar adicionado novamente.
Eu sugiro que seja mesclado as duas configurações (feitas no passo 1 e no passo 2) para ver o resultado. Para isso é só mudar o array $opts
declarado na linha 36 para:
$opts = array(
'ssl' => array(
'ciphers' => 'RC4-SHA',
'verify_peer' => false,
'verify_peer_name' => false
'allow_self_signed' => true,
)
);
Fora isso não sei mais o que fazer. Se isso não resolver, então alguém (sugiro @mozgbrasil) terá que dar uma Googada para descobrir a verdadeira solução deste problema.
Vocês têm mais alguma ideia?
Obs: Vale a apena ressaltar o link apontado pelo @gustvao em seu PR #38. Segue o link http://stackoverflow.com/questions/34609448/soap-error-parsing-wsdl-couldnt-load-from-xampp
Bom dia
Aparentemente oque está gerando o erro é o parâmetro
'ciphers' =>'RC4-SHA',
Bom, acho bom a gente esperar uma explicação do @gustvao antes de remover. Ele deve ter tido um motivo para isso.
Alem disto tbm seria interessante saber pq @rafaelsiqueira escolheu remover o stream_context
quando ele ainda nem tinha a opção ciphers
configurada.
@mozgbrasil agora em com vc. O que vc sugere?
Bom dia
Eu nunca tive a necessidade do uso do parâmetro ciphers no SOAP
Acho que poderia ser feito essa tentativa de comentar o parâmetro ciphers e colocar um comentário com a URL dessa issue
Caso alguém mencione alguma divergência em algum ambiente podíamos condicionar o uso desse parâmetro
Por mim ok
Boa Tarde
Você pode estar aplicando essa atualização ao projeto ou devo enviar como Pull Requests ?
Claro @mozgbrasil. Ninquem melhor do que vc para corrigir aí.
Boa tarde,
Estou com problemas para carregar o WSDL em produção (do rastreio).
Li os comentários aqui e comentei o ciphers como está feito no método getSoapClient
Será que faria sentido comentar também ?
Obrigado.
@brunorthomaz que problema vc está tendo?
Boa tarde,
Então, ao tentar rastrear em produção ocorre o seguinte erro:
PHP Warning: Uncaught ErrorException: SoapClient::SoapClient(): Failed to enable crypto in /var/www/html/.../vendor/stavarengo/php-sigep/src/PhpSigep/Services/Real/SoapClientFactory.php:115
@brunorthomaz, dei uma pesquisada no Google e achei isto: https://stackoverflow.com/questions/14078182/openssl-file-get-contents-failed-to-enable-crypto
Veja se é o seu problema.
Editado:
Acabei de ver este PR. Acho que ele resolve o seu problema.
#155
Pessoal boa noite estou com php 5.6 e nao consigo fazer rodar, segui o procedimento mas nao funcionou
@stavarengo, sou novo e gostaria de uma ajuda para implantar esse projeto dos correios, será que alguém pode me ajudar? Quero aprender, caso tenha algum custo para me ensinar, irei avaliar a proposta. Lembrando que quero aprender.
Desde já agradeço a todos
Rodrigo Pais
Olá galera, estou implementando essa classe para geração de etiquetas, e vejo que há funcionamento correto dela, pois em modo de produção não gera etiquetas, somente em modo de homologação.
Alguém pode dar um help!!!.
Detalhe, os arquivos estão online, pois vejo que alguns post estão dizendo que não funciona local, porém as configurações citadas acima já foram realizadas. Sendo assim, em local funciona somente em homologação.
Att: