mauriliop 0 Denunciar post Postado Junho 23, 2010 Olá a todos, estou configurando o frete.php do pagseguro para facilitar a obtenção do valor do frete, porém, estou com problemas, pois não está funcionando e não sei o motivo no servidor linux interno meu aqui. O código é o da Visie, http://visie.com.br/pagseguro/linguagem/php/ porém não consigo fazer funcionar localmente e não sei o que falta para funcionar. Coloquei em frete.php true para: private $_debug = true; e me retorna o seguinte resultado: PgsFrete started!() Trying to get 'http://pagseguro.uol.com.br/CalculaFrete.aspx?CepOrigem=12030-000&Peso=4&Valor=7,80' using CURL() Trying to get 'http://pagseguro.uol.com.br/CalculaFrete.aspx' using CURL Alguém já passou por isso? Acredito que seja algum problema de configuração do CURL ou do PHP mas não sei o que pode ser. Não sei se expliquei direito, porém se precisarem de mais alguma coisa me avisem. Compartilhar este post Link para o post Compartilhar em outros sites
Comunicação PagSeguro 0 Denunciar post Postado Junho 23, 2010 Olá a todos, estou configurando o frete.php do pagseguro para facilitar a obtenção do valor do frete, porém, estou com problemas, pois não está funcionando e não sei o motivo no servidor linux interno meu aqui. O código é o da Visie, http://visie.com.br/pagseguro/linguagem/php/ porém não consigo fazer funcionar localmente e não sei o que falta para funcionar. Coloquei em frete.php true para: private $_debug = true; e me retorna o seguinte resultado: PgsFrete started!() Trying to get 'http://pagseguro.uol.com.br/CalculaFrete.aspx?CepOrigem=12030-000&Peso=4&Valor=7,80' using CURL() Trying to get 'http://pagseguro.uol.com.br/CalculaFrete.aspx' using CURL Alguém já passou por isso? Acredito que seja algum problema de configuração do CURL ou do PHP mas não sei o que pode ser. Não sei se expliquei direito, porém se precisarem de mais alguma coisa me avisem. Verifique se o pacote CURL está instalado em sua distribuição linux. http://br.php.net/manual/pt_BR/book.curl.php Compartilhar este post Link para o post Compartilhar em outros sites
mauriliop 0 Denunciar post Postado Junho 23, 2010 Olá, sim, está instalado sim, inclusive fiz teste de pegar dados do yahoo e terra e foi normalmente sem problemas, porém esse script do frete.php dá o erro nessa parte do request e daí não vai pra frente de forma alguma. Você conhece algum teste que eu possa rodar de algo que eu envie por post e pegue o resultado? Mesmo que seja tutorial, arquivo, qualquer coisa, quero resolver isso. Mesmo pq isso vai me abrir muitas portas. obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Comunicação PagSeguro 0 Denunciar post Postado Junho 23, 2010 Olá, sim, está instalado sim, inclusive fiz teste de pegar dados do yahoo e terra e foi normalmente sem problemas, porém esse script do frete.php dá o erro nessa parte do request e daí não vai pra frente de forma alguma. Você conhece algum teste que eu possa rodar de algo que eu envie por post e pegue o resultado? Mesmo que seja tutorial, arquivo, qualquer coisa, quero resolver isso. Mesmo pq isso vai me abrir muitas portas. obrigado. Substitua o conteúdo do arquivo frete.php pelo código abaixo e faça um teste. class PgsFrete { private $_use = 'curl'; private $_debug = false; private $_methods = array('curl'); private $_result; public function PgsFrete() { if ($this->debug()) { echo "\nPgsFrete started!"; } } public function debug($debug=null) { if (null===$debug) { return $this->_debug; } $this->_debug = (bool) $debug; } public function setUse($useMethod) { if ('string'!==gettype($useMethod)) { throw new Exception('Method for setUse not allowed.'. 'Method passed: '.var_export($useMethod, true)); } $useMethod = strtolower($useMethod); if (!in_array($useMethod, $this->_methods)) { throw new Exception('Method for setUse not allowed.'. 'Method passed: '.var_export($useMethod, true)); } $this->_use = $useMethod; if ($this->debug()) { echo "\nMethod changed to ".strtoupper($useMethod); } } public function getUse() { return $this->_use; } public function request($url, $post=null) { $method = $this->getUse(); if (in_array($method, $this->_methods)) { $method_name = '_request'.ucWords($method); if (!method_exists($this, $method_name)) { throw new Exception("Method $method_name does not exists."); } if ($this->debug()) { echo "\nTrying to get '$url' using ".strtoupper($method); } return call_user_func(array($this, $method_name), $url, $post); } else { throw new Exception('Method not seted.'); } } private function _requestCurl($url, $post=null) { $urlkey="URL:".md5("$url POST:$post"); if(isset($_SESSION[$urlkey])){ $this->_result = $_SESSION[$urlkey]; return; } $parse = parse_url($url); $ch = curl_init(); if ('https'===$parse['scheme']) { // Nao verificar certificado curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); } curl_setopt($ch, CURLOPT_URL, $url); // Retornar o resultado curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Retornar o resultado if ($post) { curl_setopt($ch, CURLOPT_POST, true); // Ativa o modo POST curl_setopt($ch, CURLOPT_POSTFIELDS, $post); // Insere os POSTs } $result = curl_exec($ch); curl_close($ch); $this->_result = $result; $_SESSION[$urlkey]=$result; } public function gerar($CepOrigem, $Peso, $Valor, $Destino) { $Peso=str_replace('.',',',$Peso); $url = "https://pagseguro.uol.com.br/desenvolvedor/simulador_de_frete_calcular.jhtml?postalCodeFrom={$CepOrigem}&weight={$Peso}&value={$Valor}&postalCodeTo={$Destino}"; $this->request($url); $result = split('\|',$this->_result); $valores=array(); if($result[0]=='ok'){ $valores['Sedex']=$result[3]; $valores['PAC']=$result[4]; } return $valores; } } Compartilhar este post Link para o post Compartilhar em outros sites
mauriliop 0 Denunciar post Postado Junho 24, 2010 Boa noite, testei aqui e continuou dando o mesmo erro: PgsFrete started! Trying to get 'https://pagseguro.uol.com.br/desenvolvedor/simulador_de_frete_calcular.jhtml?postalCodeFrom=12030-000&weight=4&value=7,80&postalCodeTo=01000-000' using CURL acho que alguma coisa no cURL não deve estar bem instalada, como posso saber isso? É que por exemplo esse código funciona normalmente: <?php function domain_check($domain) { $data = 'http://'.$domain; // Create a curl handle to a non-existing location $ch = curl_init($data); // Execute curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_exec($ch); // Check if any error occured if(curl_errno($ch)) { return '<span style="color:#22c922">The domain is available!</span>'; } else { return '<span style="color:#c92222">The domain is not available</span>'; } // Close handle curl_close($ch); } // Usage: if(isset($_POST['domain'])) { echo domain_check($_POST['domain'].$_POST['tld']); } ?> <form method="POST" action=""> http:// <input type="text" name="domain"> <select name="tld"> <option value=".com.br">.com.br</option> <option value=".com">.com</option> <option value=".net">.net</option> <option value=".biz">.biz</option> </option> <input type="submit" value="Check"> </form> Ou ainda esse código aqui: <?php // Get curl version array $version = curl_version(); // These are the bitfields that can be used // to check for features in the curl build $bitfields = Array( 'CURL_VERSION_IPV6', 'CURL_VERSION_KERBEROS4', 'CURL_VERSION_SSL', 'CURL_VERSION_LIBZ' ); foreach($bitfields as $feature) { echo $feature . ($version['features'] & constant($feature) ? ' matches' : ' does not match'); echo PHP_EOL; } ?> obtenho esse resultado: CURL_VERSION_IPV6 matches CURL_VERSION_KERBEROS4 does not match CURL_VERSION_SSL does not match CURL_VERSION_LIBZ matches Isso ajuda? Antes de mais nada, muito obrigado a ajuda de vcs está sendo muito útil, mesmo não tendo resolvido o problema ainda, já me deu mais esperança de que dará certo. obrigado. Compartilhar este post Link para o post Compartilhar em outros sites