腾讯云短信控制台: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');