123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- <?php
- declare(strict_types=1);
- namespace app\logics;
- use app\model\Sms;
- /**
- * 用户登陆权限验证
- */
- class SmsLogic
- {
- /**
- * 验证码生成
- */
- private function getCode($length){
- $s = '9876543210';
- $code = '';
- for($i=0;$i<$length;$i++){
- $r = rand(0,9);
- $code .=$s[$r];
- }
- return $code;
- }
- /**
- * 发送验证码
- */
- public function sendSms($phone, $purpose, $content)
- {
- $code = $this->getCode(6);
- $data = [
- 'phone'=>$phone,
- 'code'=>$code,
- 'effective_time'=>time()+60*15,
- 'purpose'=>$purpose,
- ];
- $content = str_replace(['%code%', '%CODE%'], $code, $content);
- $rs = sendSms($phone, $content);
- if ($rs === false) return false;
- // 验证码保存
- Sms::create($data);
- return true;
- }
- /**
- * 验证码验证
- */
- public function checkCode($phone, $purpose, $code)
- {
- $data = Sms::where(['phone'=>$phone, 'purpose'=>$purpose])->order('id desc')->find();
- if($data['code'] != $code || $data['state'] == 1) return false;
- $data->state = 1;
- $data->save();
- return true;
- }
- }
|