Example #1
0
 public function updateStatus()
 {
     if (!$this->payment) {
         return false;
     }
     $order = Order::getOrder($this->payment->order_id);
     // Retrieve transaction from gateway
     $result = $this->method->getTransaction($this->payment->gateway_id, $this->payment->order_id, $order->total);
     if ($result->success) {
         $this->payment->set('status', Payment::PAYMENT_STATUS_APPROVED);
     } else {
         if ($result->status == 'incompleted') {
             $this->payment->set('status', Payment::PAYMENT_STATUS_INCOMPLETED);
         } else {
             $this->payment->set('status', Payment::PAYMENT_STATUS_REJECTED);
         }
     }
     $this->payment->save();
 }
Example #2
0
     $total = $cart->getSubtotal();
     // Validate products
     if (empty($items)) {
         $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;
 }
Example #3
0
$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
            //TODO log
            $processResult = 99;
        }
        foreach ($products as $product) {