摘要:本方法基于,用到了,当然具体项目中也可以不用,下面我就按步骤来写下来。
本方法基于Thinkphp,用到了jquery.validate,当然具体项目中也可以不用,下面我就按步骤来写下来。
1.准备1.登陆
http://www.alidayu.com,进入网址
用淘宝号登陆即可
2.进入管理中心
3.配置
(1)配置短信签名
(2)配置短信模板
建好后,需要的东西就是APPkey APPsecret
还可以进行测试
引入
下载阿里大于类文件,放在/Thinkphp/Library/org/Alidayu(文件夹要大写,坑过自己,部署到服务器后出问题)
通用类里
// 生成短信验证码 public function createSMSCode($length = 4){ $min = pow(10 , ($length - 1)); $max = pow(10, $length) - 1; return rand($min, $max); } //发送验证码 public function send_phone($phone){ $code=$this->createSMSCode($length = 4); import("Org.Alidayu.top.TopClient"); import("Org.Alidayu.top.ResultSet"); import("Org.Alidayu.top.RequestCheckUtil"); import("Org.Alidayu.top.TopLogger"); import("Org.Alidayu.top.request.AlibabaAliqinFcSmsNumSendRequest"); $c = new TopClient; $appkey="你的appkey"; $secret="你的secret; $c ->appkey = $appkey ; $c ->secretKey = $secret ; $req = new AlibabaAliqinFcSmsNumSendRequest; $req ->setExtend( "" ); $req ->setSmsType( "normal" ); $req ->setSmsFreeSignName( "阿尚测试" ); $req ->setSmsParam( "{name:"客户",code:"".$code."",time:"5分钟"}" ); $req ->setRecNum( $phone); $req ->setSmsTemplateCode( "SMS_71300157" ); $resp = $c ->execute( $req ); $this->sendMsgResult($resp,$phone,$code); } //验证手机号是否发送成功 前端用ajax,发送成功则提示倒计时,如50秒后可以重新发送 private function sendMsgResult($resp,$phone,$code){ if ($resp->result->success && !$resp->result->code) { $data["phone"]=$phone; $data["code"]=$code; $data["send_time"]=time(); $result=M("code")->add($data); if($result){ $data="发送成功"; }else{ $data="发送失败"; } } else if ($resp->code || $resp->msg == "Remote service error") { $data="发送失败"; } else { $data="发送失败"; } return $data; } // 验证短信验证码是否有效,前端用jquery validate的remote public function checkSMSCode(){ $mobile = $_POST["mobile"]; $code = $_POST["code"]; $nowTimeStr = date("Y-m-d H:i:s"); $smscodeObj = M("code")->where("mobile="$mobile"")->find(); if($smscodeObj){ $smsCodeTimeStr = $smscodeObj["send_time"]; $recordCode = $smscodeObj["code"]; $flag = $this->checkTime($nowTimeStr, $smsCodeTimeStr); if($flag&&$code==$recordCode){ echo true; }else{ echo false; } } }
用的类里,我是放在注册类里调用
//发送短信,调用BaseController里的方法,因为其他模块也要用到这方法
public function send_message(){ $phone=I("post.phone"); //data返回失败 但不影响使用 $data=$this->send_phone($phone); $this->ajaxReturn($data,"JSON"); }4.前台 ajax部分功能已经具备,还待完善
//发送手机ajax function send_message() { if($("#phone input").valid()){ var phone=$("#phone input").val(); $.post("{:U("Register/send_message")}","phone="+phone,function(data){ }); $("#send_message").html("发送成功"); $("#send_message").css("background-color","#2f9cff"); } }by the way 欢迎交流 QQ755092893
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/23256.html
摘要:之前使用的阿里大于,不过很坑的是,新接入的都不能用了,融入进了阿里云服务,当然阿里大于的老用户还可以继续用阿里大于首先还是接入,上图找到短信服务设置短信签名和短信模板设置或找到或下载文档打开下载下来的文档,只需要,将其改名为,并放到项目根目 之前使用的阿里大于,不过很坑的是,新接入的都不能用了,融入进了阿里云服务,当然阿里大于的老用户还可以继续用阿里大于 首先还是接入,上图: (1)找...
摘要:新版下载下来,集成了很多东西,自己看着都烦,不多说,上源码我写了两个类线上地址公共参数发送短信电话号码短信签名短信模板代码短信模板参数缺少参数缺少参数缺少参数缺少参数计算签名网络请求 新版sdk下载下来,集成了很多东西,自己看着都烦,不多说,上源码我写了两个类AliSms.class.php class AliSms { //线上地址 const API_DOAMIN = http:/...
摘要:前言注册时经常需要用到短信验证码,本文记录一下思路和具体实现。短信验证平台使用云片,短信验证码的生成使用。云片发送短信验证码到指定手机号。用户输入短信验证码。 前言 注册时经常需要用到短信验证码,本文记录一下思路和具体实现。短信验证平台使用云片,短信验证码的生成使用thinkphp。 思路 1、用户输入手机号,请求获取短信验证码。2、thinkphp生成短信验证码,存储,同时和其他参数...
阅读 1936·2021-11-15 17:58
阅读 2130·2021-10-19 11:45
阅读 3481·2021-09-02 15:40
阅读 2594·2021-07-25 10:50
阅读 3744·2019-08-30 15:56
阅读 3145·2019-08-30 12:44
阅读 1026·2019-08-26 13:38
阅读 1868·2019-08-23 18:29