Example #1
0
use Fototea\Models\PaymentManager;
use Fototea\Models\Payment;
use Fototea\Models\Product;
use Fototea\Models\PuntoPagos;
use Fototea\Models\OrderProduct;
use Fototea\Util\UrlHelper;
$file = 'pagoexito.txt';
$content = "-----------------------------------------------------------------------------------------";
$content .= "\nGET\n";
$content .= json_encode($_GET);
$content .= "\n\nPOST\n";
$content .= json_encode($_POST);
$content .= "\n\n";
//file_put_contents($file, $content, FILE_APPEND);
$token = $app->getRequest()->get('token');
$paymentMethod = new PaymentManager($app, PuntoPagos::PAYMENT_METHOD_TYPE);
$paymentMethod->loadByGatewayId($token);
if ($paymentMethod->getStatus() === Payment::PAYMENT_STATUS_APPROVED) {
    $products = OrderProduct::getProductsByOrderId($paymentMethod->getOrderId());
    if (empty($products)) {
        //TODO correo aqui
        //TODO log
        $processResult = 99;
    }
    foreach ($products as $product) {
        //Aplicar cambios segun cada producto
        if ($product->id == Product::PRODUCT_ADJUDICAR_ID) {
            $productData = json_decode($product->data);
            $msg = 'El proyecto ha sido adjudicado de forma exitosa. <a href="' . UrlHelper::getProjectUrl($productData->project_id) . '">Ir al proyecto</a>';
        }
    }
Example #2
0
            $app->addError("Ha ocurrido un error con los productos intentando procesar su método de pago");
            $app->redirect($app->getConfig()->getUrl('metodopago'));
            return;
        }
        // Validate payment method selected
        $paymentMethod = $app->getRequest()->post('payment_method');
        if ($paymentMethod != PuntoPagos::PAYMENT_METHOD_TYPE && $paymentMethod != Deposit::PAYMENT_METHOD_TYPE && $paymentMethod != Transfer::PAYMENT_METHOD_TYPE) {
            $app->addError("Debe seleccionar un método de pago válido");
            $app->redirect($app->getConfig()->getUrl('metodopago'));
            return;
        }
        // Create Order
        $order = Order::create($currentUser->id, $total);
        // Create OrderProduct
        OrderProduct::create($order->id, $items);
        // Create Payment
        $paymentManager = new PaymentManager($app, $paymentMethod);
        $result = $paymentManager->createPayment($order);
        if ($result->success == false) {
            $app->addError("Ha ocurrido un error intentando procesar la transacción con el método de pago");
            $app->redirect($app->getConfig()->getUrl('metodopago'));
            return;
        }
        // TODO: Clear cart
        $app->getCart()->clear();
        $app->redirect($result->redirectUrl);
        return;
    }
} else {
    $app->redirect($app->getConfig()->getUrl('perfil'));
}
Example #3
0
$content .= DateHelper::getCurrentDateTime();
$content .= "-----------------------------------------------------------------------------------------\n";
$content .= "\nGET\n";
$content .= json_encode($_GET);
$content .= "\n\nPOST\n";
$content .= json_encode($_POST);
$content .= "\n\n";
//file_put_contents($file, $content, FILE_APPEND);
// END - ONLY FOR TEST PURPOSES
$token = $app->getRequest()->get('token');
$processResult = 00;
if (empty($token)) {
    $processResult = 99;
} else {
    //TODO falta validar la firma....
    $paymentMethod = new PaymentManager($app, PuntoPagos::PAYMENT_METHOD_TYPE);
    $paymentMethod->loadByGatewayId($token);
    $paymentMethod->updateStatus();
    $orderId = $paymentMethod->getOrderId();
    $order = Order::getOrder($orderId);
    if ($paymentMethod->getStatus() == Payment::PAYMENT_STATUS_APPROVED) {
        $order->set('status', Order::ORDER_STATUS_COMPLETED);
    } else {
        $order->set('status', Order::ORDER_STATUS_FAILED);
    }
    $order->save();
    if ($paymentMethod->getStatus() == Payment::PAYMENT_STATUS_APPROVED) {
        //Sacar order products
        $products = OrderProduct::getProductsByOrderId($order->id);
        if (empty($products)) {
            //TODO correo aqui