protected function getView()
 {
     //https://сервер/index.php?BANK_ID=BBTYPE=1&PAY_ID=12345&PAY_DATE=2009-04-15 11:22:33&ACCOUNT=54321&PAY_AMOUNT=1100&SIGN=827CCB0EEA8A706C4C34A16891F84E7B
     $config = $this->toolkit->getConfig('ctBank');
     $userMapper = $this->toolkit->getMapper('user', 'user');
     $bankMapper = $this->toolkit->getMapper('ctData', 'ctDataBank');
     $bank_title = $this->request->getString('BANK_ID', SC_GET);
     $bank = $bankMapper->searchOneByField('title', $bank_title);
     switch ($this->request->getInteger('TYPE', SC_GET)) {
         case 1:
             $action = 'payment';
             break;
         case 4:
             $action = 'check';
             break;
         default:
             return $this->forward404();
     }
     $validator = new formValidator();
     $validator->disableCSRF();
     $validator->submit('TYPE');
     // Проверка в запросе обязательного поля bank_id
     $validator->rule('callbackwmsg', 'BANK_ID', 0, array(array($this, 'checkBank'), $bank));
     $validator->rule('required', 'SIGN', 4);
     $validator->rule('callback', 'SIGN', 4, array(array($this, 'checkSign'), $bank));
     $validator->rule('required', 'ACCOUNT', 2);
     $validator->rule('callback', 'ACCOUNT', 5, array(array($this, 'checkAccount'), $bank));
     $validator->rule('in', 'CHECK_BY', 'not in range', array('login', 'card_number'));
     // Проверит линковку аккаунта к школе
     if ($action == 'payment') {
         $validator->rule('required', 'PAY_AMOUNT', 2);
         $validator->rule('numeric', 'PAY_AMOUNT', 3);
         $validator->rule('required', 'PAY_ID', 2);
         $validator->rule('callbackwmsg', 'PAY_ID', 0, array(array($this, 'checkPayId'), $bank));
         $validator->rule('required', 'PAY_DATE', 2);
         $validator->rule('regex', 'PAY_DATE', 3, '!\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}!');
         // Валидатор поля типа платежа
         //             $validator->rule('required', 'ACCOUNT_TYPE', 2);
         $validator->rule('callback', 'ACCOUNT_TYPE', 3, array(array($this, 'checkAccountType')));
     }
     if ($validator->validate()) {
         $user = $this->getUser();
         if ($action == 'payment') {
             // Заберем настройки модуля
             if (!$config->exists('comission')) {
                 throw new mzzRuntimeException('"comission" value not found in configs/ctBank.php');
             }
             $pay_id = $this->request->getString('PAY_ID', SC_GET);
             $sum = $this->request->getInteger('PAY_AMOUNT', SC_GET) / 100;
             //PAY_AMOUNT – сумма платежа в копейках
             $enrolledSum = $sum * (100 - $config->get('comission')) / 100;
             if (preg_match('!\\A([a-z]{2})!i', $pay_id, $match)) {
                 $bank_name = $match[1];
             } else {
                 $bank_name = '';
             }
             // Получим тип аккаунта на который класть деньги
             $ctBillLocalAccountTypeMapper = $this->toolkit->getMapper('ctBillLocal', 'ctBillLocalAccountType');
             $account_type = $this->request->getInteger('ACCOUNT_TYPE', SC_GET);
             if (empty($account_type)) {
                 $account_type = 1;
             }
             $ctBillLocalAccountType = $ctBillLocalAccountTypeMapper->searchByKey($account_type);
             // Получим аккаунт
             $account = $user->getAccount($ctBillLocalAccountType->getName());
             $accountType = $account->getAccountType();
             // Осуществляем платеж
             if ($account && $account->enrollPayment($sum, 'Платеж через терминал ' . $bank_name . ' (' . $pay_id . ')', $accountType->getDefaultEnrollmentSubtype())) {
                 $status = 0;
                 $msg = 'Платеж принят';
                 // Создадим запись о платеже
                 $ctBankOnlinepayPaymentMapper = $this->toolkit->getMapper('ctBank', 'ctBankOnlinepayPayment');
                 $payment = $ctBankOnlinepayPaymentMapper->create();
                 $payment->setBankId($bank->getId());
                 $payment->setPayId($pay_id);
                 $payment->setUserId($user->getId());
                 $payment->setDate(time());
                 $payment->setSum($sum);
                 $payment->setEnrolledSum($enrolledSum);
                 $payment->setStatus($status);
                 $ctBankOnlinepayPaymentMapper->save($payment);
             } else {
                 $status = 21;
                 $msg = 'Ошибка биллинга';
             }
         } else {
             $status = 0;
             $msg = 'Абонент существует';
             $this->view->assign('login', $user->getLogin());
             $this->view->assign('fio', $user->getFullname());
             $this->view->assign('balance', $user->getAccount()->getBalance());
             $ctCardServiceInfo = $user->getctCardServiceInfo();
             // Проверим есть ли запись об этом учение в таблице с абонентской платой
             if ($ctCardServiceInfo && (double) $ctCardServiceInfo->getSum()) {
                 $cardAccount = $user->getAccount('cardservice');
                 if ($cardAccount && $cardAccount->getBalance()) {
                     $this->view->assign('cardservice_balance', $cardAccount->getBalance());
                 }
                 $this->view->assign('block_status', $user->getAccount()->getBlockStatus());
             }
         }
     } else {
         $status = reset($validator->getErrors());
     }
     if (isset($msg)) {
         $this->view->assign('message', $msg);
     }
     //var_dump($validator->getErrors());
     $this->view->assign('status', $status);
 }