Esempio n. 1
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;
 }