其他分享
首页 > 其他分享> > 基于tp3.2的腾讯云短信验证码的实现

基于tp3.2的腾讯云短信验证码的实现

作者:互联网

新手小白在公司要完成短信验证码注册功能,最初由于没有经验,网上的教程又不是很全,便参考着官方API文档,进行开发

直接进入正题:使用composer下载腾讯云短信接口(记得添加依赖)。在项目目录下新建composer.json,写入以下内容

{
  "require": {
    "qcloudsms/qcloudsms_php": "0.1.*"
  },
}

现在就可以在命令行下进入到项目目录,执行composer install,便下载成功短信接口,接下来把以下文档粘贴到Thinkphp/Library/Org/Qcloud/Sms文件夹下

接下来就是控制器的完成,在控制器中新建方法,内容如下

public function sendPhone($mobile)
    {
// 自己申请的短信应用SDK AppID
        $appid = '1400xxxxxx'; // 1400开头

// 自己申请的短信应用SDK AppKey
        $appkey = "xxxxxxxxxxxxxx";

// 需要发送短信的手机号码
        $phoneNumbers = '13xxxxxx';

// 短信模板ID,需要在短信应用中申请
        $templateId = 'xxxx';  // NOTE: 这里的只是一个示例,真实的模板ID需要在短信控制台中申请

// 签名
        $smsSign = "热爱交流的程序员"; // NOTE: 这里的签名只是示例,请使用真实的已申请的签名,签名参数使用的是`签名内容`,而不是`签名ID`
        $code1 = mt_rand(1000,9999);//生成随机数
        session('code1',$code1);    //保存在session(看自己需要保存在哪都行)

        $params = [$code1,5];

// 单发短信
        require ('./Thinkphp/Library/Org/Qcloud/Sms/index.php');  //这句代码非常重要不要忽略
       try {
            $ssender = new \Qcloud\Sms\SmsSingleSender($appid, $appkey);//数组具体的元素个数和模板中变量个数必须一致,例如事例中 templateId:5678对应一个变量,参数数组中元素个数也必须是一个
            $result = $ssender->sendWithParam("86", $phoneNumbers, $templateId,
                $params, $smsSign, "", "");  // 签名参数未提供或者为空时,会使用默认签名发送短信
            $rsp = json_decode($result);
        } catch(\Exception $e) {
            echo var_dump($e);
        }

    }

执行该方法便能发送成功

 

 

  

标签:code1,短信,templateId,Sms,验证码,Qcloud,签名,tp3.2,腾讯
来源: https://www.cnblogs.com/dlmg/p/11294828.html