Laravel 前台注册 阿里大于

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

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 '注册失败';
        }

    }

猜你喜欢

转载自blog.csdn.net/wuyoulv/article/details/75331818