騰訊雲短信控制台:https://console.cloud.tencent.com/sms
騰訊雲短信 PHP SDK:https://github.com/qcloudsms/qcloudsms_php
案例使用laravel框架
1、准備
1.1、獲取SDK AppID和AppKey
雲短信應用SDK AppID和AppKey可在短信控制台的應用信息里獲取,如您尚未添加應用,請到短信控制台中添加應用。
1.2、申請簽名
一個完整的短信由短信簽名和短信正文內容兩部分組成,短信簽名須申請和審核,簽名可在短信控制台的相應服務模塊內容配置中進行申請。
(騰訊的短信簽名申請比較麻煩,需要網站的備案信息)
1.3、申請模板
同樣短信或語音正文內容模板須申請和審核,模板可在短信控制台的相應服務模塊內容配置中進行申請。
1.4、完成
以上步驟完成,拿到AppID、AppKey、簽名ID、模板ID
2、安裝
qcloudsms_php采用composer進行安裝,要使用qcloudsms功能,只需要在composer.json中添加如下依賴:
{
"require": {
"qcloudsms/qcloudsms_php": "0.1.*"
}
}
執行composer update,如果是初次使用執行composer install
3、代碼
3.1、短信配置信息
建准備的AppId、AppKey、簽名、模板ID存到配置文件中,新建配置文件config/sms.php
<?php
return [
'app_id' => '140****927',
'app_key' => '8a714*************75ab7d',
'sms_sign' => '21**18',
'template_id' => '31**96',
];
3.2、封裝一個短信發送類
<?php
/**
* 短信相關
*/
namespace App\Utils;
use Qcloud\Sms\SmsSingleSender;
class SmsUtil
{
/**
* 騰訊雲 發送短信驗證碼
* @param $phone:手機號碼
* @param $code:驗證碼
*/
public static function SendSmsCode($phone, $code)
{
$config = config('sms');//讀取config/sms.php配置信息
try {
$sender = new SmsSingleSender($config['app_id'], $config['app_key']);
$params = [$code];
$result = $sender->sendWithParam("86", $phone, $config['template_id'],
$params, $config['sms_sign'], "", ""); // 簽名參數未提供或者為空時,會使用默認簽名發送短信
$rsp = json_decode($result);
if($rsp->result == 0){//0代表成功
return true;
}
\Log::error('發送短信驗證碼失敗:'.$result);
} catch(\Exception $e) {
}
return false;
}
}
3.3、調用
SmsUtil::SendSmsCode('12345678910', 'YhP4');