/** * Проверка аккаунта * @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; } }
/** * Верификация через 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; }