Przeglądaj źródła

add sms type for getcode

stanley-king 9 lat temu
rodzic
commit
ec55869add
2 zmienionych plików z 61 dodań i 2 usunięć
  1. 3 0
      core/framework/libraries/sms.php
  2. 58 2
      mobile/control/login.php

+ 3 - 0
core/framework/libraries/sms.php

@@ -11,6 +11,9 @@ defined('InShopNC') or exit('Access Invalid!');
 class Sms
 {
 	const register_code = 1;
+	const resetpass_code = 2;
+	const getbonus_code = 3;
+
     /*
      * 发送手机短信
      * @param unknown $mobile 手机号

+ 58 - 2
mobile/control/login.php

@@ -269,6 +269,46 @@ class loginControl extends mobileHomeControl
         }
     }
 
+    public function resetpassOp()
+    {
+        $mobile = trim($_POST['mobile']);
+        $password = trim($_POST['password']);
+        $code = trim($_POST['code']);
+
+        $validator = new Validate();
+        $validator->setValidate(Validate::verify_mobile($mobile));
+        $validator->setValidate(Validate::verify_password($password));
+        $validator->setValidate(Validate::smscode($code));
+        $err = $validator->validate();
+        if ($err != '') {
+            return joutput_error(errcode::ErrParamter, $err);
+        }
+
+        $model = Model('member');
+        $ret = $model->where(array('member_mobile' => $mobile))->find();
+        if(empty($ret) || count($ret) == 0) {
+            return joutput_error(errcode::ErrUserExisted, "用户不存在.");
+        }
+        else
+        {
+            $key = self::gen_mobile_code($mobile);
+            $ret = rcache($key, 'member');
+            if (!empty($ret) && $ret['code'] == $code)
+            {
+                $success = $model->where(array('member_mobile' => $mobile))->update(array('member_type' => 0,'member_passwd' => md5($password)));
+                if($success) {
+                    return joutput_data(NULL);
+                } else {
+                    return joutput_error(errcode::ErrDB,"DB error.");
+                }
+            }
+            else
+            {
+                return joutput_error(errcode::ErrSmscode,"错误的验证码.");
+            }
+        }
+    }
+
     public function getinfoOp()
     {
         static $field = 'member_id,member_mobile,member_name,member_truename,member_avatar,member_sex,member_birthday,member_email,member_email_bind';
@@ -335,7 +375,10 @@ class loginControl extends mobileHomeControl
 
     public function getcodeOp()
     {
+        static $types = array('register','resetpass','getbonus');
+
         $mobile = trim($_POST['mobile']);
+        $type = trim($_POST['type']);
 
         $validator = new Validate();
         $validator->setValidate(Validate::verify_mobile($mobile));
@@ -343,17 +386,30 @@ class loginControl extends mobileHomeControl
         if ($err != '') {
             return joutput_error(errcode::ErrParamter, $err);
         }
+        if(!in_array($type,$types)) {
+            return joutput_error(errcode::ErrParamter, "错误的类型参数: type={$type}");
+        }
+
+        if($type == 'register') {
+            $itype = Sms::register_code;
+        } elseif($type == 'resetpass') {
+            $itype = Sms::resetpass_code;
+        } elseif($type == 'getbonus') {
+            $itype = Sms::bonus_code;
+        }
+
+        $itype = Sms::register_code;
 
         $sms = new Sms();
         $code = makeSmscode();
-        $status = $sms->send($mobile, array('code' => $code, 'type' => Sms::register_code, 'time' => '5'));
+        $status = $sms->send($mobile, array('code' => $code, 'type' => $itype, 'time' => '5'));
 
         if ($status == 0) {
             $key = $this->gen_mobile_code($mobile);
             wcache($key, array('code' => $code, 'mobile' => $mobile), 'member', self::code_expire);
             joutput_data(NULL);
         } else {
-            return joutput_error(errcode::ErrSms, "send error=" . $status);
+            return joutput_error(errcode::ErrSms, "send error={$status}.");
         }
     }