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 相关文章推荐
福利彩票幸运号码自动生成器
Oct 09 PHP
杏林同学录(七)
Oct 09 PHP
PHP3 safe_mode 失效漏洞
Oct 09 PHP
php 字符串替换的方法
Jan 10 PHP
显示youtube视频缩略图和Vimeo视频缩略图代码分享
Feb 13 PHP
CodeIgniter框架过滤HTML危险代码
Jun 12 PHP
php的4种常见运行方式
Mar 20 PHP
PHP 实现浏览记录并按日期分组
May 11 PHP
php-fpm开启状态统计的方法详解
Jun 23 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
Aug 30 PHP
phpmyadmin在宝塔面板里进不去的解决方案
Jul 06 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
Aug 03 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
第七节--类的静态成员
2006/11/16 PHP
在php和MySql中计算时间差的方法
2011/04/22 PHP
php站内搜索并高亮显示关键字的实现代码
2011/12/29 PHP
php类常量用法实例分析
2015/07/09 PHP
用php实现分页效果的示例代码
2020/12/10 PHP
Alliance vs Liquid BO3 第三场2.13
2021/03/10 DOTA
javascript实现的listview效果
2007/04/28 Javascript
js 静态动态成员 and 信息的封装和隐藏
2011/05/29 Javascript
关于jquery input textare 事件绑定及用法学习
2013/04/03 Javascript
javascript中call和apply的用法示例分析
2015/04/02 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
2016/01/26 Javascript
JS实现提示框跟随鼠标移动
2019/08/27 Javascript
js实现贪吃蛇小游戏
2019/10/29 Javascript
JavaScript如何使用插值实现图像渐变
2020/06/28 Javascript
js实现可爱的气泡特效
2020/09/05 Javascript
[03:19]2016国际邀请赛中国区预选赛第四日TOP10镜头集锦
2016/07/01 DOTA
Python实现视频下载功能
2017/03/14 Python
Python2.7下安装Scrapy框架步骤教程
2017/12/22 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
2018/05/10 Python
python实战教程之自动扫雷
2018/07/13 Python
Python3.4学习笔记之类型判断,异常处理,终止程序操作小结
2019/03/01 Python
python实现批量视频分帧、保存视频帧
2019/05/31 Python
使用matlab或python将txt文件转为excel表格
2019/11/01 Python
简单了解python中的f.b.u.r函数
2019/11/02 Python
Python中的 ansible 动态Inventory 脚本
2020/01/19 Python
CSS3 特效范例整理
2011/08/22 HTML / CSS
html5文字阴影效果text-shadow使用示例
2013/07/25 HTML / CSS
基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例
2017/07/31 HTML / CSS
Watchshop德国:欧洲在线手表No.1
2019/06/20 全球购物
财务会计专业毕业生自荐信
2013/10/19 职场文书
大学生暑期实践感言
2014/02/26 职场文书
《埃及的金字塔》教学反思
2014/04/07 职场文书
2016教师学习党章心得体会
2016/01/15 职场文书
幼儿体育课教学反思
2016/02/16 职场文书
Python Django模型详解
2021/10/05 Python
vmware虚拟机打不开vmx文件怎么办 ?vmware虚拟机vmx文件打开方法
2022/04/08 数码科技