Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rebortec

XML Service

Recommended Posts

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.