因爲項目中需要用到阿里雲短信驗證碼功能,所以就購買了相應的短信包進行測試,以下就是完整代碼:
use Aliyun\Core\Config;
use Aliyun\Core\Profile\DefaultProfile;
use Aliyun\Core\DefaultAcsClient;
use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;
/**
* 短信發送
* @param $to 接收人
* @param $model 短信模板ID
* @param $code 短信驗證碼
* @return json
* @說明:有優惠,先領卷在購買,不謝!https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=ob1nyal1
*/
function send_sms($to, $model, $code){
require_once '../extend/alisms/vendor/autoload.php';
Config::load(); //加載區域結點配置
$config = '根據你的實際情況讀取配置文件或讀取數據庫,本項目是將配置寫入數據庫實現';
$accessKeyId = '你的AccessKeyID';
$accessKeySecret = '你的AccessKeySecret';
$templateParam = $code;
//短信簽名
$signName = $config['sign_name'];
//短信模板ID
switch($model){
case 1:
$templateCode = $config['model_code_rl']; // 註冊登錄短信驗證碼模板
break;
case 2:
$templateCode = $config['model_code_reset']; // 重置密碼短信驗證碼模板
break;
}
//短信API產品名(短信產品名固定,無需修改)
$product = "Dysmsapi";
//短信API產品域名(接口地址固定,無需修改)
$domain = "dysmsapi.aliyuncs.com";
//暫時不支持多Region(目前僅支持cn-hangzhou請勿修改)
$region = "cn-hangzhou";
// 初始化用戶Profile實例
$profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);
// 增加服務結點
DefaultProfile::addEndpoint("cn-hangzhou", "cn-hangzhou", $product, $domain);
// 初始化AcsClient用於發起請求
$acsClient= new DefaultAcsClient($profile);
// 初始化SendSmsRequest實例用於設置發送短信的參數
$request = new SendSmsRequest();
// 必填,設置雉短信接收號碼
$request->setPhoneNumbers($to);
// 必填,設置簽名名稱
$request->setSignName($signName);
// 必填,設置模板CODE
$request->setTemplateCode($templateCode);
// 可選,設置模板參數
if($templateParam) {
$request->setTemplateParam(json_encode($templateParam));
}
//發起訪問請求
$acsResponse = $acsClient->getAcsResponse($request);
//返回請求結果
$result = json_decode(json_encode($acsResponse),true);
// 具體返回值參考文檔:https://help.aliyun.com/document_detail/55451.html?spm=a2c4g.11186623.6.563.YSe8FK
return $result;
}
以下列舉詳細步驟:
在開始之前你必須在阿里雲控制檯中將你的accessKeyId、accessKeySecret獲取並紀錄起來,如果你的賬戶沒有開啓AccessKey需要進行開啓操作:
1、登錄阿里雲控制檯。
2、將鼠標放在右上方的用戶名區域,在彈出的快捷菜單中選擇accesskeys。
3、系統彈出安全提示對話框,單擊繼續使用AccessKey。頁面顯示AccessKeyId和AccessKeySecret。
其次,你需要申請好對應的模板及簽名,然後在進行以下操作。
第一步:下載PHP短信發送Dome,將文件夾api_sdk複製到你的項目extend目錄下,並任意重命名;
第二步:在你項目應用公共(函數)文件common.php頭部添加
use Aliyun\Core\Config;
use Aliyun\Core\Profile\DefaultProfile;
use Aliyun\Core\DefaultAcsClient;
use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;
第三步:將封裝好的函數寫入common.php中
/**
* 短信發送
* @param $to 接收人
* @param $model 短信模板ID
* @param $code 短信驗證碼
* @return json
* @說明:有優惠,先領卷在購買,不謝!https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=ob1nyal1
*/
function send_sms($to, $model, $code){
require_once '../extend/alisms/vendor/autoload.php';
Config::load(); //加載區域結點配置
$config = '根據你的實際情況讀取配置文件或讀取數據庫,本項目是將配置寫入數據庫實現';
$accessKeyId = '你的AccessKeyID';
$accessKeySecret = '你的AccessKeySecret';
$templateParam = $code;
//短信簽名
$signName = $config['sign_name'];
//短信模板ID
switch($model){
case 1:
$templateCode = $config['model_code_rl']; // 註冊登錄短信驗證碼模板
break;
case 2:
$templateCode = $config['model_code_reset']; // 重置密碼短信驗證碼模板
break;
}
//短信API產品名(短信產品名固定,無需修改)
$product = "Dysmsapi";
//短信API產品域名(接口地址固定,無需修改)
$domain = "dysmsapi.aliyuncs.com";
//暫時不支持多Region(目前僅支持cn-hangzhou請勿修改)
$region = "cn-hangzhou";
// 初始化用戶Profile實例
$profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);
// 增加服務結點
DefaultProfile::addEndpoint("cn-hangzhou", "cn-hangzhou", $product, $domain);
// 初始化AcsClient用於發起請求
$acsClient= new DefaultAcsClient($profile);
// 初始化SendSmsRequest實例用於設置發送短信的參數
$request = new SendSmsRequest();
// 必填,設置雉短信接收號碼
$request->setPhoneNumbers($to);
// 必填,設置簽名名稱
$request->setSignName($signName);
// 必填,設置模板CODE
$request->setTemplateCode($templateCode);
// 可選,設置模板參數
if($templateParam) {
$request->setTemplateParam(json_encode($templateParam));
}
//發起訪問請求
$acsResponse = $acsClient->getAcsResponse($request);
//返回請求結果
$result = json_decode(json_encode($acsResponse),true);
// 具體返回值參考文檔:https://help.aliyun.com/document_detail/55451.html?spm=a2c4g.11186623.6.563.YSe8FK
return $result;
}
第四步:在你需要用到的控制器中調用send_sms(‘電話號碼’,‘短信模板’,‘需要替換的變量’),OK大功告成!
$send = send_sms($sender, 1, ['code'=>$code]);
---------------------
作者:白山老楊
來源:CSDN
原文:https://blog.csdn.net/list_yang/article/details/81626593
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!