Example #1
0
 /**
  * Проверка аккаунта
  * @param string $account - номер кошелька, email, и т.д.
  * @return boolean
  */
 public function account_check($account)
 {
     try {
         $obj = new stdClass();
         $client = new SoapClient($this->url);
         $obj->WalletID = $this->purse;
         $obj->SecurityToken = $this->token;
         $obj->Account = $account;
         $webService = $client->Account_Check($obj);
         $wsResult = $webService->Account_CheckResult;
         if ($wsResult == 0) {
             return false;
         } else {
             return true;
         }
     } catch (Exception $e) {
         Yii::log('Ошибка при проверке аккаунта: ' . $e->getMessage());
         return false;
     }
 }
Example #2
0
 /**
  * Верификация через OKPAY. 
  * 
  * @param  integer $uid  uid пользователя
  * @return boolean       результат операции
  */
 public function okpay($uid)
 {
     global $DB;
     if (empty($uid)) {
         $this->error = 'Вы не авторизованы.';
         return false;
     }
     $logId = $DB->insert('verify_okpay', array('user_id' => $uid), 'id');
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sbr_meta.php';
     $this->aUserReqvs = sbr_meta::getUserReqvs($uid);
     if (empty($this->aUserReqvs[1]['mob_phone']) || $this->aUserReqvs['is_activate_mob'] == 'f') {
         $this->error = 'Для верификации у вас должен быть активирован номер телефона в <a href="/users/' . $_SESSION['login'] . '/setup/main/">основных настройках</a> аккаунта.';
         return false;
     }
     $is_verify = false;
     $phone = str_replace("+", "", $this->aUserReqvs[1]['mob_phone']);
     $sql = "SELECT COUNT(user_id) FROM sbr_reqv WHERE _1_mob_phone=?";
     $foundPhones = $DB->val($sql, "+" . $phone);
     if ($foundPhones > 1) {
         $this->error = 'Данный номер телефона уже был использован при верификации кем-то из пользователей.';
         return false;
     }
     $datePart = gmdate("Ymd");
     $timePart = gmdate("H");
     $authString = self::OKPAY_CLIENT_SECRET . ":" . $datePart . ":" . $timePart;
     $secToken = hash('SHA256', $authString);
     $secToken = strtoupper($secToken);
     try {
         $client = new SoapClient(self::OKPAY_URI_API);
     } catch (Exception $e) {
         header('Location: /promo/verification/?service=okpay&error=1');
         exit;
     }
     $obj = new stdClass();
     $obj->WalletID = self::OKPAY_WALLETID;
     $obj->SecurityToken = $secToken;
     $obj->Account = $phone;
     $webService = $client->Account_Check($obj);
     $res = $webService->Account_CheckResult;
     $DB->update('verify_okpay', array('phone' => $phone, 'log' => $res), "id = ?", $logId);
     if ($res) {
         $is_verify = true;
     } else {
         $this->error = 'Для верификации у вас должен быть верифицированный кошелек.';
         return false;
     }
     if ($is_verify) {
         $DB->update('verify_okpay', array('result' => true), "id = ?", $logId);
         $DB->query("UPDATE users SET is_verify = TRUE WHERE uid = ?", $uid);
         return true;
     }
     return false;
 }