| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- <?php
- namespace app\common\model\user;
- use app\common\library\sms\Driver as SmsDriver;
- use app\common\model\BaseModel;
- use app\common\model\settings\Setting as SettingModel;
- /**
- * 短信模型
- */
- class Sms extends BaseModel
- {
- protected $pk = 'sms_id';
- protected $name = 'sms';
- /**
- * 短信发送
- */
- public function send($mobile, $sence = 'login')
- {
- if (empty($mobile)) {
- $this->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;
- }
- }
|