[Resolvido] cURL com JSON para API do Mercado Pago
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.
Discussão (1)
Carregando comentários...