tp项目使用阿里云短信接口

一、下载sdk

https://help.aliyun.com/document_detail/55359.html?spm=5176.11065259.1996646101.searchclickresult.d0a31a7在这里插入图片描述

二、将sdk包放入tp项目

在这里插入图片描述
api_sdk放入到tp项目中的extend文件夹,如果没有则自己建,一般tp3中需要建。
在这里插入图片描述

三、控制器中引入短信接口

引入导入的配置文件:
在这里插入图片描述
实现方法:

/**
     * 短信发送
     * @param $to    接收人
     * @param $model    短信模板ID
     * @param $code   短信验证码
     * @return json
     */
    function send_sms($to, $code){
        require_once dirname(__DIR__) .'/../../extend/api_sdk/vendor/autoload.php';

        Config::load(); //加载区域结点配置

//        $config = '根据你的实际情况读取配置文件或读取数据库,本项目是将配置写入数据库实现';
        $accessKeyId = '阿里云生成的accessKeyId';
        $accessKeySecret = '阿里云生成的accessKeySecret';
        $templateParam = $code;
        //短信签名
        $signName = "短信签名";
        //短信模板ID
        $templateCode = "短信模板"; // 注册登录短信验证码模板
        //短信API产品名(短信产品名固定,无需修改)
        $product = "Dysmsapi";
        //短信API产品域名(接口地址固定,无需修改)
        $domain = "dysmsapi.aliyuncs.com";
        //暂时不支持多Region(目前仅支持cn-hangzhou请勿修改)
        $region = "cn-hangzhou";
        // 初始化用户Profile实例
        $profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);
        // 增加服务结点
        DefaultProfile::addEndpoint("cn-hangzhou", "cn-hangzhou", $product, $domain);
        // 初始化AcsClient用于发起请求
        $acsClient= new DefaultAcsClient($profile);
        // 初始化SendSmsRequest实例用于设置发送短信的参数
        $request = new SendSmsRequest();
        // 必填,设置雉短信接收号码
        $request->setPhoneNumbers($to);
        // 必填,设置签名名称
        $request->setSignName($signName);
        // 必填,设置模板CODE
        $request->setTemplateCode($templateCode);
        // 可选,设置模板参数
        if($templateParam) {
            $request->setTemplateParam(json_encode(['code'=>$templateParam]));
        }
        //发起访问请求
        $acsResponse = $acsClient->getAcsResponse($request);
        //返回请求结果
        $result = json_decode(json_encode($acsResponse),true);
        // 具体返回值参考文档:https://help.aliyun.com/document_detail/55451.html?spm=a2c4g.11186623.6.563.YSe8FK
        return $result;
    }

调用该方法即可使用~

温馨提示:

在这里插入图片描述
有错的话一定要F12通过Network查看,查看ajax返回结果,出错不用怕,可以从官方文档上的错误码信息中查找原因,加油!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章