rebortec 0 Denunciar post Postado Novembro 20, 2013 Boa Tarde Amigos,Já à algum tempo que trabalho com php, mysql, no entanto agora criei uma pequena gestão de empresa dedicada à produção e pretendo conectar com um erp cujo representamos.O mesmo tem um serviço xml o qual recebe e envia através do mesmo.A minha dúvida é onde tenho informação didáctica para aprender como conectar com php o serviço xml do ERP.Ou se alguém caso já tenha feito me possa dar umas dicas. Tenho mini aplicação do ERP que posso testar cada pedido por exemplo:Input: <report accounts='21.1.1.1.03130' defs='s' status='n' retid='n' />Output:<OpenDoc><Table nrRecs="0"/><Records TtRecs="0"> <Account Nr="2111103130" NrRecs="0"/></Records></OpenDoc>Consigo interpretar isto até porque no manual tenho a descrição de cada tag, não sei é como conectar, efectuar e interpretar os inputs e outputs com php. Manual ERP para que poder ajudar, a pass peçam por msg pf pois não posso divulgar. https://www.dropbox.com/s/2ljqoqf465omzgb/XML_InterfaceEx.7z Compartilhar este post Link para o post Compartilhar em outros sites
Jeferson Daniel 11 Denunciar post Postado Novembro 20, 2013 Se a conexão for HTTP, esse input é enviado como corpo da mensagem HTTP, nesse caso eu te recomendo usar uma classe que abstraia o CURL. Aqui no imasters existe um repositório com classes para conexão: http://repos.imasters.com.br/http/src/bfa3007874bc/src/iMasters/http/?at=master. Bem, não tenho como te dar um exemplo concreto porque não sei com que tipo de serviço você está lidando, o fato dele ser XML não esclarece muita coisa. Compartilhar este post Link para o post Compartilhar em outros sites
rebortec 0 Denunciar post Postado Novembro 20, 2013 Boas, Isto ajuda? public function doLogin($host, $port, $user, $pass) { if(empty($host)) { throw new Exception("invalid host"); } if(empty($port)) { throw new Exception("invalid port"); } if(empty($user)) { throw new Exception("empty user"); } if(empty($pass)) { throw new Exception("empty pass"); } $this->host = $host; parent::setParameter(CURLOPT_PORT , $port); parent::setParameter(CURLOPT_HEADER, 1); parent::setParameter(CURLOPT_POST , 0); $this->setHeader("Connection", "Keep-Alive"); $this->setHeader("Keep-Alive", "10"); $this->setHeader("name" , $user); $this->setHeader("XMLIndent" , "1"); $response = parent::doRequest("login"); if(empty($response)) { throw new Exception("empty login response"); } $challenge = $this->getChallenge($response); if(empty($challenge)) { throw new Exception("login challenge not found"); } $this->setHeader("digest", $this->calculateChallenge($user, $pass, $challenge)); $this->removeHeader("name"); $this->removeHeader("XMLIndent"); parent::setParameter(CURLOPT_HEADER, 0); parent::setParameter(CURLOPT_POST, 1); } Foi-me fornecido pela empresa que desenvolveu o erp Compartilhar este post Link para o post Compartilhar em outros sites
rebortec 0 Denunciar post Postado Novembro 21, 2013 Já tentei com centenas de parametros e nem um erro de retorno, sempre tela branca. O que será? <?php $URL = "http://teste"; //Parametros $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$URL); curl_setopt($ch, CURLOPT_PORT, "0000"); if (curl_errno($ch)) { // ver erros echo curl_errno($ch) ; echo curl_error($ch); } else { //resposta $response = curl_exec($ch); print_r($response); curl_close($ch); } ?> No log do server não tem nenhum pedido nem tentativa de entrada Alguém? Na minha opinião só pode ser alguma configuração do servidor php pois eles garantem que funciona. Já verifiquei o ini e o curl está enable. :s Não deveria retornar algum erro? ? Compartilhar este post Link para o post Compartilhar em outros sites