Mygento_Payture_PaymentController::processAction()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 18
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 18
rs 9.4285
c 0
b 0
f 0
cc 3
eloc 13
nc 3
nop 0
1
<?php
2
3
/**
4
 *
5
 *
6
 * @category Mygento
7
 * @package Mygento_Payture
8
 * @copyright Copyright © 2016 NKS LLC. (http://www.mygento.ru)
9
 */
10
class Mygento_Payture_PaymentController extends Mage_Core_Controller_Front_Action
11
{
12
13
    public function indexAction()
14
    {
15
        $this->getResponse()->setBody('Nope. Visit <a href="http://www.mygento.ru/">Magento development</a>');
16
    }
17
18
    public function processAction()
19
    {
20
        if (Mage::getStoreConfig('payment/payture/redirect')) {
21
            $result = array();
22
            $session = Mage::getSingleton('checkout/session');
23
            $order = Mage::getModel('sales/order')->loadByIncrementId($session->getLastRealOrderId()); //получаем id заказа
24
            if (!$order->getId()) {
25
                return $result;
26
            }
27
            $url2go = Mage::helper('payture')->getLink($order->getId());
28
            //перенаправление на оплату
29
            $this->_redirectUrl($url2go);
30
            Mage::helper('payture')->addLog('Redirecting to immediate payment');
31
        } else {
32
            Mage::helper('payture')->addLog('NO Redirect');
33
            $this->_redirect('checkout/onepage/success', array('_secure' => true));
34
        }
35
    }
36
37
    public function paynowAction()
38
    {
39
        $session = Mage::getSingleton('checkout/session');
40
        //сессия
41
        $enc_key = $this->getRequest()->getParam('order');
42
        $ticket = Mage::helper('payture')->decodeid($enc_key);
43
        if ($ticket) {
44
            $order_id = $ticket->getOrderid();
45
            if ($order_id) {
46
                $order = Mage::getModel('sales/order')->load($order_id);
47
                if ($order->canInvoice()) {
48
                    $code = $order->getPayment()->getMethodInstance()->getCode();
49
                    if ($code == 'payture') {
50
                        $url2go = Mage::getModel('payture/payture')->processOrder($order, $enc_key);
51
                        if ($url2go) {
52
                            $this->_redirectUrl($url2go);
53
                            return;
54
                        } else {
55
                            $session->addError(Mage::helper('payture')->__('Error in your order processing'));
56
                            $this->_redirect('checkout/cart'); //отправка на корзину
57
                            return;
58
                        }
59
                    } else {
60
                        return;
61
                    }
62
                } else {
63
                    Mage::helper('payture')->addLog('Order #' . $order_id . ' is already paid');
64
                    $session->addError(Mage::helper('payture')->__('Payment failed. Please try again later.'));
65
                    $this->_redirect('checkout/cart'); //отправка на корзину
66
                    return;
67
                }
68
            } else {
69
                $session->addError(Mage::helper('payture')->__('Error. Order not found.'));
70
                $this->_redirect('checkout/cart'); //отправка на корзину
71
                return;
72
            }
73
        } else {
74
            $session->addError(Mage::helper('payture')->__('Error. Order not found.'));
75
            $this->_redirect('checkout/cart'); //отправка на корзину
76
            return;
77
        }
78
    }
79
80
    public function resultAction()
81
    {
82
        $enc_key = $this->getRequest()->getParam('order');
83
        Mage::helper('payture')->addLog('Got key ' . $enc_key);
84
        $ticket = Mage::helper('payture')->decodeid($enc_key);
85
        if ($ticket) {
86
            Mage::helper('payture')->addLog('Check ticket ' . $ticket);
87
            Mage::helper('payture')->checkTicket($ticket);
88
        }
89
        $session = Mage::getSingleton('checkout/session');
90
        $session->addSuccess(Mage::helper('payture')->__('You order will be checked soon.'));
91
        $this->_redirect('checkout/onepage/success', array('_secure' => true));
92
        return;
93
    }
94
}
95