/** * 手机号注册 */ public function actionMobReg() { $response = Yii::$app->response; $response->format = \yii\web\Response::FORMAT_JSON; $request = Yii::$app->request; $this_path = $this->modules_name . "/" . lcfirst($this->class_name) . "/" . lcfirst(str_replace('action', "", __FUNCTION__)); $this_allow_version = "1.1"; //获取参数 $param_deviceid = $request->post("deviceid"); //设备id $param_clienttime = (int) $request->post("clienttime"); //客户端时间 $param_channel = $request->post("channel"); //渠道 $param_os = (int) $request->post("os"); //设备终端 $param_mobile = $request->post("mobile"); //设备终端 $param_pwd = $request->post("pwd"); //设备终端 $param_gender = (int) $request->post("gender"); //设备终端 $param_nikename = $request->post("nikename"); //设备终端 $param_avatar = isset($_FILES['avatar']['error']); //头像上传,如果值是 true 再看 error 是不是0,如果是0就表示有对应的头像上传 //获取token $headers = $request->headers; $header_openid = $headers->get('Openid') ? $headers->get('Openid') : $request->post("openid"); //加密之后的设备号,做到兼容post的方式 //验证参数是不是有空的 $check_null = Validators::validateAllNull([$param_nikename, $param_deviceid, $param_clienttime, $header_openid, $param_channel, $param_os, $param_mobile, $param_pwd, $param_gender]); if ($check_null === FALSE) { //错误信息,参数不全 return $response->data = Error::errorJson($this_path, 1001); } //验证加密 $decode_hear_openid = RsaDecode::rsa_decode($header_openid); if ($decode_hear_openid !== $param_deviceid) { return $response->data = Error::errorJson($this_path, 9001); } //验证通过,证明了合法性 //验证性别 if (!in_array($param_gender, [1, 2])) { //性别输入不符 return $response->data = Error::errorJson($this_path, 9001); } //验证手机号是不是进行过注册的操作 $user_id = UserEmblem::checkExist($param_mobile, 2); if ($user_id == 0) { //新的手机号,进行注册操作,【 用户账户,用户标识,用户头像,用户基础信息 】 // 获取新的uid,写入 用户基础表,写入 用户标识表 ,写入 用户头像表 $uid = NumberOrder::getNewid(1); $user_id = UserAccount::add($uid, $param_channel, $param_os); //用户相关的标识 UserEmblem::add($user_id, $param_mobile, 2); //密码 UserPassword::add($user_id, RsaDecode::rsa_decode($param_pwd)); //获取用户的头像 if ($param_avatar == true && $_FILES['avatar']['error'] == 0) { //获取对应的 $avatar_url = WebImgToLocal::simpleUploadV2($_FILES['avatar']); } else { $avatar_url = Yii::$app->params['default_avatar']; } UserAvatar::add($user_id, $avatar_url); //用户的基本信息 UserProfile::add($user_id, $param_nikename, $param_gender); //新增用户的统计 CensusApp::addUser(); } else { //返回错误,手机号已经被注册 4001 return $response->data = Error::errorJson($this_path, 4001); } //写入token TokenUser::joinToken($uid, $param_deviceid, $param_clienttime, time(), time()); //返回对应的token $token = RsaDecode::tokenMake($uid); //返回对应的结果 $return_json = ['request' => $this_path, 'info' => ['token' => $token, 'user_info' => App::getUserProfile($user_id)], 'version' => $this_allow_version, 'error_code' => 0, 'error' => ""]; //接口访问记录 CensusApi::add($user_id, $this_path); return $response->data = $return_json; }