tp5接入阿里云短信

4 篇文章 0 订阅
1 篇文章 0 订阅

1、下载包文件

链接: https://pan.baidu.com/s/1ykSukp5tHitkUieC0-jWxQ?pwd=asd5 提取码: asd5

2、导入项目

(1)阿里云账号

(2)在阿里云上开通短信服务

(3)创建账户AccessKeyId和AccessKeySecret,赋予权限。

把解压后的alisms放于extend下,在extend中创建SmsCode类封装发送短信的方法。

<?php
use Aliyun\Core\Config;
use Aliyun\Core\Profile\DefaultProfile;
use Aliyun\Core\DefaultAcsClient;
use Aliyun\Api\Sms\Request\V20170525\SendSmsRequest;

class SmsCode
{
    function send_sms($phone, $model, $code)
    {
        $aliyun = config('aliyun');
        require_once '../extend/alisms/vendor/autoload.php';
        Config::load(); //加载区域结点配置
        $accessKeyId = $aliyun['access_key_id'];  //自己的
        $accessKeySecret = $aliyun['access_key_secret'];   //自己的
        $templateParam = $code; //验证码,注意传过来的需要是数组如  { ‘code’=> '123456' }
        //短信签名
        $signName = $aliyun['sms_sign_name'];   //自己的签名
        //短信模板ID
        switch ($model) {
            case 1:
                $templateCode = $aliyun['sms_sign_code']; // 重置密码短信验证码模板  自己模板的code
                break;
            case 2:
                break;
        }
        //短信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($phone);
        // 必填,设置签名名称
        $request->setSignName($signName);
        // 必填,设置模板CODE
        $request->setTemplateCode($templateCode);
        // 可选,设置模板参数
        if ($templateParam) {
            //dump(json_encode($templateParam));
            $request->setTemplateParam(json_encode($templateParam));
        }
        //发起访问请求
        $acsResponse = $acsClient->getAcsResponse($request);
        //返回请求结果
        $result = json_decode(json_encode($acsResponse), true);
        return $result;
    }
}

?>  

3、在文件种使用

public function send_code($phone){
    //一定得是数组形式,json编码时针对值;数组形式才能让其带有标识
    $code =array('code'=>rand(1000, 9999));
    $objSendObj = new \SmsCode();
    $send = $objSendObj->send_sms($phone,  1, $code);
    if($send['Message'] != 'OK'){
        echo '发送失败';
    }else{
        echo '发送成功';
    }
}

 4、运行结果

注意:

1、

配置信息位置

2、在控制器中引用发送短信的class时,直接new()就可以了

$objSendObj = new \SmsCode(); 

“\”tp5的命名空间自动加载规则:自动加载的实现,通过think\Loader类库完成,自动加载。

  • 27
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值