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) 类和对象
Feb 16 PHP
Function eregi is deprecated (解决方法)
Jun 21 PHP
深入PHP许愿墙模块功能分析
Jun 25 PHP
php加密解密实用类分享
Jan 07 PHP
PHP解码unicode编码的中文字符代码分享
Aug 13 PHP
php生成二维码
Aug 10 PHP
PHP编程基本语法快速入门手册
Jan 07 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
Mar 07 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
Sep 29 PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
Oct 19 PHP
PHP实现的多维数组去重操作示例
Jul 21 PHP
Laravel基础-关于引入公共文件的两种方式
Oct 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
第六节 访问属性和方法 [6]
2006/10/09 PHP
使用sockets:从新闻组中获取文章(二)
2006/10/09 PHP
PHP新手上路(七)
2006/10/09 PHP
PHP防范SQL注入的具体方法详解(测试通过)
2014/05/09 PHP
Codeigniter实现处理用户登录验证后的URL跳转
2014/06/12 PHP
thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解
2019/07/15 PHP
js 匿名调用实现代码
2009/06/19 Javascript
JQuery表格内容过滤的实现方法
2013/07/05 Javascript
jQuery中parents()方法用法实例
2015/01/07 Javascript
jQuery实现冻结表头的方法
2015/03/09 Javascript
jquery使用animate方法实现控制元素移动
2015/03/27 Javascript
基于jquery实现复选框全选,反选,全不选等功能
2015/10/16 Javascript
javascript自动切换焦点控制效果完整实例
2016/02/02 Javascript
js+css实现select的美化效果
2016/03/24 Javascript
JS实现将数字金额转换为大写人民币汉字的方法
2016/08/02 Javascript
Node.js下自定义错误类型详解
2016/10/17 Javascript
bootstrap配合Masonry插件实现瀑布式布局
2017/01/18 Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
2018/04/25 Javascript
jQuery实现获取多选框的值示例
2020/02/07 jQuery
Python实现检测服务器是否可以ping通的2种方法
2015/01/01 Python
Python基础教程之浅拷贝和深拷贝实例详解
2017/07/15 Python
微信跳一跳python辅助软件思路及图像识别源码解析
2018/01/04 Python
python制作简单五子棋游戏
2019/06/18 Python
python读取ini配置的类封装代码实例
2020/01/08 Python
解决windows下python3使用multiprocessing.Pool出现的问题
2020/04/08 Python
Guess美国官网:美国知名服装品牌
2019/04/08 全球购物
英国电子产品购物网站:Tech in the basket
2019/11/08 全球购物
网页设计个人找工作求职信
2013/11/28 职场文书
文案策划求职信
2014/04/14 职场文书
关于中国梦的演讲稿
2014/04/23 职场文书
婚前协议书标准版
2014/10/19 职场文书
社区灵活就业证明
2014/11/03 职场文书
2015新员工试用期工作总结
2014/12/12 职场文书
酒店工程部岗位职责
2015/02/12 职场文书
如何撰写促销方案?
2019/07/05 职场文书
vue route新窗口跳转页面并且携带与接收参数
2022/04/10 Vue.js