ThinkPHP5——接入腾讯云短信API

接入腾讯云短信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就可以