redstyle 7 Denunciar post Postado Junho 12, 2012 Olá pessoal, por mais que eu tente enviar o json pra api do Mercado Pago não vai. Olha o script que estou usando: class MercadoPago { public $ch; public function __construct(){ $this->ch = curl_init(); } function __destruct(){ curl_close($this->ch); } public function acessar(){ $ar_dados = array( 'grant_type' => 'client_credentials', 'client_id' => '6..7', 'client_secret' => 'VaPf2A3.........J39jYkM3oziMzqaL' ); $ar_headers = array( 'Accept: application/json', 'Content-Length: '.strlen(http_build_query($ar_dados)), 'Content-Type: application/x-www-form-urlencoded', 'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:13.0) Gecko/20100101 Firefox/13.0' ); curl_setopt($this->ch, CURLOPT_URL, 'https://api.mercadolibre.com/oauth/token'); curl_setopt($this->ch, CURLOPT_POST, 1); curl_setopt($this->ch, CURLOPT_POSTFIELDS, http_build_query($ar_dados)); curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($this->ch, CURLOPT_HTTPHEADER, $ar_headers); $retorno = curl_exec($this->ch); var_dump($retorno); //return true; } } $ml = new MercadoPago; var_dump($ml->acessar()); Retorna sempre false no $retorno. Alguém ai já trabalhou com a API do Mercado Pago? Bom o problema erro uma validação de certificado. Esse script está funcionando normalmente: <?php class MercadoPago { public $ch; public function __construct(){ $this->ch = curl_init(); } function __destruct(){ curl_close($this->ch); } public function acessar(){ $ar_dados = array( 'grant_type' => 'client_credentials', 'client_id' => '8..3', 'client_secret' => 'VaPf2A3f...............kM3oziMzqaL' ); $ar_headers = array( 'Accept: application/json', 'Content-Length: '.strlen(http_build_query($ar_dados)), 'Content-Type: application/x-www-form-urlencoded', 'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:13.0) Gecko/20100101 Firefox/13.0' ); curl_setopt($this->ch, CURLOPT_URL, 'https://api.mercadolibre.com/oauth/token'); curl_setopt($this->ch, CURLOPT_POST, true); curl_setopt($this->ch, CURLOPT_POSTFIELDS, http_build_query($ar_dados)); curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($this->ch, CURLOPT_HTTPHEADER, $ar_headers); curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, false); $retorno = curl_exec($this->ch); return $retorno; //var_dump($retorno); //return true; } } $ml = new MercadoPago; echo '<pre>'; print_r(json_decode($ml->acessar())); echo '</pre>'; ?> Agora já vi um biblioteca no caso para o mercado livre https://github.com/foocoders/meli-php que não faz o uso do curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, false); Queria saber como. Compartilhar este post Link para o post Compartilhar em outros sites
Himura BH 1 Denunciar post Postado Julho 5, 2012 Consegui!!! Coloquei os parametros para o post em uma string exatamente como abaixo e passei para o CURLOPT_POSTFIELDS. $paramToken = "grant_type=client_credentials&client_id=".$CLIENT_ID."&client_secret=".$CLIENT_SECRET; curl_setopt($this->ch, CURLOPT_POSTFIELDS, $paramToken); Ae funcionou!! :clap: Compartilhar este post Link para o post Compartilhar em outros sites