Laravel 前台注册 阿里大于

来源:互联网 发布:mac的鼠标不能按右键 编辑:程序博客网 时间:2024/05/17 19:19

使用手机注册码注册会员,阿里大于接口的使用如下:

public function sendSms(Request $request){        $phone = $request ->input('account'); // 用户手机号,接收验证码        $user=Login::where('account','=',$phone)->first();        //注意,查询一条数据就是用first();        if($user){            return '1';//前台判断,如果是1就显示已有账号,不可注册        }        $name = '兄弟连';  // 短信签名,可以在阿里大鱼的管理中心看到        $num = rand(100000, 999999); // 生成随机验证码        session()->put('num',$num);        $smsParams = [            'number' => "$num"        ];        $content = json_encode($smsParams); // 转换成json格式的        $code = "SMS_75835101";   // 阿里大于(鱼)短信模板ID        //$request ->session()->put('alidayu',$num);  // 存入session 后面做数据验证        $result=$this->sms->send($phone,$name,$content,$code);        if(property_exists($request,'result')){           // 使用PHP函数json_encode方法将给定数组转化为JSON:            return '2';//前台判断,如果是2就显示发送成功        }else{            return '3';//前台判断,如果是2就显示发送失败        }    }

所要注意的是当查询一条数据时,就需要用first();而不是用get();
我这里是插入两张表,其中一张是登陆表,一张是用户表,所以要用到事物来操作。

public function createUser(Request $request)    {        $account=$request->input('account');        $password=$request->input('password');        $repassword=$request->input('repassword');        $code=$request->input('code');        if(!$password==$repassword){            return back()->with('两次密码输入不一致');        }        $user=Login::where('account','=',$account)->first();        if($user){            return back()->with('此账号已存在!');        }        if(session()->get('num')!=$code){            return back()->with('验证码错误!');        }                try {            // 开始事物            \DB::beginTransaction();            // 向用户注册原始表 添加一条数据            $res1 = User::insertGetId(['account'=>$account,'password'=>Md5($password),'tel'=>$account,'buy_time'=>null,'dead_line'=>null,'login_time'=>null,'last_time'=>null]);            $res2 = Login::insertGetId(['account'=>$account,'password'=>Md5($password)]);            //$res2 = \DB::table('login')->insertGetId(['account'=>$account,'password'=>$password]);            if($res1 && $res2){                // 全部正确 事物提交                \DB::commit();            }            // 存入用户登录信息            session()->put('adminn',$account);            // 存入用户基本信息            return redirect("a/home");        } catch (Exception $e) {            // 事物回滚            \DB::rollBack();            return '注册失败';        }    }