Thinkphp5使用阿里大于短信验证

现在各种平台登录验证很多时候会使用短信验证,快捷安全,有很多平台提供短信验证服务,相比较而言阿里大于价格比较便宜,快捷,所以在在千锋日常的php教学中多以此为例来说明短信验证的使用。下面我们在tp5中说明如何使用阿里大于进行短信验证。

一、首先到阿里大于平台上注册,创建应用

阿里大于地址为:https://www.alidayu.com/,点击免费入住,然后注册,注册完毕后,进入管理中心。如下图所示在左边导航栏里选择---应用管理,然后在右边内容窗口里选择创建应用。

Thinkphp5使用阿里大于短信验证_第1张图片
 

在左侧导航栏里选择应用管理----应用列表。然后在右边窗口中选择创建应用

 

Thinkphp5使用阿里大于短信验证_第2张图片
 

创建完毕后,可以获得应用的appkeyappsecret,这两个东东很重要

Thinkphp5使用阿里大于短信验证_第3张图片

 

然后在左侧的导航栏李选择SDK下载,在右边窗口里选择php版。

 

Thinkphp5使用阿里大于短信验证_第4张图片
 

下载完成后解压,得到如下文件:

Thinkphp5使用阿里大于短信验证_第5张图片
 

在所给的这些文件里,只要以下文件就够了:

Thinkphp5使用阿里大于短信验证_第6张图片
 

我们把这些文件放到tp5的extend目录里,建立一个文件夹alidayu,把所有文件放到该文件夹下。

然后回到阿里大于,在左侧导航栏里选择配置管理----验证码,然后在右侧窗口里可以看到两个选择项:配置短信签名 和 配置短信模板

Thinkphp5使用阿里大于短信验证_第7张图片
 

1 首先配置短信签名,这个是必须的,界面如下,根据自己的需要选择,个人使用选择第一个就行。

Thinkphp5使用阿里大于短信验证_第8张图片

2.配置短信模板

选择配置短信模板,然后添加模板:

Thinkphp5使用阿里大于短信验证_第9张图片
 

这里,模板内容是重点,比如说验证码短信一般会有一个随机数,这个随机数如何表示内,就用${number}这种方式表示,其中${number}就是php中对应的变量,用几个就定义几个,{}里面是变量的名字。配置完成后如下图所示:


 

重点是模板ID,这个在程序代码中要用。

二、在tp5中引用

1.项目的目录结构

Thinkphp5使用阿里大于短信验证_第10张图片
 

要想在项目中引用extend下的alidayu下面的几个类,必须给类添加名空间。

2、给下载的文件添加名空间。

在tp5中加载类使用的时自动加载,是根据名空间加载的,所以,下载的几个类文件,必须定义名空间才能引用,名空间必须和目录一致。

Thinkphp5使用阿里大于短信验证_第11张图片
 

3.在控制器里引用验证码类

Thinkphp5使用阿里大于短信验证_第12张图片
 

如果,编译出现找不到TopClient类的提示,可以在application下config.php里修改:

Thinkphp5使用阿里大于短信验证_第13张图片
 

添加一个名空间和文件夹的对照,则一切ok。

4. 编写短信验证码方法

//短信验证
	public function sendSMS() 
	{
		if (request()->isAjax()) {//如果是ajax请求
			$tel = input('mobile');//手机号
			               
			$c = new TopClient;//大于客户端   
			$c->format = 'json';//设置返回值得类型

			$c->appkey = "23885965";//阿里大于注册应用的key
		    $c->secretKey = "ccd724869075d0d740806302b664bb86";//注册的secretkey
		                                                       
		    //请求对象,需要配置请求的参数   
			$req = new AlibabaAliqinFcSmsNumSendRequest;
			$req->setExtend("123456");//公共回传参数,可以不传
			$req->setSmsType("normal");//短信类型,传入值请填写normal
			
			//签名,阿里大于-控制中心-验证码--配置签名 中配置的签名,必须填
			$req->setSmsFreeSignName("自己的签名");//根据前面配置短信签名里的前面做相应的修改
			
			//你在短信中显示的验证码,这个要保存下来用于验证
			$num = rand(100000,999999);
               session('code',$num);//保存到session //短信模板变量,传参规则{"key":"value"},key的名字须和申请模板中的变量名一致,传参时需传入{"code":"1234","product":"alidayu"} $req->setSmsParam("{\"number\":\"$num\"}");//模板参数 //短信接收的手机号码,可以有多个,具体参照大于号帮助文档。 $req->setRecNum($tel); //短信模板。阿里大于-控制中心-验证码--配置短信模板 必须填 $req->setSmsTemplateCode("SMS_69685034");//根据前面配置模板是生成的模板ID修改 $resp = $c->execute($req);//发送请求 return $resp; } }

  


三、html文件




	用户注册
	
	


	
注册

书非借不能读

  

更多实用php技术,请持续关注千锋教学日记。

转载于:https://www.cnblogs.com/landmark/p/6930818.html

你可能感兴趣的:(Thinkphp5使用阿里大于短信验证)