接入腾讯云短信接口

一、添加应用(应用名字随便定义,也不能太随便……)

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

猜你喜欢

转载自blog.csdn.net/qq_42249896/article/details/84564477