thinkphp6对接阿里云短信服务完成定时发送短信功能
生活随笔
收集整理的這篇文章主要介紹了
thinkphp6对接阿里云短信服务完成定时发送短信功能
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1、導入阿里短信包
通過composer下載依賴包
composer require alibabacloud/dysmsapi-20170525 2.0.22具體可參見阿里云短信服務 >> 快速學習
阿里云 OpenAPI 開發(fā)者門戶
2、編寫發(fā)送短信程序
class Index {private $log;public function index(){//需要發(fā)送的用戶數(shù)組$users=[['mobile' => '手機號碼','name' => '姓名']];foreach ($users as $user){//手機$mobile = $user['mobile'];//姓名$name = $user['name'];//短信參數(shù)$params = ['name' => $name,//姓名];//發(fā)送短信$this->sendSms($mobile,'阿里云短信模板編號',$params);}}//發(fā)送短信private function sendSms($mobile,$smsCode,$params=''){//手機號碼$phone = trim($mobile);$data = ['templateCode' => $smsCode,//短信模板編號'phone' => $phone,//手機號碼//短信參數(shù)'params' => $params];//調用阿里云短信發(fā)送方法$result = Alicode\AliSms::main($data);} }extend目錄創(chuàng)建Alicode/AliSms類
namespace Alicode; use AlibabaCloud\SDK\Dysmsapi\V20170525\Dysmsapi;use Darabonba\OpenApi\Models\Config; use AlibabaCloud\SDK\Dysmsapi\V20170525\Models\SendSmsRequest;class AliSms {/*** 使用AK&SK初始化賬號Client* @param string $accessKeyId* @param string $accessKeySecret* @return Dysmsapi Client*/public static function createClient(string $accessKeyId, string $accessKeySecret): Dysmsapi{$config = new Config([// 您的AccessKey ID"accessKeyId" => $accessKeyId,// 您的AccessKey Secret"accessKeySecret" => $accessKeySecret]);// 訪問的域名$config->endpoint = "dysmsapi.aliyuncs.com";return new Dysmsapi($config);}/*** @param string[] $args* @return void*/public static function main(array $args){$client = self::createClient("LTAI5tSSAjCaVBxKPbMeoXb6", "KCwxkcnplJThtPOwBh0Mc8xvDolp8w");//簽名$signName='你的簽名';//短信參數(shù)$templateParam=$args['params'];if(!empty($templateParam)){//有參數(shù)$sendSmsRequest = new SendSmsRequest(["phoneNumbers" => $args['phone'],"signName" => $signName,"templateCode" => $args['templateCode'],"templateParam" => json_encode($templateParam)]);}else{//無參數(shù)$sendSmsRequest = new SendSmsRequest(["phoneNumbers" => $args['phone'],"signName" => $signName,"templateCode" => $args['templateCode'],]);}$result = $client->sendSms($sendSmsRequest);if ($result->body->message == 'OK' && $result->body->code == 'OK') {return ['code' => 200,'msg'=>'success'];}if ($result->body->code == 'isv.MOBILE_NUMBER_ILLEGAL') {return ['code' => 0, 'msg' => '手機號碼格式不正確'];}return ['code' => 0, 'msg' => '短信發(fā)送失敗,網(wǎng)絡繁忙'];} }3、設置定時任務
crontab -e寫入以下信息:比如我是設定每天10點發(fā)送
0 10 * * * /usr/bin/curl 你的網(wǎng)址然后,開啟定時服務
systemctl start crond.service如果已經(jīng)開啟,則重啟
systemctl restart crond.service查看定時任務
crontab -l實時監(jiān)控日志
tail -f /var/log/cron退出tail:Ctrl + C
總結
以上是生活随笔為你收集整理的thinkphp6对接阿里云短信服务完成定时发送短信功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python qrcode 中文乱码_P
- 下一篇: 交友H5盲盒源码PHP开源版