예제 #1
0
function setReqvs($sbr_id, $params)
{
    $objResponse = new xajaxResponse();
    //@todo: запрещаем изменять финансы в старой СБР #29196
    $objResponse->alert('Прекращена поддержка СБР.');
    return $objResponse;
    $objResponse->script("\$('finance-update-btn').removeClass('b-button_disabled');");
    $sbr_id = intval($sbr_id);
    if (!$sbr_id) {
        return $objResponse;
    }
    $uid = get_uid(0);
    if (!$uid) {
        $objResponse->redirect('/');
        return $objResponse;
    }
    $reqvs = sbr_meta::getUserReqvs($uid);
    $sbr = sbr_meta::getInstance();
    $sbr->initFromId($sbr_id);
    if ($sbr->status == sbr::STATUS_CANCELED) {
        ob_start();
        include $_SERVER['DOCUMENT_ROOT'] . '/sbr/freelancer/tpl.sbr_refuse.php';
        $html = ob_get_clean();
        $objResponse->assign('master_content', 'innerHTML', $html);
        $objResponse->script('$$(".b-master").destroy();');
    }
    $form_type = intval($params['form_type']);
    $rez_type = intval($params['rez_type']);
    if (!$rez_type) {
        $rez_type = $reqvs['rez_type'];
    }
    if (!$form_type || !$rez_type) {
        return $objResponse;
    }
    $oreqvs = $reqvs;
    $error = array();
    $reqvs1 = array();
    foreach ($params as $k => $v) {
        if (!array_key_exists($k, $reqvs[$form_type])) {
            continue;
        }
        $reqvs1[$k] = $v;
        $reqvs[$form_type][$k] = $v;
    }
    //if($err = sbr_meta::setUserReqv($uid, $rez_type, $form_type, $reqvs1)) {
    //    $error = $err;
    //}
    //@todo: запрещаем изменять финансы в старой СБР #29196
    $error = 'Прекращена поддержка СБР.';
    if (empty($error) && ($reqvs1['mob_phone'] != $oreqvs[$form_type]['mob_phone'] && !($_SESSION['is_verify'] == 't') || $oreqvs['is_activate_mob'] == 'f')) {
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sms_gate_a1.php';
        if ($params['mob_phone'] != '') {
            $ureqv = $reqvs1;
            $sms_gate = new sms_gate_a1($ureqv['mob_phone']);
            $info = $sms_gate->getInfoSend();
            $success = false;
            if (!$sms_gate->isNextSend()) {
                $success = $sms_gate->sendAuthCellCode();
                if (SMS_GATE_DEBUG) {
                    $code_debug = $sms_gate->getAuthCode();
                }
            }
            if (SMS_GATE_DEBUG && !$code_debug) {
                $code_debug = $info['data'];
            }
            $callback_js = 'a_sms_act';
            $limitIsExceed = $sms_gate->limitSmsOnNumberIsExceed($params['mob_phone'], $recordId, $count, $message);
            $linkText = 'СМС не пришло';
            $linkStyle = sms_gate_a1::$enable_link_css;
            if ($message) {
                $linkText = "СМС не пришло ({$message})";
            }
            if ($limitIsExceed) {
                $linkText = sms_gate_a1::LIMIT_EXCEED_LINK_TEXT;
                $linkStyle = sms_gate_a1::$disable_link_css;
            }
            if ($success) {
                $limitIsExceed = false;
            }
            ob_start();
            include $_SERVER['DOCUMENT_ROOT'] . '/sbr/tpl.auth_sms_popup.php';
            $out = ob_get_clean();
            $objResponse->assign('auth_popup', 'innerHTML', $out);
            $objResponse->script("\$('auth_popup').show(); \$('auth_popup').removeClass('b-shadow_hide'); shadow_popup();");
            $objResponse->script("\$('send_btn').removeClass('b-button_rectangle_color_disable');\n                                  \$('send_btn').getElement('.b-button__txt').removeClass('b-button__txt_hide');\n                                  \$('send_btn').getElement('.b-button__load').hide();");
            return $objResponse;
        }
    } elseif ($oreqvs['is_activate_mob'] == 't' && $reqvs1['mob_phone'] != $oreqvs[$form_type]['mob_phone']) {
        $error['mob_phone'] = 'У вас привязка к другому номеру';
    }
    //Проверка наличия и идентификации веб-кошелька только для физиков!
    if (!$error && !is_emp()) {
        $phone = $oreqvs[$form_type]['mob_phone'];
        $pskb = new pskb();
        $res = $pskb->checkOrCreateWallet($phone);
        if (empty($res)) {
            $error['mob_phone'] = 'Ошибка соединения с Веб-кошельком.';
        } else {
            $res = json_decode($res, 1);
            if (empty($res['state']) || in_array($res['state'], array('COMPLETE'))) {
                //'EXIST'
                $error['mob_phone'] = '
                    Веб-кошелек с указанным номером отсутствует. Для проведения сделки 
                    зарегистрируйте и идентифицируйте Веб-кошелек на указанный номер.';
            } elseif (!$res['identified']) {
                $error['mob_phone'] = '
                    Ваш Веб-кошелек не идентифицирован. Для проведения сделки укажите 
                    другой номер телефона и кошелька или идентифицируйте текущий Веб-кошелек.';
            }
        }
    }
    if (!$error) {
        //$_SESSION['users.setup.fin_success'] = 1;
        if (!hasPermissions('users')) {
            $smail = new smail();
            $smail->FinanceChanged($_SESSION['login']);
        }
    }
    if ($error) {
        $objResponse->call('finance_err_set', $error, $form_type);
        return $objResponse;
    }
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/pskb.php';
    $pskb_frl = new pskb_user($reqvs, intval(is_emp()), $sbr->getTotalCost());
    $psystems = $pskb_frl->getPsystems();
    $objResponse->script('psysDisabled = ' . json_encode($psystems['disabled']) . ';');
    $objResponse->script('psysHidden = ' . json_encode($psystems['hidden']) . ';');
    $objResponse->script('if(finance_check(null, true)) finance_prepare();');
    //    $objResponse->call('finance_spinn_hide');
    return $objResponse;
}
예제 #2
0
 /**
  * Верификация через веб-кошелек ПСКБ. 
  * Требуется заполненность ФИО, пасспорта и активированного номера телефона
  * 
  * @param  integer $uid  uid пользователя
  * @return boolean       результат операции
  */
 public function pskb($uid)
 {
     global $DB;
     if (empty($uid)) {
         $this->error = 'Вы не авторизованы.';
         return false;
     }
     $logId = $DB->insert('verify_pskb', array('user_id' => $uid), 'id');
     // используем проверку на заполненость полей от яндекса, она подходит
     if (empty($this->aUserReqvs)) {
         if (!$this->ydCheckUserReqvs($uid)) {
             return false;
         }
     }
     $phone = $this->aUserReqvs[1]['mob_phone'];
     $pskb = new pskb();
     $res = $pskb->checkOrCreateWallet($phone);
     $DB->update('verify_pskb', array('phone' => $phone, 'log' => $res), "id = ?", $logId);
     if (empty($res)) {
         $this->error = 'Ошибка соединения с Веб-кошельком.';
         return false;
     }
     $res = json_decode(iconv('cp1251', 'utf8', $res), 1);
     if (empty($res['state']) || !in_array($res['state'], array('EXIST', 'COMPLETE'))) {
         $this->error = 'Веб-кошелек не создан.';
         return false;
     }
     if (!$res['verified']) {
         $this->error = 'Для верификации у вас должен быть идентифицированный кошелек.';
         return false;
     }
     $aFields = array('fio', 'birthday', 'idcard_name', 'idcard', 'idcard_from', 'idcard_by', 'mob_phone');
     $this->data = array();
     foreach ($aFields as $sField) {
         $this->data[$sField] = $this->aUserReqvs[1][$sField];
     }
     if ($this->verify($uid)) {
         $DB->update('verify_pskb', array('result' => true), "id = ?", $logId);
         return true;
     }
     return false;
 }