ThinkPHP 5.1中引用腾讯云短信SDK的方法

最近需要在一个tp5.1项目中使用腾讯云SDK,研究了好久,终于搞定,记录一下

首先打开应用根目录,使用composer安装腾讯云的短信SDK:

composer require qcloudsms/qcloudsms_php

安装完成后,会有 “ 应用根目录/vendor/qcloudsms/qcloudsms_php/src ”这样的目录结构,那么依照官方文档,在需要使用的控制器下写入如下代码即可运行(以单发短信为例):

<?php
use Qcloud\Sms\SmsSingleSender;

class Sms extends Controller
{
    public function sms()
    {
        // 短信应用 SDK AppID
        $appid = 1400009099; // SDK AppID 以1400开头
        // 短信应用 SDK AppKey
        $appkey = "9ff91d87c2cd7cd0ea762f141975d1df37481d48700d70ac37470aefc60f9bad";
        // 需要发送短信的手机号码
        $phoneNumbers = ["21212313123", "12345678902", "12345678903"];
        // 短信模板 ID,需要在短信控制台中申请
        $templateId = 7839;  // NOTE: 这里的模板 ID`7839`只是示例,真实的模板 ID 需要在短信控制台中申请
        $smsSign = "腾讯云"; // NOTE: 签名参数使用的是`签名内容`,而不是`签名ID`。这里的签名"腾讯云"只是示例,真实的签名需要在短信控制台申请
        try {
            $ssender = new SmsSingleSender($appid, $appkey);
            $result = $ssender->send(0, "86", $phoneNumbers[0],
                "【腾讯云】您的验证码是: 5678", "", "");
            $rsp = json_decode($result);
            echo $result;
        } catch (\Exception $e) {
            echo var_dump($e);
        }
    }
}

但是这么运行会出错,tp框架提示无法找到对应的Qcloud\Sms\SmsSingleSender类,原因是我们没有引入相应的文件,因此需要在use之前引入文档中所述的index.php文件:

require __DIR__."/../../../vendor/qcloudsms/qcloudsms_php/src/index.php";

这是在tp5.1框架下控制器中引用腾讯云短信SDK的语句,当SDK文件目录不同时,要相应的调整require的文件目录,当上面这句代码被放入use语句之前后,程序即正常运行。

默认图片
HHao
文章: 18

留下评论