Ir para conteúdo

Arquivado

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

ohlele

Classe Serealize

Recommended Posts

Olá pessoal, estou implantando o módulo clearsale e na documentação e arquivos de testes, precisa de uma classe serealize.

 

Eu achei uma mas não funcionou acho que é muito antiga.

 

Alguém sabem onde posso encontrar?

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gabriel, eu acho que sim.

 

na documentação veio assim:

require_once 'XML/Serializer.php';

 

Só que não tinha nehuma pasta xml, e eles não fornecem mais nada, disseram que eu tinha que baixar na internet.

Procurei e achei uma mas não funcionou.

 

Veja um dos arquivos que faz a requisição:

 

 

require_once 'XML/Serializer.php';
class Integration {
public function SendOrders($url, $entity_code, $order) {
$url = $url.'/SendOrders';
//array de envio que será serializada logo abaixo
$FinalOrder = array(
'Orders' => array('Order' => $order)
);
//Opções de Serializar do PHP
$serializer_options = array (
'addDecl' => false,
'encoding' => 'ISO-8859-1',
'indent' => ' ',
'rootName' => 'ClearSale',
'mode' => 'simplexml'
);
//Transformação da array em XML para envio
$serializer = new XML_Serializer($serializer_options);
$status = $serializer->serialize($FinalOrder);
//Em caso de erro, retorna
if (PEAR::isError($status)) {
die($status->getMessage());
}
//Variável de array serializada
echo '<pre>';
$xmlToSend = ($serializer->getSerializedData());
echo '</pre>';
//Passagem de parametros para envio de acordo com manual de integração (EntityCode e xml)
$fields = array(
'entityCode'=>urlencode($entity_code),
'xml'=>($xmlToSend)
);
foreach($fields as $key=>$value)
{
$fields_string .= $key.'='.$value.'&';
}
rtrim($fields_string);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
curl_exec($ch);
$err = curl_error($ch);
curl_close($ch);
return (object) array('resposta'=>$ch,'erro'=>$err);
}
//Inicio do Método GetOrder para Consulta de um OrderID de pedido
public function GetOrderStatus($urls, $entity_code, $orderid) {
$urls = $urls.'/GetOrderStatus';
//Passagem de parametros para envio de acordo com manual de integração (EntityCode e OrderID)
$fieldsStatus = array(
'entityCode'=>urlencode($entity_code),
'orderID'=>($orderid)
);
foreach($fieldsStatus as $key=>$value)
{
$fields_string_status .= $key.'='.$value.'&';
}
rtrim($fields_string_status);
//Postagem da string do código do pedido
$chstatus = curl_init();
curl_setopt($chstatus, CURLOPT_URL, $urls);
curl_setopt($chstatus, CURLOPT_HEADER, 0);
curl_setopt($chstatus, CURLOPT_POST, 1);
curl_setopt($chstatus, CURLOPT_POSTFIELDS, $fields_string_status);
curl_exec($chstatus);
$errstatus = curl_error($chstatus);
curl_close($chstatus);
return (object) array('retorno'=>$chstatus,'falha'=>$errstatus);
}
//Inicio do Método GetOrdersStatus para Consulta de um xml com OrdersIDs de pedidos
public function GetOrdersStatus($urlgs, $entity_code, $orders) {
$urlgs = $urlgs.'/GetOrdersStatus';
$serializer_options = array (
'addDecl' => false,
'encoding' => 'ISO-8859-1',
'indent' => ' ',
'rootName' => 'ClearSale',
'mode' => 'simplexml'
);
$FinalOrder = array(
'Orders' => array('Order' => $orders)
);
$serializer = new XML_Serializer($serializer_options);
$status = $serializer->serialize($FinalOrder);
if (PEAR::isError($status)) {
die($status->getMessage());
}
$ConsultarPedidos = ($serializer->getSerializedData());
$fieldsStatuslista = array(
'entityCode' => urlencode($entity_code),
'xml' => $ConsultarPedidos
);
foreach($fieldsStatuslista as $key=>$value)
{
$fields_string_status_lista .= $key.'='.$value.'&';
}
rtrim($fields_string_status_lista);
$chstatuslista = curl_init();
curl_setopt($chstatuslista, CURLOPT_URL,$urlgs);
curl_setopt($chstatuslista, CURLOPT_HEADER, 0);
curl_setopt($chstatuslista, CURLOPT_POST, 1);
curl_setopt($chstatuslista, CURLOPT_POSTFIELDS, $fields_string_status_lista);
curl_exec($chstatuslista);
$errstatuslista = curl_error($chstatuslista);
curl_close($chstatuslista);
return (object) array('Retorna'=>$chstatuslista,'FalhaMsg'=>$errstatuslista);
}
}
Como faço isso funcionar?
Muito obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gabriel eu baixei e não funcionou, faltam alguns arquivos, veja os requires:

 

 

 

/**
* uses PEAR error management
*/
require_once 'PEAR.php';
/**
* uses XML_Util to create XML tags
*/
require_once 'XML/Util.php';

 

 

 

 

 

/**
* uses PEAR error managemt
*/
require_once 'PEAR.php';
/**
* uses XML_Parser to unserialize document
*/
require_once 'XML/Parser.php';
Onde encontro esses arquivos.
Por enquanto muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Todas são bibliotecas PEAR, basta entrar no PEAR e colocar o nome na busca:

- XML_Parser

- XML_Util

 

Todos estão lá.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal Gabril dentro do serializer.php tem esse PEAR.php que não achei lá no site, veja:

 

 

/**
* uses PEAR error management
*/
require_once 'PEAR.php';
Sabe qual é?
Muito brigado

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.