本文目錄
- 一、開通阿里云短信服務
- 二、獲取阿里云訪問密鑰
- (一)打開 AccessKey 管理
- (二)創建 AccessKey
- 三、創建短信簽名和短信模板
- 四、下載 PHP SDK(僅支持5.5以上PHP版本)
- 五、修改DEMO程式原檔案
- 修改 SmsDemo.php 檔案
- 六、短信發送
- (一)引入檔案
- (二)發送短信
- 七、更多
一、開通阿里云短信服務
阿里云短信服務管理控制臺
二、獲取阿里云訪問密鑰
阿里云訪問秘鑰是阿里云為用戶使用 API(非控制臺)來訪問其云資源設計的“安全口令”,您可以用它來簽名 API 請求內容以通過服務端的安全驗證,
獲取步驟:
(一)打開 AccessKey 管理
滑鼠移至頭像,選擇 AccessKey 管理,

(二)創建 AccessKey
點擊【創建 AccessKey】按鈕即可自動創建,

首次創建需要進行短信驗證,創建完成后,將 AccessKey ID 和 AccessKey Secret 妥善保管,
AccessKey ID 和 AccessKey Secret 是您訪問阿里云 API 的密鑰,具有該賬戶完全的權限,請您妥善保管,
可以通過阿里云控制臺的秘鑰管理頁面創建、管理所有的訪問秘鑰對,且保證它處于“啟用”狀態,由于訪問秘鑰是阿里云對 API 請求進行安全驗證的關鍵因子,請妥善保管你的訪問秘鑰,如果某些秘鑰對出現泄漏風險,建議及時洗掉該秘鑰對并生成新的替代秘鑰對,
三、創建短信簽名和短信模板
打開阿里云短信服務管理控制臺,選擇【國內訊息】,按要求分別添加【短信簽名】和【短信模板】,填寫完成后等待審核即可,

四、下載 PHP SDK(僅支持5.5以上PHP版本)
點擊此處前往下載
或在瀏覽器地址欄輸入此鏈接下載:
http://ytx-sdk.oss-cn-shanghai.aliyuncs.com/dysms_php.zip?spm=a2c4g.11186623.2.16.301a5489mQC7jA&file=dysms_php.zip
建議使用:IE 10 +,Edge,Chrome,Firefox瀏覽器版本進行下載,目前控制臺產品不支持在Pad、手機等移動設備上使用,
下載完成,解壓到你的專案目錄,
五、修改DEMO程式原檔案
修改 SmsDemo.php 檔案
- 在
SmsDemo.php檔案中找到getAcsClient()方法,修改AccessKeyId和AccessKeySecret:
public static function getAcsClient() {
//產品名稱:云通信短信服務API產品,開發者無需替換
$product = "Dysmsapi";
//產品域名,開發者無需替換
$domain = "dysmsapi.aliyuncs.com";
// TODO 此處需要替換成開發者自己的AK (https://ak-console.aliyun.com/)
$accessKeyId = "你的AccessKeyId"; // AccessKeyId
$accessKeySecret = "你的AccessKeySecret"; // AccessKeySecret
// 暫時不支持多Region
$region = "cn-hangzhou";
// 服務結點
$endPointName = "cn-hangzhou";
if(static::$acsClient == null) {
//初始化acsClient,暫不支持region化
$profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);
// 增加服務結點
DefaultProfile::addEndpoint($endPointName, $region, $product, $domain);
// 初始化AcsClient用于發起請求
static::$acsClient = new DefaultAcsClient($profile);
}
return static::$acsClient;
}
- 修改
sendSms()方法,加入四個引數:
$mobile 要發送驗證碼的手機號
$signName 簽名名稱
$templateCode 模板CODE
$checkCode 要發送的驗證碼
public static function sendSms($mobile, $signName, $templateCode, $checkCode) {
// 初始化SendSmsRequest實體用于設定發送短信的引數
$request = new SendSmsRequest();
//可選-啟用https協議
//$request->setProtocol("https");
// 必填,設定短信接收號碼
$request->setPhoneNumbers($mobile);
// 必填,設定簽名名稱,應嚴格按"簽名名稱"填寫,請參考: https://dysms.console.aliyun.com/dysms.htm#/develop/sign
$request->setSignName($signName);
// 必填,設定模板CODE,應嚴格按"模板CODE"填寫, 請參考: https://dysms.console.aliyun.com/dysms.htm#/develop/template
$request->setTemplateCode($templateCode);
// 可選,設定模板引數, 假如模板中存在變數需要替換則為必填項
$request->setTemplateParam(json_encode(array( // 短信模板中欄位的值
"code" => $checkCode,
"product" => "dsd"
), JSON_UNESCAPED_UNICODE));
// 可選,設定流水號
$request->setOutId("yourOutId");
// 選填,上行短信擴展碼(擴展碼欄位控制在7位或以下,無特殊需求用戶請忽略此欄位)
$request->setSmsUpExtendCode("1234567");
// 發起訪問請求
$acsResponse = static::getAcsClient()->getAcsResponse($request);
return $acsResponse;
}
- 注釋掉檔案末尾的呼叫示例代碼:
// 呼叫示例:
//set_time_limit(0);
//header('Content-Type: text/plain; charset=utf-8');
//
//$response = SmsDemo::sendSms();
//echo "發送短信(sendSms)介面回傳的結果:\n";
//print_r($response);
//
//sleep(2);
//
//$response = SmsDemo::sendBatchSms();
//echo "批量發送短信(sendBatchSms)介面回傳的結果:\n";
//print_r($response);
//
//sleep(2);
//
//$response = SmsDemo::querySendDetails();
//echo "查詢短信發送情況(querySendDetails)介面回傳的結果:\n";
//print_r($response);
六、短信發送
(一)引入檔案
在你的 PHP 檔案中引入:
<?php
require "aliyun-dysms-php-sdk/api_demo/SmsDemo.php";
(二)發送短信
$code = rand(111111, 999999);
$signName = 'ABC商城';
$templateCode = '此處為你的模板CODE';
$send = SmsDemo::sendSms($mobile, $signName, $templateCode, $code);
print_r($send);
七、更多
1. SDK及DEMO下載
2. 短信發送API
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/234842.html
標籤:其他
