Bom dia galera,
Estou com um problema e umas dúvidas sobre a API 3.0 da CIELO, estou tentando fazer uma requisição de venda no ambiente de testes da sandbox e mesmo assim não consigo ter nenhum tipo de retorno.
Estou usando o framework codeigniter e to tentando fazer através de uma controller, algo basico e a aplicação ainda está no inicio de seu desenvolvimento.
Tentei tanto com PHP como Javascript:
Script PHP da controller (na minha tentativa com o PHP)
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Pagamento extends CI_Controller {
public function index()
{
$url = 'https://apiquerysandbox.cieloecommerce.cielo.com.br/1/sales/';
$headers = array(
'MerchantId' => 'XXXXX-XXX-XXX-XXX-XXX',
'MerchantKey' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
'Content-Type' => 'Content-Type: application/json',
'RequestId' => rand(10,1000)
);
$data = array(
"MerchantOrderId"=>rand(0,99999),
"Customer"=>array(
"Name"=>"Comprador Teste"
),
);
print_r($this->curl->submit_data($url,$data,$headers));
}
}
/* End of file Checkout.php */
/* Location: ./application/controllers/Checkout.php */
Aqui está o script da library que eu criei para ler cURL:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Curl
{
private $response;
protected $ci;
public function __construct()
{
$this->ci =& get_instance();
}
public function submit_data($url = '', $data = array(),$headers = array()){
ini_set('max_execution_time', 300);
$ch = curl_init();
$timeout = 500000;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data,true));
$this->response = curl_exec($ch);
curl_close($ch);
return $this->response;
}
public function setResponse($response = ""){
$this->response = $response;
}
public function getResponse(){
return $this->response;
}
}
/* End of file Curl_library.php */
/* Location: ./application/libraries/Curl_library.php */
Achando que era um possivel problema de implementação minha no PHP eu criei uma uma requisição também com JQuery, porém, não obtive sucesso;
Javascript/JQuery:
<script type="text/javascript">
$(document).ready(function() {
$.ajaxSetup({
beforeSend: function(xhr) {
xhr.setRequestHeader("MerchantId", 'XXXXXXX-XXXX-XXXX-XXX-XXXXXXXXXXXXX');
xhr.setRequestHeader('MerchantKey', "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
xhr.setRequestHeader('X-Requested-With','XMLHttpRequest')
}
});
$.ajax({
url: 'https://apiquerysandbox.cieloecommerce.cielo.com.br/1/sales/',
type: 'POST',
dataType: 'json',
contentType: 'application/json',
crossDomain:false,
data: {
},
error:function(e,text,xhr) {
console.log(e);
},
complete:function(e,text,xhr){
console.log(e);
}
});
});
</script>
Link da documentação da API: https://developercielo.github.io/Webservice-3.0/
Link para criação do MerchantID e Key e chave para utilizar o sandbox: https://cadastrosandbox.cieloecommerce.cielo.com.br/
Estou a uns 3 dias encalhado nisso e não to conseguindo entender ainda onde foi que cometi algum erro ou se algo na doc não está claro ou se estou fazendo o procedimento errado.
Espero que possam me ajudar.
[EDIT]
Com o uso da cURL o php me retorna em branco, não tenho retorno de nada.
No javascript / jquery meu retorno é apenas "error".
[\EDIT]
Obrigado