Integração Pagseguro PHP

<?php

/**
 * Description of PagSeguro
 *
 * @author Thyago Henrique Pacher - <thyago.pacher@gmail.com>
 */
//header('Content-Type: application/x-www-form-urlencoded; charset=utf-8');

class PagSeguro {

    private $urlCheckout = 'https://ws.pagseguro.uol.com.br/v2/checkout?email={email}&token={token}';
    private $urlConsulta = 'https://ws.pagseguro.uol.com.br/v2/transactions?initialDate={dataInicial}T00:00&finalDate={dataFinal}T00:00&page=1&maxPageResults=100&email={email}&token={token}';
    private $urlConsulta2 = 'https://ws.pagseguro.uol.com.br/v3/transactions/{codigo}?email={email}&token={token}';
    public $token = '';
    public $email = '';
    public $valorCompra = '';
    private $conexao;

    public function __construct() {
        
    }

    public function consultaCodigo($codigo) {
        $this->urlConsulta2 = str_replace('{email}', $this->email, $this->urlConsulta2);
        $this->urlConsulta2 = str_replace('{token}', $this->token, $this->urlConsulta2);
        $this->urlConsulta2 = str_replace('{codigo}', $codigo, $this->urlConsulta2);
        return $this->AbreSite($this->urlConsulta2);
    }
 /**
  * @assert (param1, param2) == expectedResult
  */
    public function consultaData($dataInicial, $dataFim) {
        if (!isset($dataInicial) || $dataInicial == NULL ||
                $dataInicial == "") {
            $dataInicial = date("Y-m-d");
        }
        if (!isset($dataFim) || $dataFim == NULL || $dataFim == "") {
            $dataFim = date("Y-m-d");
        }
        $this->urlConsulta = str_replace('{email}', $this->email, $this->urlConsulta);
        $this->urlConsulta = str_replace('{token}', $this->token, $this->urlConsulta);
        $this->urlConsulta = str_replace('{dataInicial}', $dataInicial, $this->urlConsulta);
        $this->urlConsulta = str_replace('{dataFinal}', $dataFim, $this->urlConsulta);
		//echo $this->urlConsulta; 
        return $this->AbreSite($this->urlConsulta);
    }

    public function compra($res) {
        $this->urlCheckout = str_replace('{email}', $this->email, $this->urlCheckout);
        $this->urlCheckout = str_replace('{token}', $this->token, $this->urlCheckout);

        $data['email'] = $this->email;
        $data['token'] = $this->token;
        $data['currency'] = 'BRL';


        $data['itemId1'] = $res["codproduto"];
        $data['itemQuantity1'] = 1;
        $vlPago = (isset($this->valorCompra) && $this->valorCompra != NULL && $this->valorCompra != "") ? $this->valorCompra : $res["valor"];
        $data['itemAmount1'] = number_format($vlPago, 2, '.', '');
        $data['itemDescription1'] = "Curso " . utf8_decode($res["nome"]);
        $data['reference'] = $res['codpessoa'];
        $data['senderName'] = str_replace('  ', ' ', $res["nome_pessa"]);
        $data['senderEmail'] = $res["email"];
        $data['redirectURL'] = 'http://comexito.com.br';

        $data = http_build_query($data);

    //    echo $this->urlCheckout;

        return $this->AbreSite($this->urlCheckout, $data);
    }

    public function assinatura($res) {
        $this->urlCheckout = str_replace('{email}', $this->email, $this->urlCheckout);
        $this->urlCheckout = str_replace('{token}', $this->token, $this->urlCheckout);

        $data['email'] = $this->email;
        $data['token'] = $this->token;
        $data['name'] = "Assinatura plano " .
                strtolower(utf8_decode($res['nome']));
        $data['maxTotalAmount'] = number_format($res["valor"], 2);
        $data['amountPerPayment'] = number_format($res["valor"], 2);
        $data['currency'] = 'BRL';
        $data['encoding'] = 'UTF-8';
        $data['itemId1'] = $res['codproduto'];
        $data['itemQuantity1'] = 1;
        $data['itemAmount1'] = number_format($res["valor"], 2);
        $data['itemDescription1'] = utf8_decode($res['nome']);
        $data['reference'] = $res['codproduto'] . $res['codpessoa'];
        $data['senderName'] = utf8_decode($res['nome_pessa']);
        $data['senderEmail'] = $res['email'];
        $data['redirectURL'] = 'http://bradmontana.com.br';
        $data['period'] = "MONTHLY";

        $data = http_build_query($data);
        return $this->AbreSite($this->urlCheckout, $data);
    }

    /**
     * @author Thyago Henrique Pacher
     * @param string $url site a ser pesquisado o conteúdo
     * @param array $dados define o post de dados
     */
    public function AbreSite($url, $dados = NULL) {
        $site_url = $url;
        $ch = curl_init();
        $timeout = 5;
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_URL, $site_url);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

        if (isset($dados) && $dados != NULL) {
            //parametros em post
            curl_setopt($ch, CURLOPT_POSTFIELDS, $dados);
        }
        ob_start();
        curl_exec($ch);
        curl_close($ch);
        $file_contents = ob_get_contents();
        ob_end_clean();
        return $file_contents;
    }

}