| <?php | 
|   | 
| class Domain_SmsCode { | 
|   | 
|     public function __construct(){ | 
|         $this->model = new Model_SmsCode(); | 
|     } | 
|   | 
|     public function add($smsInfo) { | 
|         return $this->model->add($smsInfo); | 
|     } | 
|   | 
|     /** | 
|      * 验证手机短信是否可以发送 | 
|      * @param  [type] $phone      [description] | 
|      * @param  [type] $scene [description] | 
|      * @return [type]             [description] | 
|      */ | 
|     public function check($phone, $scene = ""){ | 
|         if(!empty($scene)){ | 
|             $sms = $this->model->getPhoneLastSms(array('phone' => $phone, 'scene' => $scene))[0]; | 
|             if($sms){ | 
|                 return strtotime($sms['create_time']) + 60 < time()?true:false; | 
|             } | 
|             return true; | 
|         } | 
|         else{ | 
|             return false; | 
|         } | 
|     } | 
|   | 
|     /** | 
|      * 验证手机验证码 | 
|      * @param  [type] $phone [description] | 
|      * @param  [type] $code  [description] | 
|      * @param  [type] $scene [description] | 
|      * @return [type]        [description] | 
|      */ | 
|     public function checkSmsCode($phone, $code, $scene){ | 
|         if(!empty($phone) && !empty($code) && !empty($scene)){ | 
|             $sms = $this->model->getPhoneLastSms(array('phone' => $phone, 'scene' => $scene))[0]; | 
|             if($sms){ | 
|                 if($sms['status'] == 0 && strtotime($sms['expire_time']) >= time()){ | 
|                     if($sms['code'] == $code){ | 
|                         $this->model->update(array('status' => 1), array('_id' => $sms['_id'])); | 
|                         return 0; | 
|                     } | 
|                     else{ | 
|                         return 2; | 
|                     } | 
|                 } | 
|                 else{ | 
|                     return 1; | 
|                 } | 
|             } | 
|             else{ | 
|                 return 3; | 
|             } | 
|         } | 
|         else{ | 
|             return 3; | 
|         } | 
|     } | 
|   | 
| } |