You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.0 KiB

5 years ago
  1. <?php
  2. namespace App\Controller\v3;
  3. use App\Controller\BaseController;
  4. use App\Request\v3\VerifyCodeRequest;
  5. use App\Service\v3\Interfaces\VerifyCodeServiceInterface;
  6. use Psr\Http\Message\ResponseInterface;
  7. use Hyperf\Di\Annotation\Inject;
  8. /**
  9. * 短信相关
  10. * Class SmsController
  11. * @package App\Controller\v3
  12. */
  13. class SmsController extends BaseController
  14. {
  15. /**
  16. * @Inject
  17. * @var VerifyCodeServiceInterface
  18. */
  19. protected $verifyCodeService;
  20. /**
  21. * 获取手机验证码,发送验证码短信
  22. * 1、获取手机号并验证
  23. * 2、发送短信
  24. * 3、存储验证码,保留用于校验,有失效时间
  25. * @param VerifyCodeRequest $request
  26. * @return ResponseInterface
  27. */
  28. public function getVerifyCode(VerifyCodeRequest $request)
  29. {
  30. // 获取参数
  31. $params = $request->validated();
  32. // 获取并发送验证码
  33. $this->verifyCodeService->do($params['user_id'], $params['tel']);
  34. return $this->success([]);
  35. }
  36. }