Thinkphp5+阿里云SMS短信服务发送验证码

阿里云短信服务介绍

阿里云短信服务就是以前的阿里大于,不过现在融合得到阿里云平台了。
首先,你需要注册一个阿里云账号,这个自行解决。



仅用于测试使用官方送的代金券够用了。

相关配置

1.开通阿里云 AccessKey:云账号AccessKey具有所有云产品API的访问权限,一旦泄露将导致极大的安全风险!



点击创建Access Key,然后Access key Secret 点击显示按钮然后输入绑定的手机验证码就可查看。
2.短信签名,及短信模板(按照要求创建即可)



Thinkphp5中开发

1.下载SDK包,当然你也可以去官网下载。我在这里提供一份: 阿里云短信SDK 密码:9um7
解压后就是文件夹中有四个子文件夹

2.将这个文件夹放入TP5框架中 extend目录中(extend目录用于存放一些第三方类库)
3.代码DEMO
前端:记得引入jQuery
<input type="number" name="number"  placeholder="填写手机号码" /><button class='button'>获取验证码</button>

//点击事件
$(".button").click(function(){
var number = $(".number").val();//获取手机号码
//ajax异步发送
$.ajax({
url: url,//请求地址,html页面传过来的
type: "post",
data: {number: "number"},
success:function(res){
//执行完毕之后调用的方法
connsole.log(res);
},
});

});
后端处理
<?php
namespace app\index\controller;
use think\Controller;
use think\Loader;
class Index extends Controller
{
    public function index()
    {
        if(request()->isPost()){//和TP3中略有不同IS_POST等方法弃用
            
            $number = input('number');//input助手函数	获取输入数据 支持默认值和过滤
            
            Loader::import('alimsg.api_demo.SmsDemo',EXTEND_PATH);//对应extend目录,路径,如果你对SmsDemo类添加了命名空间可在上面 use 后在此处直接实例化

            $code = $this->random();

            //得到信息文件并执行.实例化阿里短信类
            $msg = new \SmsDemo('L******2','U*****************a');//注意类名前面的  \ 此处写的就是Access key id 和Access key secret
            
            //此配置在sdk包中有相关例子
            $res = $msg->sendSms(
                //短信签名名称
                "*****",//此处填写你在阿里云平台配置的短信签名名称(第二步有说明)
                //短信模板code
                "SMS_107015125",//此处填写你在阿里云平台配置的短信模板code(第二步有说明)
                //短信接收者的手机号码
               " $number",
                //模板信息
                Array(
                    'number' => $code,//随机变化的
                )
            );
            dump($res);die;
            $response = array($res);

        }
        return $this->fetch('index');
    }

    //生成所发送的验证码并返回
    public function random()
    {
        $length = 6;
        $char = '0123456789';
        $code = '';
        while(strlen($code) < $length){
            //截取字符串长度
            $code .= substr($char,(mt_rand()%strlen($char)),1);
        }
        return $code;
    }
}

现在你就可以测试验证码的发送了,在上述代码中我对 $res 进行了打印,你也可以 当出现如下界面表示成功。



  • 0
    点赞
  • 2
    收藏
  • 打赏
    打赏
  • 4
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:技术黑板 设计师:CSDN官方博客 返回首页
评论 4

打赏作者

millet109

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值