PHP Classes

File: Captura.php

Recommend this page to a friend!
  Classes of Julio Cezar Kronbauer   Integração PHP PagSeguro   Captura.php   Download  
File: Captura.php
Role: Example script
Content type: text/plain
Description: Exemplo de captura
Class: Integração PHP PagSeguro
Process payments with PagSeguro API
Author: By
Last change: Changed some bugged characters
Date: 10 years ago
Size: 3,611 bytes
 

Contents

Class file image Download
<?php

include_once $_SERVER['DOCUMENT_ROOT'] . '/PagSeguro/PagSeguro.Class.php';

$id_pedido = 813542;
$pedido_valor = 129.70;

$error_code = 1;
$error_message = 'Registro de pagamento não encontrado.';

/* Verifica se o PagSeguro enviou o código da transação, para inserir nos dados do pedido e verificar se já foi pago */
$pagou_com_pagseguro = false;

// O nome deste parâmetro GET você pode criar no painel (padrão "transaction_id") //
$pagseguro_transaction_id = trim(isset($p['pagseguro_transac_id']) ? $p['pagseguro_transac_id'] : (isset($g['pagseguro_transac_id']) ? $g['pagseguro_transac_id'] : (isset($p['transaction_id']) ? $p['transaction_id'] : (isset($g['transaction_id']) ? $g['transaction_id'] : ''))));

$pagseguro_dados_OK = strlen($pagseguro_transaction_id) &&
                      (
$pagseguro_transacao_dados = $PagSeguro->capturaTransacao('email-vendedor@provedor.com.br', 'TOKEN_DE_SEGURANCA_CRIADO_NO_PAINEL_DO_PAGSEGURO', $pagseguro_transaction_id)) &&
                     
$pagseguro_transacao_dados['code'] == $pagseguro_transaction_id &&
                     
$pagseguro_transacao_dados['grossAmount'] == $pedido_valor;

if (
$pagseguro_dados_OK) {
    switch (
$pagseguro_transacao_dados['status']) {
        case
PAGSEGURO_TRANSACTION_STATUS_PAGA:
        case
PAGSEGURO_TRANSACTION_STATUS_DISPONIVEL:
           
$pagou_com_pagseguro =
           
$transacao_OK = true;

            break;

        case
PAGSEGURO_TRANSACTION_STATUS_AGUARDANDO_PAGAMENTO:
           
$error_code = 3;
           
$error_message = 'Aguardando pagamento: o comprador iniciou a transação, mas até o momento o PagSeguro não recebeu nenhuma informação sobre o pagamento.';

            break;

        case
PAGSEGURO_TRANSACTION_STATUS_EM_ANALISE:
           
$error_code = 4;
           
$error_message = 'Em análise: o comprador optou por pagar com um cartão de crédito e o PagSeguro está analisando o risco da transação.';

            break;

        case
PAGSEGURO_TRANSACTION_STATUS_EM_DISPUTA:
           
$error_code = 5;
           
$error_message = 'Em disputa: o comprador, dentro do prazo de liberação da transação, abriu uma disputa.';

            break;

        case
PAGSEGURO_TRANSACTION_STATUS_DEVOLVIDA:
           
$error_code = 6;
           
$error_message = 'Devolvida: o valor da transação foi devolvido para o comprador.';

            break;

        case
PAGSEGURO_TRANSACTION_STATUS_CANCELADA:
           
$error_code = 7;
           
$error_message = 'Cancelada: a transação foi cancelada sem ter sido finalizada.';

            break;
    }
}
/* ================================================================================================================= */

if ($transacao_OK) {
   
/*
        Exemplo de alteração de pedido para notificar o site e o cliente de que a transação foi aprovada.

        Substitua o código pelo seu script.
    */
    // Seta a transação como PAGA //
   
$sql = "UPDATE pedidos
            SET status = "
. $DBConn->quote('PRODUCAO') . ",
                pagamento_gateway = "
. $DBConn->quote('PAGSEGURO') . ",
                pagseguro_transaction_id = "
. $DBConn->quote($pagseguro_transaction_id) . ",
                data_atualizacao = "
. $DBConn->quote(date('Y-m-d H:i:s')) . "
            WHERE id_pedidos = "
. $DBConn->quote($id_pedido);

   
$transacao_OK = $DBConn->query($sql);
   
// ========================== //

   
if ($transacao_OK) {
       
// Transação OK //
       
$error_code = 0;
       
$error_message = NULL;
       
// ============ //
   
} else {
       
// Erro na atualização dos dados do pedido //
       
$error_code = 2;
       
$error_message = 'Erro na atualização dos dados do pedido. Entre em contato conosco.';
       
// ======================================= //
   
}
   
/* ================================================================================================= */
}

?>