error = '手机号码或会员号不能为空'; return false; } $smsConfig = SettingModel::getItem('sms', self::$app_id); $template_code = $smsConfig['engine'][$smsConfig['default']]; $send_template = ''; if ($sence == 'login') { $send_template = $template_code['template_code']; if (empty($send_template)) { $this->error = '短信登录未开启'; return false; } $where = [[ 'mobile|user_no','=',$mobile]]; $user = (new User)->where($where)->find(); if (empty($user)) { $this->error = '手机号码或会员号错误'; return false; } $mobile = $user['mobile']; } else if ($sence == 'register') { $send_template = $template_code['template_code']; if (empty($send_template)) { $this->error = '短信登录未开启'; return false; } //判断是否已经注册 // $user = (new User)->where('mobile', '=', $mobile)->find(); // if ($user) { // $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; } /** * 短信发送 */ 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; } }