Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom Dia Amigos do Imasters!
Estou com um pequeno probleminha que vêm consumindo um bom tempo meu e de um colega de trabalho.
Estamo integrando nosso Ecommerce com um ERP aqui da empresa através de webservice.
Porém estou tendo dificuldade em solucionar um erro em uma integração.
O WSDL está disponivel no link: http://189.16.224.190:81/KLPRODUTO.apw?WSDL
Temos também os Parametros e Retornos neste link: http://189.16.224.190:81/WSINDEX.apw?cOp=03&WSVCNAME=KLPRODUTO&WSVCMETHOD=BUSCAPRODUTO
Bom vamos ao meu código PHP. Fiz algo bem simple somente para testes.
<?php
function webservice()
{
$client = new SoapClient("[http://189.16.224.190:81/KLPRODUTO.apw?WSDL"](http://189.16.224.190:81/KLPRODUTO.apw?WSDL));
$params = array('CODINICIAL' => "0001000001" , 'CODFINAL' => "0001000001");
try {
$result = $client->BUSCAPRODUTO(array('REQUESTBUSCAPRODUTO' => $params ) );
if (is_soap_fault($result)):
echo $fault->faultstring;
else:
$valor = $result->RESPONSEBUSCAPRODUTO->STRESPONSEBUSCAPRODUTO;
echo $valor->PROCODIGO."<br/>";
echo $valor->PROMARCA."<br/>";
echo $valor->PRONOME."<br/>";
endif;
} catch (SoapFault $fault){
echo $fault->faultstring;
}
}
webservice();
?>
O erro gerado é uma mensagem que diz: "could not connect to host".
Quem puder me ajudar meu muito obrigado (:
É só acessar os links que verá que o serviço está ativo e funcionando.
Mas mesmo assim o erro permanece!
>
É só acessar os links que verá que o serviço está ativo e funcionando.
Mas mesmo assim o erro permanece!
O link que funciona é o da descrição do serviço, não do serviço.
É só consumir o serviço que verá que está offline.
;)
>
>
É só acessar os links que verá que o serviço está ativo e funcionando.
Mas mesmo assim o erro permanece!
O link que funciona é o da descrição do serviço, não do serviço.
É só consumir o serviço que verá que está offline.
;)
Jão! O serviço aki esta ativo. Confirmei aqui e o serviço está rodando e habilitado.
http://189.16.224.190:81/WSINDEX.apw?cOp=02&WSVCNAME=KLPRODUTO
Veja o STATUS! está HABILITADO.
Bom amigo, eu já disse qual é o problema, você pode entrar em contato com o pessoal que provê o serviço para colocarem-no online ou ficar procurando problemas onde não existem.
Agora, uma coisa é fato, o serviço está offline.
/applications/core/interface/imageproxy/imageproxy.php?img=http://img822.imageshack.us/img822/2144/protheus.png&key=362cf330467b67a10b79e9af2b5d509f854873d6d5c5528308b6e0150e1e1d2f" alt="Imagem Postada" class="bbc_img">
;)
beleza! vou verificar.
Mas essa tela que você enviou é que o WebService não esta com o Serviço de POST habilitado.
Somente é permitido acesso através de conexões.
Grato. Gentileza deixar o tópico aberto, caso outro usuário saiba a solução.
/applications/core/interface/imageproxy/imageproxy.php?img=http://tmp.improjetos.com.br/protheus1.png&key=4535fcfa949c2934c266ad82d65f714ae7631b1673eed4aec6bd97a9ca4b8fb9" alt="Imagem Postada" class="bbc_img">
Veja isso também:
[neto@localhost ~]$ host 189.16.224.190
Host 190.224.16.189.in-addr.arpa. not found: 3(NXDOMAIN)
João! Resolvi aki... Fiz um script e rodei localmente.. Funcionou que é uma beleza!
O problema está no Serviço de Hospedagem (LocaWeb). Tem que passar um cookie com alguns parametros.
ini_set("soap.wsdl_cache_enabled", "0");
$client = new SoapClient('http://189.16.224.190:81/KLPRODUTO.apw?WSDL');
$aOptions = array ("start_debug"=> "1", "debug_port"=> "10000", "debug_host"=> "localhost", "debug_stop"=> "1");
foreach($aOptions as $key => $val) {
$client->__setCookie($key,$val);
}
// chamada do serviço SOAP
$result = $client->BUSCAPRODUTO(array('REQUESTBUSCAPRODUTO'=>array('CODFINAL'=>'0001000001','CODINICIAL'=>'0001000001')));
if (is_soap_fault($result)){
trigger_error("SOAP Fault: (faultcode: {$result->faultcode}, faultstring: {$result->faulstring})", E_ERROR);
}else{
echo "Resultado Encontrado : <br><br>";
print_r($result);
}
Valeu pela ajuda! E desculpa qualquer coisa aÊ! Abrss!
>
O erro gerado é uma mensagem que diz: "could not connect to host".
Isso significa que o serviço está offline.