Bom, pra quem não conhece, o script é disponibilizado pelo próprio pagseguro, só fiz a conexão e adaptar para o nosso uso e + uma tabela de relatórios com listagem simples...

Primeiramente, rode o codigo sql
Código HTML:
USE [MuOnline]
GO

CREATE TABLE [dbo].[PagSeguro](
    [TransacaoID] [varchar](36) NOT NULL,
    [TipoPagamento] [varchar](50) NOT NULL,
    [CliEmail] [varchar](50) NOT NULL,
    [Valor] [text] NOT NULL,
    [Nome] [varchar](10) NOT NULL,
    [datahora] [datetime] NULL
)

Criem os arquivos:
comprar.php
retorno.php
listar.php
config.php


comprar.php
Código HTML:
<? require('config.php'); ?><center><form target="pagseguro" method="post"
action="https://pagseguro.uol.com.br/checkout/checkout.jhtml">
                   <input type="hidden" name="email_cobranca"
  value="<?=EMAIL?>" />
                   <input type="hidden" name="tipo" value="CBR" />
                   <input type="hidden" name="moeda" value="BRL" />
                <input type="hidden" name="item_id" value="1"/>
                <p><font size="2"> Digite seu Login.  </font></p>
                <input type="text" name="item_descr"/>
                  <p><font size="2"> Informe o Valor Desejado.  </font></p>
                <input type="hidden" name="item_quant" value="1"/>                   
    <select name="item_valor">
    <option value="10,00">10 R$</option>
    <option disabled>->100 WCoin's</option>
    <option value="20,00">20 R$</option>
    <option disabled>->220 WCoin's</option>
    <option value="30,00">30 R$</option>
    <option disabled>->340 WCoin's</option>
    <option value="40,00">40 R$</option>
    <option disabled>->460 WCoin's</option>
    <option value="50,00">50 R$</option>
    <option disabled>->580 WCoin's</option>
    <option value="100,00">100 R$</option>
    <option disabled>->1.200 WCoin's</option>
    <option value="200,00">200 R$</option>
    <option disabled>->2.500 WCoin's</option>
    </select><br /><br />
                   <input type="hidden" name="frete" value="0" />
                   <input type="hidden" name="peso" value="0" />
                   <input type="image" value="Comprar" class="button" name="submit" 
  src="https://p.simg.uol.com.br/out/pagseguro/i/botoes/pagamentos/209x48-comprar-azul-assina.gif"
  alt="Pague com PagSeguro - é rápido, grátis e seguro!" />
                 </form></center>
retorno.php
Código HTML:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<?php
require('config.php');
class PagSeguroNpi {
    
    private $timeout = 20; // Timeout em segundos
    
    public function notificationPost() {
        $postdata = 'Comando=validar&Token='.TOKEN;
        foreach ($_POST as $key => $value) {
            $valued    = $this->clearStr($value);
            $postdata .= "&$key=$valued";
        }
        return $this->verify($postdata);
    }
    
    private function clearStr($str) {
        if (!get_magic_quotes_gpc()) {
            $str = addslashes($str);
        }
        return $str;
    }
    
    private function verify($data) {
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, "https://pagseguro.uol.com.br/pagseguro-ws/checkout/NPI.jhtml");
        curl_setopt($curl, CURLOPT_POST, true);
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLOPT_HEADER, false);
        curl_setopt($curl, CURLOPT_TIMEOUT, $this->timeout);
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        $result = trim(curl_exec($curl));
        curl_close($curl);
        return $result;
    }

}
$connect = mssql_connect(MSSQL, USER, PASS) or die('Não foi possível conectar com o servidor MSSQL');
if (count($_POST) > 0) {
    // POST recebido, indica que é a requisição do NPI.
    $npi = new PagSeguroNpi();
    $result = $npi->notificationPost();
    $transacaoID = isset($_POST['TransacaoID']) ? $_POST['TransacaoID'] : '';
    $Status = $_POST['StatusTransacao'];
    $Transacao = $_POST['TransacaoID'];
     $TipoPagamento = $_POST['TipoPagamento'];
     $CliEmail = $_POST['CliEmail'];
    date_default_timezone_set('America/Sao_Paulo');
    $datahora = date("Y/m/d H:i:s");
    //update cash
    $Nome  = $_POST['ProdDescricao_1'];
    $Valor  = round($_POST['ProdValor_1']);
if ($result == "VERIFICADO") {
  if ($Status == "Aprovado") {
    //insert payment
    switch($Valor)
                {
                    case 10 : $Cash = 0; break;
                    case 20 : $Cash = 20; break;
                    case 30 : $Cash = 40; break;
                    case 40 : $Cash = 60; break;
                    case 50 : $Cash = 80; break;
                    case 100 : $Cash = 200; break;
                    case 200 : $Cash = 500; break;
                }
    $Saldo  = $Valor + $Cash;
    mssql_query("update ".CASH_DB.".dbo.".CASH_TB." set ".CASH_CO_CASH." = ".CASH_CO_CASH." + {$Saldo} WHERE ".CASH_CO_CONTA." = '{$Nome}'");
    mssql_query("INSERT into ".PAG_DB.".dbo.".PAG_TB." (TransacaoID, datahora, TipoPagamento, CliEmail, Valor, Nome) VALUES ('{$Transacao}','{$datahora}','{$TipoPagamento}','{$CliEmail}','{$Valor}','{$Nome}')"); 
  }
} else if ($result == "FALSO") {
        //O post não foi validado pelo PagSeguro.
    } else {
        //Erro na integração com o PagSeguro.
    }
    
} else {
    // POST não recebido, indica que a requisição é o retorno do Checkout PagSeguro.
    // No término do checkout o usuário é redirecionado para este bloco.
    ?>
    <?php
}

?>
listar.php
Código HTML:
    <html>
    <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
<center>
    <?php
    require('config.php');
    //Executa a consulta
    $connect = mssql_connect(MSSQL, USER, PASS) or die('Não foi possível conectar com o servidor MSSQL');
    echo "<table bgcolor=\"#666666\" width=\"70%\" border=\"0\"><tr>
                      <td width=\"5%\"><strong>#</strong></td>
                      <td width=\"10%\"><strong>Nome</strong></td>
                      <td width=\"10%\"><strong>Valor</strong></td>
                      <td width=\"20%\"><strong>Dara e Hora</strong></td>
                      <td width=\"15%\"><strong>Email</strong></td>
                      <td width=\"15%\"><strong>Tipo de Pagamento</strong></td>
                      <td width=\"15%\"><strong>ID da Transação</strong></td>
                     </tr></table>\n";

$Query = mssql_query("SELECT * FROM ".PAG_DB.".dbo.".PAG_TB." ORDER BY datahora DESC");

for($WzAG = 0; $WzAG < mssql_num_rows($Query); $WzAG++)
        {
             $Ranking = $WzAG+1;
            $Load = mssql_fetch_array($Query);
            $nome = $Load["Nome"];
            $valor = $Load["Valor"];
            $datahora = $Load["datahora"];
            $email = $Load["CliEmail"];
            $pagamento = $Load["TipoPagamento"];
            $transacao = $Load["TransacaoID"];
            echo "<table width=\"70%\" border=\"0\"><tr>
                      <td width=\"5%\"><strong>".$Ranking."</strong></td>
                         <td width=\"10%\">".$nome."</td>
                      <td width=\"10%\">".$valor."</td>
                      <td width=\"20%\">".$datahora."</td>
                      <td width=\"15%\">".$email."</td>
                      <td width=\"15%\">".$pagamento."</td>
                      <td width=\"15%\">".$transacao."</td>
                     </tr></table>\n";
        }

    ?></center>
    </body>
    </html>
config.php
Código HTML:
<?php
define("MSSQL","127.0.0.1");
define("USER","sa");
define("PASS","minhasenha");

define("CASH_DB","MuOnline");
define("CASH_TB","MEMB_INFO");
define("CASH_CO_CONTA","memb___id");
define("CASH_CO_CASH","CASH");

define("EMAIL","[email protected]");

define("Pag_DB","MuOnline");
define("Pag_TB","PagSeguro");
define("TOKEN","xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
?>

Para pegar o token, vá na sua conta pagseguro, a esquerda va em "Integração", selecione "Token de Segurança" e click em "Gerar Novo Token". Copie o codigo gerado e cole na sua config.

Pra configurar a pagina em que o pagseguro deve retornar os dados va em "Integrações" novamente e selecione "Pagina de Redirecionamento" mude a radiobox pra ativado e cole o link direto da sua pagina de retorno.php, e click em ativar.


Não irei dar suporte nenhum...