Findpassword.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2015-2025 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. * @author : niuteam
  10. */
  11. namespace app\api\controller;
  12. use app\model\member\Member as MemberModel;
  13. use app\model\member\Register as RegisterModel;
  14. use app\model\message\Message;
  15. use think\facade\Cache;
  16. class Findpassword extends BaseApi
  17. {
  18. /**
  19. * 手机号找回密码
  20. */
  21. public function mobile()
  22. {
  23. $register = new RegisterModel();
  24. $exist = $register->mobileExist($this->params[ 'mobile' ], $this->site_id);
  25. if (!$exist) {
  26. return $this->response($this->error("", "手机号不存在"));
  27. } else {
  28. $key = $this->params[ 'key' ];
  29. $verify_data = Cache::get($key);
  30. if ($verify_data[ "mobile" ] == $this->params[ "mobile" ] && $verify_data[ "code" ] == $this->params[ "code" ]) {
  31. $member_model = new MemberModel();
  32. $res = $member_model->resetMemberPassword($this->params[ "password" ], [ [ "mobile", "=", $this->params[ 'mobile' ] ] ]);
  33. } else {
  34. $res = $this->error("", "手机动态码不正确");
  35. }
  36. return $this->response($res);
  37. }
  38. }
  39. /**
  40. * 短信验证码
  41. */
  42. public function mobileCode()
  43. {
  44. // 校验验证码
  45. $captcha = new Captcha();
  46. $check_res = $captcha->checkCaptcha();
  47. if ($check_res[ 'code' ] < 0) return $this->response($check_res);
  48. $mobile = $this->params[ 'mobile' ];//注册手机号
  49. $register = new RegisterModel();
  50. $exist = $register->mobileExist($mobile, $this->site_id);
  51. if (!$exist) {
  52. return $this->response($this->error("", "手机号不存在"));
  53. } else {
  54. $code = str_pad(random_int(1, 9999), 4, 0, STR_PAD_LEFT);// 生成4位随机数,左侧补0
  55. $message_model = new Message();
  56. $res = $message_model->sendMessage([ 'type' => 'code', "mobile" => $mobile, "site_id" => $this->site_id, "code" => $code, "support_type" => [ "sms" ], "keywords" => "FIND_PASSWORD" ]);
  57. if ($res[ "code" ] >= 0) {
  58. //将验证码存入缓存
  59. $key = 'find_mobile_code_' . md5(uniqid(null, true));
  60. Cache::tag("find_mobile_code")->set($key, [ 'mobile' => $mobile, 'code' => $code ], 600);
  61. return $this->response($this->success([ "key" => $key ]));
  62. } else {
  63. return $this->response($res);
  64. }
  65. }
  66. }
  67. }