$sceneMethod(); $data = [ 'content' => str_replace('#code#', $code, $templateId), 'template' => $templateId, 'data' => ['code' => $code], ]; //一分钟内不能多次发送 $created_at = Message::where('phone', $mobile)->orderBy('id', 'desc')->value('created_at'); if ($created_at) { $created_at = $created_at->toDateTimeString(); $result = time() - strtotime($created_at); if ($result < 60) { return ['code'=>1, 'msg'=>'操作频繁,等待一分钟后再试']; } } \DB::beginTransaction(); $m = Message::create([ 'phone'=>$mobile, 'code'=>$code, 'message'=>$data['content'], 'ip'=>request()->ip(), 'confirmed'=>0, ]); $arr = [ 'mobile'=>$mobile, 'data'=>$data, ]; $sms_config = config('sms'); $easySms = new EasySms($sms_config); try { $easySms->send($mobile, $data,['aliyun']); \DB::commit(); return true; }catch (\Exception $e) { $error_msg = $e->getExceptions()['aliyun']->getMessage(); throw new \Exception($error_msg); } } catch (\Exception $e) { $this->getError($e); return false; } } protected function getLoginSceneTemplateId() { $gateways = config('sms.gateways'); $supplier = config('sms.supplier', 'aliyun'); return $gateways[$supplier]['template']['login']?:''; } protected function getRegisterSceneTemplateId() { $gateways = config('sms.gateways'); $supplier = config('sms.supplier', 'aliyun'); return $gateways[$supplier]['template']['register']?:''; } protected function getPasswordResetSceneTemplateId() { $gateways = config('sms.gateways'); $supplier = config('sms.supplier', 'aliyun'); return $gateways[$supplier]['template']['password_reset']?:''; } protected function getMobileBindSceneTemplateId() { $gateways = config('sms.gateways'); $supplier = config('sms.supplier', 'aliyun'); return $gateways[$supplier]['template']['mobile_bind']?:''; } }