ThinkPHP5结合云之讯短信验证简单案例

ThinkPHP5结合云之讯短信验证简单案例

总体思路:

我这里以用户注册短信验证分析:
       在用户输入正确的手机号码点击注册按钮时,使用Ajax发送一个我们手动生成的验证码和手机号码一起发送到云之讯的服务后台接口,之后你的手机就会收到我们手动生成的验证码,在第一个Ajax返回成功后再发送Ajax到我们的ThinkPHP后台,同时带上用户注册输入的验证码和我们手动生成的验证码还有手机号码一起验证这两个验证码是否相同,相同就验证通过,不同就提示输入的验证码不正确。

流程如下图:
在这里插入图片描述


开发步骤:

  1. 注册和登录云之讯官网,新用户好像有体验余额。

  2. 创建模板
    在这里插入图片描述

  3. 下载SDK文件
    在这里插入图片描述

  4. 将下载的SDK文件整合到ThinkPHP项目中
    在这里插入图片描述

  5. 打开Send.php文件,配置云之讯接口参数
    在这里插入图片描述
    在这里插入图片描述
    相关参数一定要一一对应。

  6. 编写测试代码

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>云之讯短信验证测试</title>
<script src="/public/__STATIC__/layui/jquery-3.4.0.min.js"></script>
</head>
<body>
	测试手机号:<input type="text" name="phone" id="phone">
	手机验证码:<input type="text" name="yzm" id="yzm">
	<input type="hidden" name="back_yzm" id="back_yzm">
	<button id="getcode">点击获取验证码</button>
	<button id="zhuce">注册</button>
</body>
<script type="text/javascript">
  $(function(){
        //注册操作
        $("#zhuce").click(function(){
    	    $.ajax({
               url:'{:url("/index/Zhuce/dozhuce")}',
               data:{'phone':$("#phone").val(),'back_yzm':$("#back_yzm").val(),'yzm':$('#yzm').val()},
               type:"POST",
               success:function(data){
                  alert(data)
               }
           })
        })
        //获取手机验证码
      $("#getcode").click(function(){
           $.ajax({
               url:'{:url("/index/Zhuce/getcode")}',
               data:{'phone':$("#phone").val()},
               type:"GET",
               success:function(data){
                 $("#back_yzm").val(data.back_yzm)
               	 console.log(data)
               	 alert("验证码已发送到你的手机,请验证!")
               }
           })
      })
  })
</script>
</html>

前端界面如下:
在这里插入图片描述
后台代码:

<?php
namespace app\index\controller;
use think\Controller;
use sms\Send;   //引用云之讯SDK文件

class Zhuce 
{

   public function zhuce_view(){

       return view('zhece/zhuce_view');

   }
  
   public function getcode(){
   	   $phone = $_GET['phone'];
        //生成六位数的随机验证码
   	    $authnum=null;
        srand((double)microtime()*1000000);//create a random number feed.
        $ychar="0,1,2,3,4,5,6,7,8,9";
        $list=explode(",",$ychar);
        for($i=0;$i<6;$i++){
            $randnum=rand(0,9); // 10+26;
            $authnum.=$list[$randnum];
        }

        //发送该验证码和手机号到云之讯后台
        $send = new Send();
        $pin=$authnum;
        $phone=$phone;
        $send->SendSms($pin,$phone);

        //返回该验证码到前端,用于注册时校验
        $data = ['back_yzm' => $authnum, 'status' => '1'];
        return json($data);
   }

   public function dozhuce(){
   	
   	    $phone = $_POST['phone'];
   	    $yzm = $_POST['yzm'];
   	    $back_yzm = $_POST['back_yzm'];
         
         //验证码校对
   	    if($yzm==$back_yzm){
   	    	//可以做注册操作
   	    	return "注册成功";
   	    }else{
   	    	return "验证码不正确";
   	    }
   }
}

发送手机验证码短信:
在这里插入图片描述

注意:以上代码用于测试,我这里就没有做严谨的逻辑规范,只是编写大概逻辑流程代码


如果其他配置没问题的话,基本上可以进行简单的手机短信验证功能了。 END!!

注:如有缺陷或不足请反馈,我及时纠正,谢谢!!

笔记 2020-09-09

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值