public function sendSMS(Request $request)
 {
     $m3_result = new M3Result();
     $phone = $request->input('phone', '');
     if ($phone == '') {
         $m3_result->status = 1;
         $m3_result->message = '手机号不能为空';
         return $m3_result->toJson();
     }
     if (strlen($phone) != 11 || $phone[0] != '1') {
         $m3_result->status = 2;
         $m3_result->message = '手机格式不正确';
         return $m3_result->toJson();
     }
     $sendTemplateSMS = new SendTemplateSMS();
     $code = '';
     $charset = '1234567890';
     $_len = strlen($charset) - 1;
     for ($i = 0; $i < 6; ++$i) {
         $code .= $charset[mt_rand(0, $_len)];
     }
     $m3_result = $sendTemplateSMS->sendTemplateSMS($phone, array($code, 60), 1);
     if ($m3_result->status == 0) {
         $tempPhone = TempPhone::where('phone', $phone)->first();
         if ($tempPhone == null) {
             $tempPhone = new TempPhone();
         }
         $tempPhone->phone = $phone;
         $tempPhone->code = $code;
         $tempPhone->deadline = date('Y-m-d H-i-s', time() + 60 * 60);
         $tempPhone->save();
     }
     return $m3_result->toJson();
 }
 public function register(Request $request)
 {
     $email = $request->input('email', '');
     $phone = $request->input('phone', '');
     $password = $request->input('password', '');
     $confirm = $request->input('confirm', '');
     $phone_code = $request->input('phone_code', '');
     $validate_code = $request->input('validate_code', '');
     $m3_result = new M3Result();
     if ($email == '' && $phone == '') {
         $m3_result->status = 1;
         $m3_result->message = '手机号或邮箱不能为空';
         return $m3_result->toJson();
     }
     if ($password == '' || strlen($password) < 6) {
         $m3_result->status = 2;
         $m3_result->message = '密码不少于6位';
         return $m3_result->toJson();
     }
     if ($confirm == '' || strlen($confirm) < 6) {
         $m3_result->status = 3;
         $m3_result->message = '确认密码不少于6位';
         return $m3_result->toJson();
     }
     if ($password != $confirm) {
         $m3_result->status = 4;
         $m3_result->message = '两次密码不相同';
         return $m3_result->toJson();
     }
     // 手机号注册
     if ($phone != '') {
         if ($phone_code == '' || strlen($phone_code) != 6) {
             $m3_result->status = 5;
             $m3_result->message = '手机验证码为6位';
             return $m3_result->toJson();
         }
         $tempPhone = TempPhone::where('phone', $phone)->first();
         if ($tempPhone->code == $phone_code) {
             if (time() > strtotime($tempPhone->deadline)) {
                 $m3_result->status = 7;
                 $m3_result->message = '手机验证码不正确';
                 return $m3_result->toJson();
             }
             $member = new Member();
             $member->phone = $phone;
             $member->password = md5('bk' . $password);
             $member->save();
             $m3_result->status = 0;
             $m3_result->message = '注册成功';
             return $m3_result->toJson();
         } else {
             $m3_result->status = 7;
             $m3_result->message = '手机验证码不正确';
             return $m3_result->toJson();
         }
         // 邮箱注册
     } else {
         if ($validate_code == '' || strlen($validate_code) != 4) {
             $m3_result->status = 6;
             $m3_result->message = '验证码为4位';
             return $m3_result->toJson();
         }
         $validate_code_session = $request->session()->get('validate_code', '');
         if ($validate_code_session != $validate_code) {
             $m3_result->status = 8;
             $m3_result->message = '验证码不正确';
             return $m3_result->toJson();
         }
         $member = new Member();
         $member->email = $email;
         $member->password = md5('bk' . $password);
         $member->save();
         $uuid = UUID::create();
         $m3_email = new M3Email();
         $m3_email->to = $email;
         $m3_email->cc = '*****@*****.**';
         $m3_email->subject = '凯恩书店验证';
         $m3_email->content = '请于24小时点击该链接完成验证. http://book.magina.com/service/validate_email' . '?member_id=' . $member->id . '&code=' . $uuid;
         $tempEmail = new TempEmail();
         $tempEmail->member_id = $member->id;
         $tempEmail->code = $uuid;
         $tempEmail->deadline = date('Y-m-d H-i-s', time() + 24 * 60 * 60);
         $tempEmail->save();
         Mail::send('email_register', ['m3_email' => $m3_email], function ($m) use($m3_email) {
             // $m->from('*****@*****.**', 'Your Application');
             $m->to($m3_email->to, '尊敬的用户')->cc($m3_email->cc)->subject($m3_email->subject);
         });
         $m3_result->status = 0;
         $m3_result->message = '注册成功';
         return $m3_result->toJson();
     }
 }