/** * Инициализируем тип оплаты на странице. * * @todo: более данный механизм не используется, хотя можно было на его базе попробовать использовать ЯДКассу * * @param string $type_payment Название тип оплаты (передается в $_GET['type']) */ public function setPaymentMethod($type_payment) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/exrates.php'; switch ($type_payment) { case 'sber_print': $this->payment_template = 'bank/tpl.bank_fiz_print.php'; $this->type_menu_block = 'bank'; $this->payment_type = exrates::BANK; break; case 'sber': require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/bank_payments.php'; $this->payment_template = 'bank/tpl.bank_fiz.php'; $this->type_menu_block = 'bank'; $this->payment_type = exrates::BANK; $this->pm = new bank_payments(); $this->pm->bank_code = __paramInit('int', null, 'bc', bank_payments::BC_SB); $this->pm->sum = __paramInit('float', null, 'Sum'); $bp_reqv = bank_payments::GetLastReqv($this->pm->bank_code, $this->user['uid']); $this->pm->fio = $bp_reqv['fio']; $this->pm->address = $bp_reqv['address']; if (!$this->pm->bill_num) { $this->pm->bill_num = bank_payments::GenBillNum($this->pm->bank_code, $this->user['uid'], $this->acc['id']); } if (isset($_POST['action']) && $_POST['action'] == 'payment') { $this->pm->fio = substr(__paramInit('string', null, 'fio'), 0, 128); $this->pm->is_gift = false; $this->pm->address = substr(__paramInit('string', null, 'address'), 0, 255); $this->pm->bank_code = __paramInit('int', null, 'bc'); $this->pm->sum = __paramInit('float', null, 'sum'); setlocale(LC_ALL, 'en_US.UTF-8'); // гребанная бета! (это не мое) $this->pm->fm_sum = $bp->sum / EXCH_TR; $id = __paramInit('int', null, 'id'); if ($this->pm->sum < 10) { $alert['sum'] = 'Минимальная сумма платежа 10 рублей'; } if (!$this->pm->fio) { $alert['fio'] = 'Поле заполнено некорректно.'; } if (!$this->pm->address) { $alert['address'] = 'Поле заполнено некорректно.'; } if (!$alert) { if ($id) { $this->pm->bank_code = null; $this->pm->Update($id, " AND user_id = {$this->user['uid']} AND accepted_time IS NULL"); } else { $this->pm->bill_num = bank_payments::GenBillNum($this->pm->bank_code, $this->user['uid'], $this->acc['id']); $this->pm->user_id = $this->user['uid']; $this->pm->op_code = 12; $id = $this->pm->Add($error, true); } if (!$error) { $prepare = $this->preparePayments($this->getTotalAmmountOrders()); if ($prepare) { header("Location: /bill/payment/print/?type=sber_print&id={$id}"); exit; } } } $this->error = $alert; } $this->bank = bank_payments::GetBank($bp->bank_code); break; case 'bank_print': require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/reqv.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/reqv_ordered.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/city.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/country.php'; if ($_GET['order'] > 0) { $this->payment_template = 'bank/tpl.bank_jur_transfer.php'; $this->tid = intval($_GET['order']); } else { $this->payment_template = 'bank/tpl.bank_jur_print.php'; } $this->type_menu_block = 'bank'; $this->payment_type = exrates::BANK; $this->bank_sum = $_SESSION['sum_bank_print']; $this->bank_id = $_SESSION['id_bank_print']; unset($_SESSION['sum_bank_print'], $_SESSION['id_bank_print']); break; case 'bank': require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/reqv.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/reqv_ordered.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/city.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/country.php'; $this->payment_template = 'bank/tpl.bank_jur.php'; $this->type_menu_block = 'bank'; $this->payment_type = exrates::BANK; $this->pm = new reqv(); $reqvByUid = $this->pm->GetByUid($this->user['uid']); $reqvs_ord = new reqv_ordered(); $this->pm->billNum = sizeof($reqvs_ord->GetByUid($this->user['uid'])); $this->pm->BindRequest($reqvByUid[0]); if (isset($_POST['action']) && $_POST['action'] == 'payment') { $_POST['country'] = country::getCountryName($_POST['country_db_id']); $_POST['city'] = city::getCityName($_POST['city_db_id']); $this->pm->BindRequest($_POST); $this->error = $this->pm->CheckInput(); if ($_POST['sum'] < 10) { $this->error['sum'] = 'Минимальная сумма платежа 10 рублей'; } if (!$this->error) { $this->pm->user_id = $this->user['uid']; if ($reqvByUid[0]['id'] > 0) { $id = $reqvByUid[0]['id']; $this->pm->Update($id, " AND user_id= {$this->user['uid']}"); } else { $id = $this->pm->Add($err, true); } $prepare = $this->preparePayments($this->getTotalAmmountOrders()); if ($prepare) { $_SESSION['id_bank_print'] = $id; $_SESSION['sum_bank_print'] = intval($_POST['sum']); header('Location: /bill/payment/print/?type=bank_print'); exit; } } } break; case 'alphabank': $this->payment_template = 'bank/tpl.alphabank.php'; $this->type_menu_block = 'bank'; $this->payment_type = exrates::BANK; if (isset($_POST['action']) && $_POST['action'] == 'reserve') { header('Location: /bill/'); exit; } break; case 'card': require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/settings.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/card_account.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/cardpay.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/city.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sbr_meta.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/onlinedengi_cards.php'; $this->payment_template = 'card/tpl.card.php'; $this->type_menu_block = 'card'; $this->payment_type = exrates::CARD; $this->card_merchant = settings::GetVariable('billing', 'card_merchant'); if ($this->card_merchant) { $card_account = new card_account(); $card_account->account_id = $this->acc['id']; $this->pm = new onlinedengi_cards(); if (!$this->not_init_pm) { $this->pm->order_id = $card_account->Add(); } } else { $this->pm = new card_account(); $this->pm->account_id = $this->acc['id']; if (!$this->not_init_pm) { $this->pm->order_id = $this->pm->Add(); } $this->pm->reqv = sbr_meta::getUserReqvs($this->user['uid']); } break; case 'qiwi': $this->payment_template = 'terminal/tpl.qiwi.php'; case 'svyasnoy': $this->payment_template = $this->payment_template ? $this->payment_template : 'terminal/tpl.svyasnoy.php'; case 'euroset': $this->payment_template = $this->payment_template ? $this->payment_template : 'terminal/tpl.euroset.php'; $this->type_menu_block = 'terminal'; $this->payment_type = exrates::OSMP; if ($_POST['action'] == 'osmp') { $prepare = $this->preparePayments($this->getTotalAmmountOrders()); if (!$this->test && $prepare !== false) { header('Location: /bill/'); exit; } } else { $this->error = 'Ошибка создания списка оплаты'; } break; case 'megafon_mobile': $this->payment_template = 'mobile/tpl.m_megafon.php'; case 'beeline_mobile': $this->payment_template = $this->payment_template ? $this->payment_template : 'mobile/tpl.m_beeline.php'; case 'mts_mobile': $this->payment_template = $this->payment_template ? $this->payment_template : 'mobile/tpl.m_mts.php'; case 'matrix_mobile': $this->payment_template = $this->payment_template ? $this->payment_template : 'mobile/tpl.m_matrix.php'; $this->type_menu_block = 'mobilesys'; $this->payment_type = exrates::MOBILE; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/qiwipay.php'; $this->pm = new qiwipay($this->user['uid']); if ($_POST['operator'] == 'megafon' || $_POST['operator'] == 'beeline' || $_POST['operator'] == 'mts' || $_POST['operator'] == 'matrix') { $phone = __paramValue('string', $_POST['phone']); $phone = str_replace(array('+7', '+77'), '', $phone); $err = 0; switch ($_POST['operator']) { case 'megafon': if (!(strpos($phone, '34') === 0 || strpos($phone, '62') === 0 || strpos($phone, '82') === 0 || strpos($phone, '92') === 0 || strpos($phone, '35') === 0 || strpos($phone, '63') === 0 || strpos($phone, '83') === 0 || strpos($phone, '93') === 0 || strpos($phone, '69') === 0 || strpos($phone, '99') === 0)) { $this->error['phone'] = 'Проверьте, верно ли выбран оператор. Указанный номер не относится в сети Мегафон'; $err = 1; } break; case 'beeline': if (!(strpos($phone, '90') === 0 || strpos($phone, '96') === 0)) { $this->error['phone'] = 'Проверьте, верно ли выбран оператор. Указанный номер не относится в сети Beeline'; $err = 1; } break; case 'mts': if (!(strpos($phone, '91') === 0 || strpos($phone, '98') === 0)) { $this->error['phone'] = 'Проверьте, верно ли выбран оператор. Указанный номер не относится в сети МТС'; $err = 1; } break; case 'matrix': if (!(strpos($phone, '958') === 0)) { $this->error['phone'] = 'Проверьте, верно ли выбран оператор. Указанный номер не относится в сети Matrix'; $err = 1; } break; } if (!$err) { $sum = __paramValue('float', $_POST['sum']); $request = array('phone' => $phone, 'sum' => $sum, 'oper_code' => $_POST['operator']); $created = $this->pm->createBill($request); if (!$created) { $prepare = $this->preparePayments($this->getTotalAmmountOrders()); if (!$this->test && $prepare !== false) { header('Location: /bill/'); exit; } } else { $this->error = $created; } } } break; case 'webpay': $this->type_menu_block = 'psys'; $this->payment_type = exrates::WEBM; $this->payment_template = 'psys/tpl.webpay.php'; break; case 'qiwipurse': require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/qiwipay.php'; $this->pm = new qiwipay($this->user['uid']); $this->type_menu_block = 'psys'; $this->payment_type = exrates::QIWIPURSE; $this->payment_template = 'psys/tpl.qiwipurse.php'; if ($_POST['action'] == 'qiwipurse') { $phone = __paramValue('string', $_POST['phone']); $phone = str_replace(array('+7', '+77'), '', $phone); $sum = __paramValue('float', $_POST['sum']); $request = array('phone' => $phone, 'sum' => $sum); $created = $this->pm->createBill($request); if (!$created) { $prepare = $this->preparePayments($this->getTotalAmmountOrders()); if (!$this->test && $prepare !== false) { header('Location: /bill/'); exit; } } else { $this->error = $created; } } break; case 'yandex': $this->type_menu_block = 'psys'; $this->payment_type = exrates::YM; $this->payment_template = 'psys/tpl.yandex.php'; break; case 'webmoney': $this->type_menu_block = 'psys'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/pmpay.php'; $this->payment_type = exrates::WMR; $this->payment_template = 'psys/tpl.webmoney.php'; $this->pm = new pmpay(); break; case 'okpay': $this->type_menu_block = 'psys'; $this->payment_type = exrates::OKPAY; $this->payment_template = 'psys/tpl.okpay.php'; break; } $this->type_payment = $type_payment; }
/** * Перевод для юр лиц - "Банковский перевод для юридических лиц (рубли)". */ public function bankAction() { front::og('tpl')->page = 'index'; $act = $this->uri[0]; if ($act == 'delete') { unset($_SESSION['sum']); require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/reqv.php'; $did = intval($this->uri[1]); if ($did) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/reqv.php'; $reqv = new reqv(); $reqv->Del($did, " AND user_id='" . get_uid() . "'"); header("Location: /{$this->name_page}/bank/"); exit; } unset($reqv); } if ($_POST['sum'] > 0) { $_SESSION['sum'] = floatval($_POST['sum']); } else { front::og('tpl')->sum = floatval($_SESSION['sum']); } // Обработка подстраницы редактирования данных для перевода if ($act == 'edit') { /** * Подключение всех необходимых классов для вывода данной страницы. */ require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/reqv.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/country.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/city.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/reqv_ordered.php'; if ($_POST['update']) { $reqv = new reqv(); $reqv->BindRequest($_POST); $error = $reqv->CheckInput(); if (!$error) { $reqv->user_id = get_uid(); $reqv->Update($reqv->id, " AND user_id='" . get_uid() . "'"); header("Location: /{$this->name_page}/bank/#reqv" . $reqv->id); exit; } else { $action = 'edit'; $edit_mode = 1; $eid = intval($reqv->id); } front::og('tpl')->error = $error; } front::og('tpl')->countries = country::GetCountries(); $reqvs = new reqv(); $reqvByUid = $reqvs->GetByUid(get_uid()); $reqvs_ord = new reqv_ordered(); $billNum = sizeof($reqvs_ord->GetByUid(get_uid())); $sum = trim($this->uri[2]); $norisk_id = intval(trim($_REQUEST['noriskId'])); front::og('tpl')->reqvs = $reqvs; front::og('tpl')->sum = $sum; front::og('tpl')->reqvByUid = $reqvByUid; front::og('tpl')->reqvs_ord = $reqvs_ord; front::og('tpl')->billNum = $billNum; front::og('tpl')->norisk_id = $norisk_id; front::og('tpl')->edit_mode = $edit_mode = 1; front::og('tpl')->eid = $eid = intval($this->uri[1]); // Событие нажатия кнопки - Обновить if (!$_POST['update']) { foreach ($reqvByUid as $ikey => $value) { $reqvs->BindRequest($value); if ($edit_mode && $reqvs->id == $eid) { $reqvkey = $ikey; } } $reqv = new reqv(); if ($act == 'edit' && !$error) { $reqv->BindRequest($reqvByUid[$reqvkey]); } elseif ($error) { $reqv->BindRequest($_POST); } } front::og('tpl')->reqv = $reqv; front::og('tpl')->display('bill/bill_bank_step2.tpl'); exit; } else { // Иначе выводим главную страницу, где необходимо заполнять поля require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/reqv.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/city.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/reqv_ordered.php'; front::og('tpl')->countries = country::GetCountries(); $reqvs = new reqv(); $reqvByUid = $reqvs->GetByUid(get_uid()); $reqvs_ord = new reqv_ordered(); $billNum = sizeof($reqvs_ord->GetByUid(get_uid())); $sum = trim(!$_POST['sum'] ? $_SESSION['sum'] : floatval($_POST['sum'])); $norisk_id = intval(trim($_REQUEST['noriskId'])); front::og('tpl')->reqvs = $reqvs; front::og('tpl')->sum = $sum; front::og('tpl')->reqvByUid = $reqvByUid; front::og('tpl')->reqvs_ord = $reqvs_ord; front::og('tpl')->billNum = $billNum; front::og('tpl')->norisk_id = $norisk_id; $reqv = new reqv(); if ($action == 'edit' && !$error) { $reqv->BindRequest($reqvByUid[$reqvkey]); } elseif ($error) { $reqv->BindRequest($_POST); } front::og('tpl')->reqv = $reqv; /* * Переход на следующую страницу для того чтобы подтвердить введенные данные */ if ($_POST['send']) { $reqv = new reqv(); $reqv->BindRequest($_POST); $error = $reqv->CheckInput(); //var_dump($error); if (!$error && !$_POST['editing']) { //$reqv->user_id = get_uid(); //$reqv->Add($err); front::og('tpl')->sum = !$_POST['sum'] ? $_SESSION['sum'] : floatval($_POST['sum']); //front::og("tpl")->sum = $_POST['sum']; front::og('tpl')->reqv = $reqv; front::og('tpl')->display('bill/bill_bank_step3.tpl'); exit; } front::og('tpl')->sum = !$_POST['sum'] ? $_SESSION['sum'] : floatval($_POST['sum']); //front::og("tpl")->sum = $_POST['sum']; front::og('tpl')->reqv = $reqv; front::og('tpl')->error = $error; //array("firm"=>"Введите название"); //front::og("tpl")->display("bill/bill_bank_step2.tpl"); //exit; } /* * Поддветрждение данных и выписка счета. */ if ($_POST['next']) { $reqv = new reqv(); $reqv->BindRequest($_POST); $error = $reqv->CheckInput(); if (!$error) { $reqv->user_id = get_uid(); $reqv->Add($err); header("Location: /{$this->name_page}/bank/"); exit; } front::og('tpl')->sum = !$_POST['sum'] ? $_SESSION['sum'] : floatval($_POST['sum']); //front::og("tpl")->sum = $_POST['sum']; front::og('tpl')->reqv = $reqv; front::og('tpl')->error = $error; } front::og('tpl')->display('bill/bill_bank_step2.tpl'); } //front::og("tpl")->display("bill/bill_bank_step1.tpl"); }
exit; } $no_risk = intval(trim($_REQUEST['noriskId'])); $op_code = $no_risk ? 36 : 12; $uid = get_uid(false); $reqv = new reqv(); $reqv->GetRow($tid, " AND user_id='{$uid}'"); $reqv_ordered = new reqv_ordered($reqv); $reqv_ordered->ammount = $sum; $reqv_ordered->op_code = $op_code; $reqv_ordered->norisk_id = $no_risk; $reqv_ordered->is_gift = false; if ($tid) { $ord_num = $reqv_ordered->SetOrdered($tid); } $billCode = 'Б-' . $account->id . '-' . sizeof($reqv_ordered->GetByUid($uid)); } $sum = round($sum, 2); if ($sbr_nds) { $sbr_nds = round($sbr_nds, 2); $sbr_comm = round($sbr_comm, 2); } $stc = new static_compress(); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML xmlns:math = "http://exslt.org/math" xmlns:date = "http://exslt.org/dates-and-times"><HEAD><TITLE>Free-lance.ru: Счет</TITLE> <META http-equiv=Content-Type content="text/html; charset=windows-1251"> <?php $stc->Send(); ?>