PHP实现阿里大鱼短信验证的实例代码


Posted in PHP onJuly 10, 2017

最近想实现PHP实现短信验证的效果,做PC网站的时候,可以通过注册用户需要使用短信验证的功能,或者找回密码,以及验证用户的信息等等功能,发现了阿里大鱼。留个笔记

第一步

登陆阿里大于注册账号,在用户管理中心创建应用,确定AppKEY和App Secret还有配置签名

PHP实现阿里大鱼短信验证的实例代码

PHP实现阿里大鱼短信验证的实例代码

第二步

在应用管理中选择SDK下载,或者直接点击https://3water.com/softs/312325.html下载,免费的哦亲

把下载好的资源解压放到ThinkPHP\Library\Vendor目录下如图

PHP实现阿里大鱼短信验证的实例代码PHP实现阿里大鱼短信验证的实例代码

并不是所有的php文件都需要,就用如图所示Alidayu文件夹下那几个php文件,把Alidayu里面的php文件分别打开,在开始的一行添加代码(如果你下载的来自我发的链接,那就没必要添加这个代码了,因为我添加过了)

namespace Vendor\Alidayu;

目的是为了在调用的时候不至于引入失败

第三步

可以写HTML了

<div class="form-group">
 <div class="field field-icon-right">
  <input type="text" id="admin" class="input" name="admin" placeholder="用户名" data-validate="required:请填写用户名,length#>=5:用户长度不符合要求" />
  <span class="icon icon-user"></span>
 </div>
</div>
<div class="form-group">
 <div class="field field-icon-right">
  <input id="mobile" type="tel" class="input" name="mobile" placeholder="手机号码" onblur="checkmobile(this)" />
  <span class="icon icon-mobile"></span>
 </div>
</div>
<button id="sendmsg">获取验证码</button>

第四步

写入JQ代码(功能是,发送验证码后倒计时,并且POST传递后台,后台返回的数据0,1,2分别对应不同的功能)这段代码是参考别人的

<script >

 /*-------------------------------------------*/
 var InterValObj; //timer变量,控制时间
 var count = 60; //间隔函数,1秒执行
 var curCount;//当前剩余秒数
 var code = ""; //验证码
 var codeLength = 6;//验证码长度

 $(function () {
  $('#sendmsg').click(function () {
   $.ajax({
    type: "POST",
    url: "/User/folder/child/obtainyzm",
    data: "admin=" + $('#admin').val()+"&mobile="+$("#mobile").val() ,
    success: function (result) {
     if(result==0){
      curCount = count;
      //设置button效果,开始计时
      $("#sendmsg").css("background-color", "LightSkyBlue");
      $("#sendmsg").attr("disabled", "true");
      $("#sendmsg").val("获取" + curCount + "秒");
      InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次
      // alert("验证码发送成功,请查收!");
     }
     if(result==1){

      alert("用户名和手机号不匹配!");
     }
     if(result==2){

      alert("用户名不存在!");
     }

    },
    dataType: 'json'

   })
  })
 })

 function SetRemainTime() {

  if (curCount == 0) {
   window.clearInterval(InterValObj);//停止计时器
   $("#sendmsg").removeAttr("disabled");//启用按钮
   $("#sendmsg").css("background-color", "");
   $("#sendmsg").val("重发验证码");
   code = ""; //清除验证码。如果不清除,过时间后,输入收到的验证码依然有效
  }
  else {
   curCount--;
   $("#sendmsg").val("获取" + curCount + "秒");
  }
 }
</script>

上面有两个参数admin和mobile分别代表用户名和手机号码。

第五步

写入功能代码

public function obtainyzm(){

 $mobile = $_POST['mobile'];//获取手机号码
 $admin =$_POST['admin'];//获取用户名

 $user = M('db_admin')->where(array('admin'=>$admin))->find();

 /************引入*************/
 Vendor('Alidayu.TopClient');
 Vendor('Alidayu.AlibabaAliqinFcSmsNumSendRequest');
 Vendor('Alidayu.ResultSet');
 Vendor('Alidayu.RequestCheckUtil');

 $c = new \Vendor\Alidayu\TopClient;
 $req = new \Vendor\Alidayu\AlibabaAliqinFcSmsNumSendRequest;

 /*************配置***************/
 $code = randCode(4);//随机验证码
 $c->appkey = '23******';
 $c->secretKey = '6f73a******************';
 $req->setSmsType("normal");
 $req->setSmsFreeSignName("xx的测试");
 $req->setSmsParam("{code:'$code'}");
 $req->setRecNum("$mobile");
 $req->setSmsTemplateCode("SMS_3******");

 if($user)
 {
  if($user['mobile'] == $mobile)
  {
   /*************发送验证码短信,并把验证码作为新密码保存到服务器上***************/
   //$c->execute($req); //不要开启,开启后就会有短信到账,一次几分钱..在服务器上看新密码就好
   $newpwd['pwd'] = md5($code);
   D('db_admin')->where(array('admin'=>$user['admin']))->save($newpwd);
   $this->ajaxreturn(0);//用户名密码匹配
  }
  else
  {
   $this->ajaxreturn(1);//用户名和手机号不匹配
  }
 }
 else
 {
  $this->ajaxreturn(2); //用户名不存在
 }
 $this->display();
}//获取验证码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP无限分类的类
Jan 02 PHP
PHP面向对象分析设计的61条军规小结
Jul 17 PHP
PHP日期处理函数 整型日期格式
Jan 12 PHP
PHP+Ajax异步通讯实现用户名邮箱验证是否已注册( 2种方法实现)
Dec 28 PHP
页面乱码问题的根源及其分析
Aug 09 PHP
php读取mysql中文数据出现乱码的解决方法
Aug 16 PHP
推荐5款跨平台的PHP编辑器
Dec 25 PHP
微信支付开发交易通知实例
Jul 12 PHP
php compact 通过变量创建数组
Nov 15 PHP
浅谈PHP中的错误处理和异常处理
Feb 04 PHP
PHP实现的redis主从数据库状态检测功能示例
Jul 20 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 27 PHP
yii2局部关闭(开启)csrf的验证的实例代码
Jul 10 #PHP
PHP实现登陆并抓取微信列表中最新一组微信消息的方法
Jul 10 #PHP
PHP基于socket实现的简单客户端和服务端通讯功能示例
Jul 10 #PHP
PHP正则匹配操作简单示例【preg_match_all应用】
Jul 10 #PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
Jul 10 #PHP
form自动提交实例讲解
Jul 10 #PHP
利用php的ob缓存机制实现页面静态化方法
Jul 09 #PHP
You might like
德劲1104的电路分析与改良
2021/03/01 无线电
谈谈PHP语法(3)
2006/10/09 PHP
浅析php中三个等号(===)和两个等号(==)的区别
2013/08/06 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
2017/07/04 PHP
thinkPHP+LayUI 流加载实现功能
2019/09/27 PHP
JSON 入门指南 想了解json的朋友可以看下
2009/08/26 Javascript
与Math.pow 相反的函数使用介绍
2014/08/04 Javascript
浅谈jquery回调函数callback的使用
2015/01/30 Javascript
javascript判断css3动画结束 css3动画结束的回调函数
2015/03/10 Javascript
text-align:justify实现文本两端对齐 兼容IE
2015/08/19 Javascript
体验jQuery和AngularJS的不同点及AngularJS的迷人之处
2016/02/02 Javascript
快速掌握Node.js模块封装及使用
2016/03/21 Javascript
javascript 组合按键事件监听实现代码
2017/02/21 Javascript
JavaScript编写一个贪吃蛇游戏
2017/03/09 Javascript
jquery将标签元素的高设为屏幕的百分比
2017/04/19 jQuery
NodeJS实现图片上传代码(Express)
2017/06/30 NodeJs
vue router下的html5 history在iis服务器上的设置方法
2017/10/18 Javascript
详解微信小程序审核不通过的解决方法
2018/01/17 Javascript
vue js秒转天数小时分钟秒的实例代码
2018/08/08 Javascript
JavaScript之Blob对象类型的具体使用方法
2019/11/29 Javascript
vue实现全屏滚动效果(非fullpage.js)
2020/03/07 Javascript
jQuery实现简单飞机大战
2020/07/05 jQuery
原生JS实现多条件筛选
2020/08/19 Javascript
如何在Express4.x中愉快地使用async的方法
2020/11/18 Javascript
python类装饰器用法实例
2015/06/04 Python
python实现聊天小程序
2018/03/13 Python
Windows下Python3.6安装第三方模块的方法
2018/11/22 Python
Html5 postMessage实现跨域消息传递
2016/03/11 HTML / CSS
Hammitt官网:设计师手袋
2020/05/23 全球购物
毕业生个人的求职信范文
2013/12/03 职场文书
简历自我评价模版
2014/01/31 职场文书
幼儿园国庆节活动方案
2014/02/01 职场文书
爱岗敬业演讲稿
2014/05/05 职场文书
新文化运动的口号
2014/06/21 职场文书
小学教师暑期培训方案
2014/08/28 职场文书
三好学生个人总结
2015/02/15 职场文书