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 '註冊失敗';
        }

    }
發佈了43 篇原創文章 · 獲贊 9 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章