Login   Register  
PHP Classes
elePHPant
Icontem

File: Captura.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  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: 1 year 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.';
        
//  =======================================  //
    
}
    
/*  =================================================================================================  */
}

?>