API_USER::api_reg PHP Метод

api_reg() публичный Метод

api_reg function.
public api_reg ( ) : void
Результат void
    function api_reg()
    {
        $this->app_check("post");
        if (defined("BG_REG_ACC") && BG_REG_ACC != "enable") {
            $_arr_return = array("alert" => "x050316");
            $this->obj_api->halt_re($_arr_return);
        }
        if (!isset($this->appAllow["user"]["reg"])) {
            //无权限并记录日志
            $_arr_return = array("alert" => "x050305");
            $_arr_logType = array("user", "reg");
            $_arr_logTarget[] = array("app_id" => $this->appRequest["app_id"]);
            $this->log_do($_arr_logTarget, "app", $_arr_return, $_arr_logType);
            $this->obj_api->halt_re($_arr_return);
        }
        $_arr_userSubmit = $this->mdl_user->input_reg_api();
        //获取数据
        if ($_arr_userSubmit["alert"] != "ok") {
            $this->obj_api->halt_re($_arr_userSubmit);
        }
        $_arr_sign = array("act_post" => $GLOBALS["act_post"], "user_name" => $_arr_userSubmit["user_name"], "user_mail" => $_arr_userSubmit["user_mail"], "user_pass" => $_arr_userSubmit["user_pass"], "user_nick" => $_arr_userSubmit["user_nick"], "user_contact" => $_arr_userSubmit["user_contactStr"], "user_extend" => $_arr_userSubmit["user_extendStr"]);
        if (!$this->obj_sign->sign_check(array_merge($this->appRequest, $_arr_sign), $this->appRequest["signature"])) {
            $_arr_return = array("alert" => "x050403");
            $this->obj_api->halt_re($_arr_return);
        }
        $_str_rand = fn_rand(6);
        $_str_userPass = fn_baigoEncrypt($_arr_userSubmit["user_pass"], $_str_rand, true);
        //生成密码
        if (BG_REG_CONFIRM == "on") {
            //开启验证则为等待
            $_str_status = "wait";
        } else {
            $_str_status = "enable";
        }
        $_arr_userRow = $this->mdl_user->mdl_submit($_str_userPass, $_str_rand, $_str_status);
        if (BG_REG_CONFIRM == "on") {
            //开启验证发送邮件
            $_arr_returnRow = $this->mdl_verify->mdl_submit($_arr_userRow["user_id"], $_arr_userSubmit["user_mail"]);
            if ($_arr_returnRow["alert"] != "y120101" && $_arr_returnRow["alert"] != "y120103") {
                //生成验证失败
                $_arr_return = array("alert" => "x010410");
                $this->obj_api->halt_re($_arr_return);
            }
            $_str_verifyUrl = BG_SITE_URL . BG_URL_ROOT . "user/ctl.php?mod=reg&act_get=confirm&verify_id=" . $_arr_returnRow["verify_id"] . "&verify_token=" . $_arr_returnRow["verify_token"];
            $_str_url = "<a href=\"" . $_str_verifyUrl . "\">" . $_str_verifyUrl . "</a>";
            $_str_html = str_ireplace("{verify_url}", $_str_url, $this->obj_api->mail["reg"]["content"]);
            $_str_html = str_ireplace("{user_name}", $_arr_userSubmit["user_name"], $_str_html);
            $_str_html = str_ireplace("{user_mail}", $_arr_userSubmit["user_mail"], $_str_html);
            if (fn_mailSend($_arr_userSubmit["user_mail"], $this->obj_api->mail["reg"]["subject"], $_str_html)) {
                //发送邮件
                $_str_alert = "y010410";
            } else {
                $_str_alert = "x010410";
            }
            $_arr_userRow["alert"] = $_str_alert;
            $_arr_userRow["verify_id"] = $_arr_returnRow["verify_id"];
            $_arr_userRow["verify_token"] = $_arr_returnRow["verify_token"];
        }
        //unset($_arr_userRow["alert"]);
        $_str_src = fn_jsonEncode($_arr_userRow, "encode");
        $_str_code = $this->obj_crypt->encrypt($_str_src, $this->appRow["app_key"]);
        $this->mdl_belong->mdl_submit($_arr_userRow["user_id"], $this->appRequest["app_id"]);
        //用户授权
        $_arr_return = array("code" => $_str_code);
        $_tm_time = time();
        //通知
        foreach ($this->appRows as $_key => $_value) {
            $_arr_data = array("act_post" => "reg", "code" => $this->obj_crypt->encrypt($_str_src, $_value["app_key"]), "time" => $_tm_time, "app_id" => $_value["app_id"], "app_key" => $_value["app_key"]);
            $_arr_data["signature"] = $this->obj_sign->sign_make($_arr_data);
            if (stristr($_value["app_url_notify"], "?")) {
                $_str_conn = "&";
            } else {
                $_str_conn = "?";
            }
            if (stristr($_value["app_url_notify"], "?")) {
                $_str_conn = "&";
            } else {
                $_str_conn = "?";
            }
            fn_http($_value["app_url_notify"] . $_str_conn . "mod=notify", $_arr_data, "post");
        }
        $_arr_return["alert"] = $_arr_userRow["alert"];
        $this->obj_api->halt_re($_arr_return);
    }

Usage Example

Пример #1
0
以下为系统文件,请勿修改
-----------------------------------------------------------------*/
//不能非法包含或直接执行
if (!defined("IN_BAIGO")) {
    exit("Access Denied");
}
include_once BG_PATH_FUNC . "init.func.php";
//管理员通用
fn_init(true, false, "Content-type: application/json", true, "ajax");
include_once BG_PATH_CONTROL . "api/user.class.php";
//载入商家控制器
$api_user = new API_USER();
//初始化商家
switch ($GLOBALS["act_post"]) {
    case "reg":
        $api_user->api_reg();
        break;
    case "login":
        $api_user->api_login();
        break;
    case "edit":
        $api_user->api_edit();
        break;
    case "mailbox":
        $api_user->api_mailbox();
        break;
    case "nomail":
        $api_user->api_nomail();
        break;
    case "forgot":
        $api_user->api_forgot();