Quellcode durchsuchen

7-5发送短信验证码api逻辑

Home vor 5 Jahren
Ursprung
Commit
9ec845d793
4 geänderte Dateien mit 62 neuen und 3 gelöschten Zeilen
  1. 19 1
      app/api/controller/Sms.php
  2. 1 1
      app/api/route/api.php
  3. 32 0
      app/api/validate/User.php
  4. 10 1
      app/common/business/Sms.php

+ 19 - 1
app/api/controller/Sms.php

@@ -10,12 +10,30 @@ declare(strict_types=1);
 
 namespace app\api\controller;
 
+use app\common\business\Sms AS SmsBus;
+use app\api\validate\User;
 use app\BaseController;
+use think\exception\ValidateException;
 
 class Sms extends BaseController
 {
     public function code(): object
     {
-        return show(config('status.success'), 0);
+        $phoneNumber = input('param.phone_number', '', 'trim');
+        halt($phoneNumber);
+        $data = [
+            'phoneNumber' => $phoneNumber
+        ];
+        try {
+            validate(User::class)->scene('send_code')->check($data);
+        } catch (ValidateException $e) {
+            return show(config('status.error'), $e->getError());
+        }
+
+        // 调用business层
+        if (SmsBus::sendCode($phoneNumber)) {
+            return show(config('status.success'), '发送验证码成功');
+        }
+        return show(config('status.success'), '发送验证码失败');
     }
 }

+ 1 - 1
app/api/route/api.php

@@ -8,4 +8,4 @@
 
 use think\facade\Route;
 
-Route::rule('smscode', 'sms/code', 'POST');
+Route::rule('smscode', 'Sms/code', 'POST');

+ 32 - 0
app/api/validate/User.php

@@ -0,0 +1,32 @@
+<?php
+/**
+ * Created by PhpStorm
+ * User:林志杰
+ * Email:[email protected]
+ * Motto:纵有疾风起,人生不言弃!
+ * Time:2020/1/11 23:40
+ */
+
+declare(strict_types=1);
+
+namespace app\api\validate;
+
+use think\Validate;
+
+class User extends Validate
+{
+    protected $rule = [
+        'username' => 'require',
+        'phoneNumber' => 'require',
+    ];
+
+    protected $message = [
+        'username' => '用户名必须',
+        'phoneNumber' => '电话号码必须',
+    ];
+    protected $scene = [
+        'send_code' => [
+            'phoneNumber'
+        ]
+    ];
+}

+ 10 - 1
app/common/business/Sms.php

@@ -10,10 +10,19 @@ declare(strict_types=1);
 namespace app\common\business;
 
 
+use AlibabaCloud\Client\Exception\ClientException;
+use app\common\lib\sms\AliSms;
+
 class Sms
 {
-    public static function sendCode(): bool
+    public static function sendCode(string $phoneNumber): bool
     {
+        // 生成短信验证码
+        $code = random_int(100000, 999999);
+        $sms = AliSms::sendCode($phoneNumber, $code);
+        if ($sms) {
+            // 将验证码记录到redis,并设置失效时间
+        }
         return true;
     }
 }