| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- <?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';
- /**
- * 短信发送
- * $sence 场景,login:登录 apply:供应商申请
- */
- 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['login_template'];
- if(empty($template_code)){
- $this->error = '短信登录未开启';
- return false;
- }
- }else if($sence == 'apply'){
- $send_template = $template_code['apply_template'];
- }else if($sence == 'register'){
- $send_template = $template_code['login_template'];
- if(empty($template_code)){
- $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,
- 'sence' => $sence,
- 'app_id' => self::$app_id
- ]);
- }
- return $flag;
- }
- /**
- * 短信发送
- */
- public function sendTemplate($mobile,$template_code){
- if(empty($mobile)){
- $this->error = '手机号码不能为空';
- return false;
- }
- $smsConfig = SettingModel::getItem('sms', self::$app_id);
- $template_code = $smsConfig['engine'][$smsConfig['default']][$template_code];
- if(empty($template_code)){
- $this->error = '短信登录未开启';
- return false;
- }
- $SmsDriver = new SmsDriver($smsConfig);
- $send_data = [
- 'code' => '112'
- ];
- //短信模板
- $flag = $SmsDriver->sendSms($mobile, $template_code,$send_data);
- return $flag;
- }
- }
|