thinkphp5腾讯云短信示例
1. 应用根目录下使用 composer 导入腾讯云短信提供的 PHP SDK。
composer require qcloudsms/qcloudsms_php
2. 申请应用,签名,模版。
必须申请签名与模版。
申请应用:https://cloud.tencent.com/document/product/382/13445
申请签名模版:https://cloud.tencent.com/document/product/382/13481
签名可根据相关文档说明申请。
模版申请的为标准验证码模版。
模版:{1}为您的登录验证码,请于 {2} 分钟内填写。如非本人操作,请忽略本短信。
若想一次通过本示例发送短信成功,请申请相同模版,以免导致发送失败。
签名和模版必须全部通过。
测试前请在腾讯云短信控制台添加你的手机为白名单。
3. 单发测试。
<?php
namespace app\index\controller;
use Qcloud\Sms\SmsSingleSender;
class Index
{
public function smsSend(){
// $appid $appkey $templateId $smsSign为官方demo所带,请修改为你自己的
// 短信应用SDK AppID
$appid = 1400009099;
// 短信应用SDK AppKey
$appkey = "9ff91d87c2cd7cd0ea762f141975d1df37481d48700d70ac37470aefc60f9bad";
// 你的手机号码。
$phoneNumber = "21212313123";
// 短信模板ID,需要在短信应用中申请
$templateId = 7839; // NOTE: 这里的模板ID`7839`只是一个示例,真实的模板ID需要在短信控制台中申请
// 签名
$smsSign = "腾讯云"; // NOTE: 这里的签名只是示例,请使用真实的已申请的签名,签名参数使用的是`签名内容`,而不是`签名ID`
// 单发短信
try {
$ssender = new SmsSingleSender($appid, $appkey);
$result = $ssender->send(0, "86", $phoneNumber,
"123456为您的登录验证码,请于5分钟内填写。如非本人操作,请忽略本短信。", "", "");
$rsp = json_decode($result);
echo $result;
} catch(\Exception $e) {
echo var_dump($e);
}
//暂停3秒
sleep(3);
// 指定模板ID单发短信
try {
$ssender = new SmsSingleSender($appid, $appkey);
$params = ["654321", "5"];
$result = $ssender->sendWithParam("86", $phoneNumber, $templateId,
$params, $smsSign, "", ""); // 签名参数未提供或者为空时,会使用默认签名发送短信
$rsp = json_decode($result);
echo $result;
} catch(\Exception $e) {
echo var_dump($e);
}
}
}
$appid $appkey $templateId $smsSign 为官方 demo 所带,请修改为你自己的。
运行后,正常情况下会收到两条短信。
4. 群发测试。
<?php
namespace app\index\controller;
use Qcloud\Sms\SmsMultiSender;
class Index
{
public function smsMulti(){
// $appid $appkey $templateId $smsSign为官方demo所带,请修改为你自己的
// 短信应用SDK AppID
$appid = 1400009099; // 1400开头
// 短信应用SDK AppKey
$appkey = "9ff91d87c2cd7cd0ea762f141975d1df37481d48700d70ac37470aefc60f9bad";
// 需要发送短信的手机号码
$phoneNumbers = ["21212313123", "12345678902", "12345678903"];
// 短信模板ID,需要在短信应用中申请
$templateId = 7839; // NOTE: 这里的模板ID`7839`只是一个示例,真实的模板ID需要在短信控制台中申请
// 签名
$smsSign = "腾讯云"; // NOTE: 这里的签名只是示例,请使用真实的已申请的签名,签名参数使用的是`签名内容`,而不是`签名ID`
// 群发
try {
$msender = new SmsMultiSender($appid, $appkey);
$result = $msender->send(0, "86", $phoneNumbers,
"123456为您的登录验证码,请于5分钟内填写。如非本人操作,请忽略本短信。", "", "");
$rsp = json_decode($result);
echo $result;
} catch(\Exception $e) {
echo var_dump($e);
}
//暂停3秒
sleep(3);
// 指定模板ID群发
try {
$msender = new SmsMultiSender($appid, $appkey);
$params = ["654321", "5"];
$result = $msender->sendWithParam("86", $phoneNumbers,
$templateId, $params, $smsSign, "", ""); // 签名参数未提供或者为空时,会使用默认签名发送短信
$rsp = json_decode($result);
echo $result;
} catch(\Exception $e) {
echo var_dump($e);
}
}
}
$appid $appkey $templateId $smsSign 为官方 demo 所带,请修改为你自己的。
运行后,正常情况下 3 个手机都会收到两条短信。
5. 语音验证码测试。
腾讯云个人认证不支持此功能。
<?php
namespace app\index\controller;
use Qcloud\Sms\SmsVoiceVerifyCodeSender;
class Index
{
public function smsVoiceVerifyCode(){
// $appid $appkey 为官方demo所带,请修改为你自己的
// 短信应用SDK AppID
$appid = 1400009099; // 1400开头
// 短信应用SDK AppKey
$appkey = "9ff91d87c2cd7cd0ea762f141975d1df37481d48700d70ac37470aefc60f9bad";
// 需要发送短信的手机号码
$phoneNumbers = ["21212313123", "12345678902", "12345678903"];
// 发送语音验证码
try {
$vvcsender = new SmsVoiceVerifyCodeSender($appid, $appkey);
$result = $vvcsender->send("86", $phoneNumbers[0], "5678", 2, "");
$rsp = json_decode($result);
echo $result;
} catch (\Exception $e) {
echo var_dump($e);
}
}
}
$appid $appkey 为官方 demo 所带,请修改为你自己的。
运行时,请保证信号与无通话状态。
6. 语音通知测试。
腾讯云个人认证不支持此功能。
先申请模版:现在时间为 {1},确认请按键 1 回复,谢谢。
<?php
namespace app\index\controller;
use Qcloud\Sms\SmsVoicePromptSender;
class Index
{
public function smsVoicePrompt(){
// $appid $appkey 为官方demo所带,请修改为你自己的
// 短信应用SDK AppID
$appid = 1400009099; // 1400开头
// 短信应用SDK AppKey
$appkey = "9ff91d87c2cd7cd0ea762f141975d1df37481d48700d70ac37470aefc60f9bad";
// 需要发送短信的手机号码
$phoneNumbers = ["21212313123", "12345678902", "12345678903"];
// 发送语音通知
try {
$vpsender = new SmsVoicePromptSender($appid, $appkey);
$result = $vpsender->send("86", $phoneNumber[0], 2, "现在时间为2018年5月25日 17:11:17,确认请按键1回复,谢谢。", "");
$rsp = json_decode($result);
echo $result;
} catch (\Exception $e) {
echo var_dump($e);
}
}
}
$appid $appkey 为官方 demo 所带,请修改为你自己的。
运行时,请保证信号与无通话状态。
腾讯云短信 API 文档:https://cloud.tencent.com/document/product/382/13297
腾讯云短信 SDK 链接:https://cloud.tencent.com/document/product/382/5804
本文链接:https://www.masterzc.cn/archives/74.html
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处