error = '请联系管理员配置参数'; return FALSE; } $this->config = $config; } /** * @notes 设置手机号 * @param $mobile */ public function setMobile($mobile) { $this->mobile = $mobile; return $this; } /** * @notes 设置模板id * @param $templateId */ public function setTemplateId($templateId) { $this->templateId = $templateId; return $this; } /** * @notes 设置模板参数 * @param $templateParams */ public function setTemplateParams($templateParams) { $this->templateParams = $templateParams; return $this; } /** * @notes 短信内容 * @param $sceneContent */ public function setSceneContent($sceneContent) { $this->sceneContent = $sceneContent; return $this; } /** * @notes 国家区号 * @param $countryCode */ public function setCountryCode($countryCode) { $this->countryCode = $countryCode; return $this; } /** * @notes 获取错误信息 */ public function getError() { return $this->error; } /** * @notes 发送短信 */ public function send() { try { $cred = new Credential($this->config['secret_id'], $this->config['secret_key']); $httpProfile = new HttpProfile(); // $httpProfile->setReqMethod("GET"); $httpProfile->setEndpoint("sms.tencentcloudapi.com"); $clientProfile = new ClientProfile(); $clientProfile->setSignMethod("TC3-HMAC-SHA256"); // 指定签名算法 $clientProfile->setHttpProfile($httpProfile); $client = new SmsClient($cred, 'ap-guangzhou', $clientProfile); $req = new SendSmsRequest(); $req->PhoneNumberSet = [$this->countryCode . $this->mobile]; $req->SignName = $this->config['SignName']; $req->TemplateId = $this->templateId; $req->TemplateParamSet = $this->templateParams; $req->SmsSdkAppId = $this->config['SmsSdkAppid']; $req->SessionContext = ""; $req->ExtendCode = ""; $req->SenderId = ""; $resp = json_decode($client->SendSms($req)->toJsonString(), TRUE); if (isset($resp['SendStatusSet']) && $resp['SendStatusSet'][0]['Code'] == 'Ok') { return $resp; } else { $message = $res['SendStatusSet'][0]['Message'] ?? json_encode($resp); throw new \Exception('腾讯云短信错误:' . $message); } } catch (\Exception $e) { $this->error = $e->getMessage(); return FALSE; } } }