<?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.';
// ======================================= //
}
/* ================================================================================================= */
}
?>
|