utype = 0; $this->sender_id = 0; $this->batch_id = 0; $this->callback = []; } /** * 发送基本短信 * @param string $mobile * @param string $template_alias * @param array $params */ public function sendSms(string $mobile, string $template_alias, array $params = [], $isAuthSms = false, $isVariable = true, $content = '') { $smsJob=new SmsJob($mobile, $template_alias, $params, $isAuthSms, $isVariable, $content); $smsJob->setSender($this->utype, $this->sender_id); $smsJob->setCallback($this->callback); dispatch($smsJob); } /** * 发送基本短信 * @param string $mobile * @param string $template_alias * @param array $params */ public function sendSmsStatic(string $mobile, string $template_alias, array $params = []) { $smsJob=new SmsJob($mobile, $template_alias, $params, false); $smsJob->setSender($this->utype, $this->sender_id); $smsJob->setCallback($this->callback); dispatch($smsJob); } /** * 发送确认短信,需要缓存验证码code * @param string $mobile * @param string $template_alias * @throws ResponseException */ public function sendAuthSms(string $mobile, string $template_alias) { $is_send=Cache::has($template_alias.'_'.$mobile.'_send'); if ($is_send) { throw new ResponseException("请稍后再发送短信"); } $smsJob=new SmsJob($mobile, $template_alias, [], true); dispatch($smsJob); Cache::put($template_alias.'_'.$mobile.'_send', 1, 1); } /** * 检查验证短信的验证码是否准确 * @param string $mobile * @param string $template_alias * @param string $code * @return bool */ public function checkAuthSms(string $mobile, string $template_alias, string $code): bool { $cacheCode=Cache::get($template_alias.'_'.$mobile); if ($code!=$cacheCode) { return false; } Cache::forget($template_alias.'_'.$mobile); return true; } /** * 设置回调函数 * @param string $obj 需实例对象的完整命名空间 * @param string $method 调用obj对应的方法 * @param array $args 方法里的参数(按回调方法里的参数顺序) * @return SmsService */ public function setCallback(string $obj, string $method, array $args) { $this->callback[]=[$obj, $method]; $this->callback[]=$args; return $this; } /** * 设置发送者 * @param $utype 0系统,1企业,2用户 * @param $id: 对应 utype id * @return SmsService */ public function setSender($utype, $id) { $this->utype=$utype; $this->sender_id=$id; return $this; } }