一、添加应用(应用名字随便定义,也不能太随便……)
https://console.cloud.tencent.com/sms/smslist
二、添加签名
为了签名能一次性通过,请按照上述要求进行填写
补充:
什么是签名?
红线标注内就是短信签名。
三、创建模板
什么是模板?
里面的内容就是模板。
模板里的花括号为变量名称。
四、下载sdk文件
https://cloud.tencent.com/document/product/382/5804
五、下载好后,下面我使用tp5操作短信接口
下载完后有个src文件夹,我更名为Sms,可随意定义。
复制到tp框架里面的vendor文件夹里
打开SmsSenderUtil.php,将namespace这一行删除。
在将所有的namespace和use...的这两行删除,并加入require_once __DIR__ . "/SmsSenderUtil.php";这行代码。
控制器里写:
public function yanzheng() {
// 短信应用SDK AppID
$appid =xxxx; // 1400开头
// 短信应用SDK AppKey
$appkey = "xxxxx";
// 需要发送短信的手机号码
$phoneNumbers =['xxxxx'];
// 短信模板ID,需要在短信应用中申请
$templateId =xxxx; // NOTE: 这里的模板ID`7839`只是一个示例,真实的模板ID需要在短信控制台中申请
// 签名
$smsSign = "xxxx"; // NOTE: 这里的签名只是示例,请使用真实的已申请的签名,签名参数使用的是`签名内容`,而不是`签名ID`
// 单发短信
Vendor('Sms.SmsSingleSender');
$ssender = new \SmsSingleSender($appid, $appkey);
$params = ["125678","1"];//数组具体的元素个数和模板中变量个数必须一致,例如事例中 templateId:5678对应一个变量,参数数组中元素个数也必须是一个
$result = $ssender->sendWithParam("86", $phoneNumbers[0], $templateId,
$params, $smsSign, "", ""); // 签名参数未提供或者为空时,会使用默认签名发送短信
$rsp = json_decode($result);
echo $result;
}
传参的时候一定要看自己的实际参数,这儿是和教程不一样的,不要死看教程,自己的代码是活的。
我踩过的坑,我在申请模板的时候,有两个花括号(参数),但我$params只有一个参数,因此就会报错,要根据自己申请模板的时候那个参数来进行设置传参,每个人都不一样。
好了,到这儿基本结束了。
参考文档:https://cloud.tencent.com/document/product/382/9557
错误码:https://cloud.tencent.com/document/product/382/3771
阿里云配置短信接口:https://blog.csdn.net/qq_42249896/article/details/84566567