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 5.0对象模型深度探索之绑定
Sep 05 PHP
PHP通用检测函数集合
Nov 25 PHP
PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象
Oct 12 PHP
深入php define()函数以及defined()函数的用法详解
Jun 05 PHP
php IP转换整形(ip2long)的详解
Jun 06 PHP
基于PHPExcel的常用方法总结
Jun 13 PHP
php实现文件下载功能的几个代码分享
May 10 PHP
php简单定时执行任务的实现方法
Feb 23 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
Mar 07 PHP
PHP的命令行命令使用指南
Aug 18 PHP
Yii实现的多级联动下拉菜单
Jul 13 PHP
thinkPHP5.0框架模块设计详解
Mar 18 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
提升PHP执行速度全攻略(上)
2006/10/09 PHP
Yii学习总结之安装配置
2015/02/22 PHP
几行代码轻松实现PHP文件打包下载zip
2017/03/01 PHP
javascript插入样式实现代码
2012/02/22 Javascript
疯狂Jquery第一天(Jquery学习笔记)
2012/05/11 Javascript
javascript的console.log()用法小结
2012/05/31 Javascript
jQuery拖动图片删除示例
2013/05/10 Javascript
node.js中的fs.appendFile方法使用说明
2014/12/17 Javascript
JavaScript中document对象使用详解
2015/01/06 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
2015/03/25 Javascript
JS实现类似百叶窗下拉菜单效果
2016/12/30 Javascript
JavaScript常用正则验证函数实例小结【年龄,数字,Email,手机,URL,日期等】
2017/01/23 Javascript
angular实现页面打印局部功能的思考与方法
2018/04/13 Javascript
JS引用传递与值传递的区别与用法分析
2018/06/01 Javascript
JavaScript实用代码小技巧
2018/08/23 Javascript
javascript实现简易数码时钟
2020/03/30 Javascript
python实现的udp协议Server和Client代码实例
2014/06/04 Python
Python操作MongoDB数据库的方法示例
2018/01/04 Python
Python wxpython模块响应鼠标拖动事件操作示例
2018/08/23 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
2019/04/17 Python
python中自带的三个装饰器的实现
2019/11/08 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
2020/04/13 Python
Windows 下更改 jupyterlab 默认启动位置的教程详解
2020/05/18 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
2021/01/27 Python
浅谈matplotlib默认字体设置探索
2021/02/03 Python
html5新增的属性和废除的属性简要概述
2013/02/20 HTML / CSS
在印度上传处方,在线订购药品:Medlife
2019/03/28 全球购物
航空大学应届生求职信
2013/11/10 职场文书
建筑院校毕业生求职信
2014/06/13 职场文书
自查自纠整改报告
2014/11/06 职场文书
2014年行政助理工作总结
2014/11/19 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
求职信格式范文
2015/03/19 职场文书
反腐倡廉学习心得体会范文
2015/08/15 职场文书
大学优秀学生主要事迹材料
2015/11/04 职场文书
Python requests库参数提交的注意事项总结
2021/03/29 Python