CodeController.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. /**
  3. * 验证码模块
  4. * @author wesmiler
  5. */
  6. namespace app\weixin\controller;
  7. use app\weixin\model\Sms;
  8. use app\weixin\validate\MemberValidate;
  9. use cmf\controller\HomeBaseController;
  10. class CodeController extends HomeBaseController
  11. {
  12. public function send(){
  13. $mobile = input('mobile','');
  14. $type = input('type',0);
  15. $validate = new MemberValidate();
  16. if(!$validate->scene('code')->check(['mobile'=> $mobile])){
  17. showJson('error', $validate->getError());
  18. }
  19. $smsConfig = config('sms.');
  20. $types = isset($smsConfig['template'])? $smsConfig['template'] : [];
  21. $types = $types? array_keys($types) : [0,1];
  22. if(!in_array($type, $types)){
  23. showJson('error', '类型错误');
  24. }
  25. switch($type){
  26. case 1:
  27. $checkId = db('user')->where(['user_login'=> $mobile])->value('id');
  28. if($checkId){
  29. showJson('error', '手机号已被使用');
  30. }
  31. break;
  32. case 2:
  33. $checkId = db('user')->where(['user_login'=> $mobile])->value('id');
  34. if(empty($checkId)){
  35. showJson('error', '手机号未注册');
  36. }
  37. }
  38. $code = mt_rand(1001, 9999);
  39. $smsOpen = isset($smsConfig['open'])? $smsConfig['open'] : false;
  40. if($smsOpen){
  41. $res = Sms::send($mobile, $code, $type);
  42. if($res){
  43. showJson('success', '短信验证码发送成功');
  44. }else{
  45. showJson('error', '短信验证码发送失败');
  46. }
  47. }else{
  48. Sms::saveCode($mobile, $code, $type);
  49. showJson('success', '短信验证码发送成功:'.$code);
  50. }
  51. }
  52. }
  53. ?>