PHP Classes

File: Captura.php

Recommend this page to a friend!
  Classes of Julio Cezar Kronbauer   LibrePag   Captura.php   Download  
File: Captura.php
Role: Example script
Content type: text/plain
Description: Exemplo de captura de transação
Class: LibrePag
Generate LibrePag payment buttons and get results
Author: By
Last change: Changed some variable names
Date: 10 years ago
Size: 3,102 bytes
 

Contents

Class file image Download
<?php

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

$id_pedido = 412901;

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

/* Verifica se o LibrePag enviou os dados da transação, para verificar se o pedido já foi pago */
$pagou_com_librepag = false;

$librepag_dados_OK = ($librepag_transacao_dados = $LibrePag->capturaTransacao()) &&
                     (
$librepag_transaction_id = $librepag_transacao_dados['transacao']['id']) &&
                     (
$librepag_transaction_status = $librepag_transacao_dados['transacao']['status']) &&
                     (
$librepag_transaction_forma_pagamento_bandeira = $librepag_transacao_dados['transacao']['metodo']) &&
                    
$librepag_transacao_dados['pedido']['numero'] == $id_pedido;

if (
$librepag_dados_OK) {
    switch (
$librepag_transaction_status) {
        case
LIBREPAG_TRANSACAO_STATUS_APROVADA:
        case
LIBREPAG_TRANSACAO_STATUS_APROVADA_VALOR_PARCIAL:
        case
LIBREPAG_TRANSACAO_STATUS_APROVADA_E_CAPTURADA:
           
$pagou_com_librepag =
           
$transacao_OK = true;

            break;

        case
LIBREPAG_TRANSACAO_STATUS_INICIADA:
           
$error_code = 3;
           
$error_message = 'Transação iniciada.';

            break;

        case
LIBREPAG_TRANSACAO_STATUS_BOLETO_IMPRESSO:
           
$error_code = 4;
           
$error_message = 'Boleto impresso.';

            break;

        case
LIBREPAG_TRANSACAO_STATUS_CANCELADA:
           
$error_code = 5;
           
$error_message = 'Transação cancelada.';

            break;

        case
LIBREPAG_TRANSACAO_STATUS_EM_ANALISE:
           
$error_code = 6;
           
$error_message = 'Transação em análise.';

            break;

        case
LIBREPAG_TRANSACAO_STATUS_RECUSADA:
           
$error_code = 7;
           
$error_message = 'Transação recusada.';

            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('LIBREPAG') . ",
                librepag_transaction_id = "
. $DBConn->quote($librepag_transaction_id) . ",
                librepag_transaction_status = "
. $DBConn->quote($librepag_transaction_status) . ",
                librepag_transaction_forma_pagamento_bandeira = "
. $DBConn->quote($librepag_transaction_forma_pagamento_bandeira) . ",
                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.';
       
// ======================================= //
   
}
   
/* ================================================================================================= */
}

?>