ohlele 0 Denunciar post Postado Abril 5, 2013 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 Heming 766 Denunciar post Postado Abril 5, 2013 Não seria a interface Serializable? Compartilhar este post Link para o post Compartilhar em outros sites
ohlele 0 Denunciar post Postado Abril 5, 2013 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 Heming 766 Denunciar post Postado Abril 5, 2013 É um pacote que está disponível no PEAR: http://pear.php.net/package/XML_Serializer/redirected Compartilhar este post Link para o post Compartilhar em outros sites
ohlele 0 Denunciar post Postado Abril 5, 2013 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
Gabriel Heming 766 Denunciar post Postado Abril 5, 2013 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
ohlele 0 Denunciar post Postado Abril 5, 2013 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
hinom 5 Denunciar post Postado Abril 6, 2013 PEAR.php é o PEAR :upset: http://bit.ly/Y0IqNw Compartilhar este post Link para o post Compartilhar em outros sites