mobile = $mobile; $this->data = $data; $this->area_code = $area_code; } /** * Execute the job. * * @return void */ public function handle() { Log::info("发送短信"); $err_msg = null; $batch_id = ""; if (empty($this->mobile)) throw new \Exception("发送短信失败,未获取到手机号信息"); if (config('app.env') == 'production') { if(isset($this->data['code'])) {//验证码 if ($this->area_code == 86) { // $err_msg = $this->send(); list($batch_id, $err_msg) = $this->sendMessage(); }else { list($batch_id, $err_msg) = $this->sendIntel(); } }else { list($batch_id, $err_msg) = $this->sendMessage(); } }else{ $this->data['code'] = '999999'; } $user_IP = (isset($_SERVER["HTTP_VIA"]) && $_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : ($_SERVER["REMOTE_ADDR"]??null); $user_IP = ($user_IP) ?: ($_SERVER["REMOTE_ADDR"]??null); Message::create([ 'mobile'=>$this->mobile, 'code'=>$this->data['code']??0, 'message'=>$this->data['message'], 'confirmed'=>0, 'ip'=> $user_IP, 'err_msg'=>$err_msg, "batch_id"=>$batch_id, ]); } public function sendMessage() { $batch_id = ""; try { $config = config('easysms'); $easySms = new EasySms($config); $res = $easySms->send($this->mobile, [ 'content' => ($this->data)['message'], ],['luosimao']); if (isset($res["luosimao"]["result"]["batch_id"])) { $batch_id = $res["luosimao"]["result"]["batch_id"]; } $err_msg = null; }catch (NoGatewayAvailableException $e) { $error_logs = $e->getExceptions(); $err_msg = $error_logs['luosimao']->getMessage(); } return [$batch_id, $err_msg]; } public function send() { try { $config = config('easysms'); $easySms = new EasySms($config); $easySms->send($this->mobile, [ 'content' => "验证码:".($this->data['code']).",用于手机绑定,如非本人操作,请忽略本短信!", 'template' => 'SMS_186360996', // 模板ID 'data' => [ "code" => ($this->data)['code'], ], ],['aliyun']); $err_msg = null; }catch (NoGatewayAvailableException $e) { $error_logs = $e->getExceptions(); $err_msg = $error_logs['aliyun']->getMessage(); } return $err_msg; } public function sendIntel() { try { $config = config('easysms'); $easySms = new EasySms($config); $phone_number = new PhoneNumber($this->mobile, $this->area_code); $easySms->send($phone_number, [ 'content' => "验证码:".($this->data['code']).",用于手机绑定,如非本人操作,请忽略本短信!", 'template' => 'SMS_463597984', // 模板ID 'data' => [ "code" => ($this->data)['code'], ], ],['aliyun']); $err_msg = null; } catch (NoGatewayAvailableException $e) { $error_logs = $e->getExceptions(); $err_msg = $error_logs['aliyun']->getMessage(); } $batch_id = ""; return [$batch_id, $err_msg]; } }