Sfoglia il codice sorgente

小程序登录增加短信验证码登录

kevin 1 anno fa
parent
commit
07a8fd913a
1 ha cambiato i file con 48 aggiunte e 0 eliminazioni
  1. 48 0
      app/common/model/user/Sms.php

+ 48 - 0
app/common/model/user/Sms.php

@@ -69,4 +69,52 @@ class Sms extends BaseModel
         }
         return $flag;
     }
+
+    /**
+     * 短信发送
+     */
+    public function sendCodeWx($mobile)
+    {
+        if (empty($mobile)) {
+            $this->error = '手机号码或会员号不能为空';
+            return false;
+        }
+
+        $smsConfig = SettingModel::getItem('sms', self::$app_id);
+        $template_code = $smsConfig['engine'][$smsConfig['default']];
+
+        // 判断会员号如果是手机号,则查询是否有有此会员号
+        $pattern = '/^1\d{10}$/';
+        if (!preg_match($pattern, $mobile)) {
+            $where = [['user_no', '=', $mobile]];
+            $user  = (new User)->where($where)->find();
+            if (empty($user)) {
+                $this->error = '手机号码或会员号错误';
+                return false;
+            }
+            $mobile = $user['mobile'];
+        }
+
+        $send_template = $template_code['template_code'];
+        if (empty($send_template)) {
+            $this->error = '短信登录未开启';
+            return false;
+        }
+
+        $code = str_pad(mt_rand(100000, 999999), 6, "0", STR_PAD_BOTH);
+        $SmsDriver = new SmsDriver($smsConfig);
+        $send_data = [
+            'code' => $code
+        ];
+        //短信模板
+        $flag = $SmsDriver->sendSms($mobile, $send_template, $send_data);
+        if ($flag) {
+            $this->save([
+                'mobile' => $mobile,
+                'code' => $code,
+                'app_id' => self::$app_id
+            ]);
+        }
+        return $flag;
+    }
 }