接入腾讯云短信API相当简单,最重要的是第一次使用腾讯云短信的话有100条免费短信可以测试,对于开发人员是足够了,下面我就教大家接入腾讯云短信。
第一步:准备工作
首先要在腾讯云短信申请短信签名与短信正文模板
填写信息,大概等1-2个小时就可以申请成功。接着下载它的短信SDK(如果你安装了Composer,也可以使用Composer下载)
将腾讯云提供的SDK文件下载下来后,在extend文件夹下面新建一个文件夹命名为sms,把腾讯云SDK的src里面所有类放到sms文件夹底下
第二步:接入短信API
use Qcloud\sms\SmsSingleSender;
//腾讯短信验证码 public function tenxun(){ // 短信应用 SDK AppID $appid = 1400009099; // SDK AppID 以1400开头 // 短信应用 SDK AppKey $appkey = "10747e9376c79fc1b523bf7f33dc16"; // 需要发送短信的手机号码 $phoneNumbers = input("phone"); // 短信模板 ID,需要在短信控制台中申请 $templateId = 517396; // NOTE: 这里的模板 ID`7839`只是示例,真实的模板 ID 需要在短信控制台中申请 $smsSign = "信息展示"; // NOTE: 签名参数使用的是`签名内容`,而不是`签名ID`。这里的签名"腾讯云"只是示例,真实的签名需要在短信控制台申请 try { $ssender = new SmsSingleSender($appid, $appkey); $params = [rand(1000, 9999)];//生成随机数 $result = $ssender->sendWithParam("86", $phoneNumbers, $templateId, $params, $smsSign, "", ""); $rsp = json_decode($result); return json(["result"=>$rsp->result,"code"=>$params]); } catch(\Exception $e) { echo var_dump($e); } }
遇到的问题及解决方法
问题一:$params(随机数)必须数组,这里有几个参数是根据短信模板的内容,例如:
问题二:刚引入use Qcloud\sms\SmsSingleSender,就把找不到SmsSingleSender类,原因是原来的src里面的所有类前面都加Qcloud,但我的目录是extend\sms,根本没有Qcloud,所以才报错。这样只要把sms前面加一个Qcloud目录,或者把sms里面的类的命名空间或use前面都删了Qcloud就可以