Integrar PHP com PagSeguro Parte 1 - Gerando uma sessão


Neste tutorial será apresentado como iniciar a integração do PHP com PagSeguro usando a API.

Primeiro será apresentado como organizar o projeto para inserir as credenciais do PagSeguro.

Em seguida como receber o id da sessão.


Download do código fonte desenvolvido na aula: DOWNLOAD


Primeiro será criado o arquivo "configuracao.php" para colocar as configuração do PagSeguro, indicando a situação do projeto, em desenvolvimento para carregar o Sandbox, ou carregar as credenciais do PagSeguro quando está em produção. Também definido a URL do local no qual está o projeto. Importante observar que o PagSeguro obriga o servidor possuir o SSL.

<?php
//Necessário testar em dominio com SSL
define("URL", "https://localhost/celke/");

//Quando o projeto estiver em desenvolvimento deixar true, quando estiver em produção colocar false para carregar as credenciais do PagSeguro
$sandbox = true;
if($sandbox){
	//Credenciais do SandBox
    define("EMAIL_PAGSEGURO", "Seu e-mail no SandBox do PagSeguro");
    define("TOKEN_PAGSEGURO", "Seu token no SandBox do PagSeguro");
    define("URL_PAGSEGURO", "https://ws.sandbox.pagseguro.uol.com.br/v2/");
    define("SCRIPT_PAGSEGURO", "https://stc.sandbox.pagseguro.uol.com.br/pagseguro/api/v2/checkout/pagseguro.directpayment.js");
}else{
	//Credenciais do PagSeguro
    define("TOKEN_PAGSEGURO", "Seu token no PagSeguro");
    define("URL_PAGSEGURO", "https://ws.pagseguro.uol.com.br/v2/");
    define("SCRIPT_PAGSEGURO", "https://stc.pagseguro.uol.com.br/pagseguro/api/v2/checkout/pagseguro.directpayment.js");
}

Em seguida criado o arquivo "index.php" para ser a página inicial do projeto, no qual é incluído a página de configuração, e os JavaScript, sendo o jQuery, a biblioteca da API do PagSeguro e o arquivo JS personalizado. Também criado o botão pagar com o evento "onclick" para chamar a função "pagamento".

<?php
//Incluir o arquivo de configuração
include './configuracao.php';
?>
<!DOCTYPE html>
<html lang="pt-br">
    <head>
        <meta charset="UTF-8">
        <title>Celke - PagSeguro</title>
    </head>
    <body>
        <!-- Criar o botão pagamento, com o evento onclick, chamando a função pagamento-->
        <button onclick="pagamento()">Pagar</button>
        <span class="endereco" data-endereco="<?php echo URL; ?>"></span>
        
		<!-- Inclusão do JavaScript, sendo o jQuery e a biblioteca da API, também o JS personalizado-->
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
        <script type="text/javascript" src="<?php echo SCRIPT_PAGSEGURO; ?>"></script>
        <script src="js/personalizado.js"></script>
    </body>
</html>

Criado o arquivo "personalizado.js" no diretório "js" com a função "pagamento". Nesta função será chamado a página responsável em solicitar o ID da sessão para o PagSeguro.

function pagamento(){
	
	//Endereco padrão do projeto
    var endereco = jQuery('.endereco').attr("data-endereco");
    $.ajax({
		
		//URL completa do local do arquivo responsável em buscar o ID da sessão
        url: endereco + "pagamento.php",
        type: 'POST',
        dataType: 'json',
        success: function (retorno) {
            //console.log(retorno);
			
			//ID da sessão retornada pelo PagSeguro
            PagSeguroDirectPayment.setSessionId(retorno.id);
        }
    });
}

Criar o arquivo "pagamento.php" para recuperar o ID da sessão fornecido pelo PagSeguro.

<?php

//Incluir o arquivo com as configurações
include 'configuracao.php';

//Criar a URL do PagSeguro
$url = URL_PAGSEGURO . "sessions?email=" . EMAIL_PAGSEGURO . "&token=" . TOKEN_PAGSEGURO;

//Utilizar o CURL para realizar a requisição ao PagSeguro
//http://br2.php.net/manual/pt_BR/function.curl-setopt.php
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-Type: application/x-www-form-urlencoded; charset=UTF-8"));
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$retorno = curl_exec($curl);
curl_close($curl);

$xml = simplexml_load_string($retorno);
echo json_encode($xml);

Chegamos ao final de mais um tutorial, no próximo tutorial será dado sequencia a integração do PagSeguro com o PHP.

Download do código fonte desenvolvido na aula: DOWNLOAD