THINKPHP之阿里大鱼短信接口
来源:互联网 发布:golang java 编辑:程序博客网 时间:2024/05/03 03:09
1、前端部分:
<script type="text/javascript"> function runReg() { var name=$.trim($("#username").val()); var pwd = $.trim($("#pwd").val()); var repwd = $.trim($("#repwd").val());var telphone=$('#telphone').val();var code=$('#rcode').val();var myreg = /^1\d{10}$/; if(name == "") { alert("请填写用户名!"); return false; } else if(pwd == "") { alert('请填写密码!'); return false; } else if(repwd == "") { alert('请填写重复密码!'); return false; } else if(pwd != repwd) { alert("两次密码不一致,请重新输入!"); $("#username").val(""); $("#username").focus(); return false; }else if(telphone.length!=11){alert('请输入正确的11位电话号码!');return false;}else if(!myreg.test(telphone)){alert('请输入有效的手机号码!');return false;}else if(code.length!=4){alert('请输入正确的4位验证码!');return false;} else { var urlstr = "/Index/Index/runregist"; $.ajax({ type: "POST", url: urlstr, data: "name="+name+"&pwd="+pwd+"&telphone="+telphone+"&code="+code, dataType: 'json', contentType: "application/x-www-form-urlencoded", async:false, success: function(msg){if(msg.result == "ok"){alert("恭喜您注册成功,请进入登入页面登入");location.href='/userlogin.html';}else if(msg.result == "re"){alert("此用户名已被占用,请重新填写!");}else if(msg.result == "err1"){alert("您输入的手机号不匹配,请重新输入!");}else if(msg.result == "err2"){alert("您输入的验证码已过时!");}else if(msg.result == "err3"){alert("您输入的验证码不正确,请重新输入!");}else if(msg.result == "err4"){alert("此手机号已被注册,请重新填写!");} }, error : function(XMLHttpRequest, textStatus, errorThrown) { alert(errorThrown); } }); return true; } }//倒计时var times = 60;function waitTime() {if (times == 0) {$("#codeButton").removeAttr("disabled").val("重新获取验证码");times = 60;} else {$("#codeButton").attr("disabled", true).val("在(" + times + ")秒后重新发送");times--;setTimeout(function() {waitTime()},1000)}}//发送验证码function codeCheck(){var telphone=$('#telphone').val();var urlstr = "/Index/Index/registCode";if(telphone.length!=11){alert('请输入正确的11位电话号码!');return true;}var myreg = /^1\d{10}$/; if(!myreg.test(telphone)) { alert('请输入有效的手机号码!'); return true; }$.ajax({ type: "GET", url: urlstr, data: {telphone:telphone}, success: function(data){ waitTime();} });} </script>
<div class="registdiv"><div class="registname">用户注册</div><table width="500" height="138" border="0"> <tr> <td width="100" align="right">用户名:</td> <td colspan="2" width="300"><input type="text" class="retest" id="username" name="username" /></td> </tr> <tr> <td colspan="3"> </td> </tr> <tr> <tr> <td align="right">密码:</td> <td colspan="2"><input type="password" class="retest" id="pwd" name="pwd" /></td> </tr> <tr> <td colspan="3"> </td> </tr> <tr> <td align="right">重复密码:</td> <td colspan="2"><input type="password" class="retest" id="repwd" name="repwd" /></td> </tr> <tr> <td colspan="3"> </td> </tr> <tr> <td align="right">手机号码:</td> <td width="200"><input type="text" class="retest" id="telphone" name="telphone" /></td> <td width="200"><input type="button" onClick="codeCheck();" id="codeButton" style="width:130px; margin:0 auto; height:30px; line-height:30px; display:block;" value="获取验证码" /></td> </tr> <tr> <td colspan="3"> </td> </tr> <tr> <td align="right">验证码:</td> <td colspan="2"><input type="text" class="retest" id="rcode" name="rcode" size="6" /></td> </tr></table><p><input type="button" id="regist" name="regist" value="注册" class="btnregist" onClick="runReg()"/></p></div>2、SDK下载下来之后修改名字为【alidayu】,放在我们的项目的核心目录,\ThinkPHP\Extend\Vendor文件夹下面
文件只保留如下2个文件夹和2个文件其他删除即可
3、代码部分:
######**********阿里大鱼*******########
//阿里大鱼发送短信函数 public function sendAli($telphone,$randomCode){ vendor('alidayu.top.TopClient'); vendor('alidayu.top.ResultSet'); vendor('alidayu.top.RequestCheckUtil'); vendor('alidayu.top.TopLogger'); vendor('alidayu.top.request.AlibabaAliqinFcSmsNumSendRequest'); include "TopSdk.php"; date_default_timezone_set('Asia/Shanghai'); $c = new \TopClient; $c->appkey = '23524266'; $c->secretKey = 'b421d9dd6deeb0a0e903e4a94b3e5d38'; $req = new \AlibabaAliqinFcSmsNumSendRequest; $req ->setExtend( "123456" );//固定参数 $req ->setSmsType( "normal" );//固定参数 $req ->setSmsFreeSignName( "XXXX网" );//来源于配置短信签名 下面列表中有签名名称 $number = $randomCode; $time = 10; $req ->setSmsParam( "{number:'{$number}',time:'{$time}'}" ); //变量来源于 配置短信模板 点击列表中的详情 模板内容的变量 $req ->setRecNum($telphone); //手机号 $req ->setSmsTemplateCode("SMS_123456"); //配置短信模板 列表中有模板id $resp = $c ->execute( $req );//$content = 您将要绑定本号码作为您在XXXX网中的手机号码。手机验证码为:${number},此验证码${time}分钟以内有效!; //内容//object(SimpleXMLElement)#8 (2) { ["result"]=> object(SimpleXMLElement)#7 (3) { ["err_code"]=> string(1) "0" ["model"]=> string(26) "104469829648^1106082240893" ["success"]=> string(4) "true" } ["request_id"]=> string(13) "10fk2epu4bw4l" }if($resp->result->success && !$resp->result->code){//发送成功return 1;}else if($resp->code || $resp->msg =="Remote service error"){//发送失败return 0;}else{//未知情况return 0;} }//追加手机验证码 public function registCode() {$telphone=$_GET['telphone'];$randomCode=$this->randCode(4,1);$res = $this->sendAli($telphone , $randomCode);if($res){$_SESSION['registTelphone']=$telphone;$_SESSION['registCode']=$randomCode;$_SESSION['time']=time();$this->success('短信已成功发送至您的手机,请注意查收!');$this->assign('jumpUrl',U('/Index/regist'));}else{$this->assign('jumpUrl',U('/Index/regist'));$this->error('发送失败!');}}/** +---------------------------------------------------------- * 生成随机字符串 +---------------------------------------------------------- * @param int $length 要生成的随机字符串长度 * @param string $type 随机码类型:0,数字+大写字母;1,数字;2,小写字母;3,大写字母;4,特殊字符;-1,数字+大小写字母+特殊字符 +---------------------------------------------------------- * @return string +---------------------------------------------------------- */function randCode($length = 5, $type = 0) {$arr = array(1 => "0123456789", 2 => "abcdefghijklmnopqrstuvwxyz", 3 => "ABCDEFGHIJKLMNOPQRSTUVWXYZ", 4 => "~@#$%^&*(){}[]|");if ($type == 0) {array_pop($arr);$string = implode("", $arr);} else if ($type == "-1") {$string = implode("", $arr);} else {$string = $arr[$type];}$count = strlen($string) - 1;for ($i = 0; $i < $length; $i++) {$str[$i] = $string[rand(0, $count)];$code .= $str[$i];}return $code;}/** +---------------------------------------------------------- * 生成随机字符串 +---------------------------------------------------------- * @param int $length 要生成的随机字符串长度 * @param string $type 随机码类型:0,数字+大写字母;1,数字;2,小写字母;3,大写字母;4,特殊字符;-1,数字+大小写字母+特殊字符 +---------------------------------------------------------- * @return string +---------------------------------------------------------- */######**********阿里大鱼*******########//注册 public function runregist() {########*******追加手机注册******############$telphone=$_POST['telphone'];$code=$_POST['code'];$reg_error=1;if($telphone!=$_SESSION['registTelphone']){$reg_error=2;}if((time()-intval($_SESSION['time']))>10*60){$reg_error=3;}if($code!=$_SESSION['registCode']){$reg_error=4;}$rgtel = M('member')->where(array('tel'=>$telphone))->find();if(count($rgtel) >0){ $reg_error=5;}$info['tel']=$telphone;########*******追加手机注册******############ $info['username'] = $_POST['name']; $info['password'] = I('pwd','','md5'); $info['schoolid']= I('post.schoolid');$info['school']=I('post.schoolname'); $user = M('member')->where(array('username'=>I('post.name')))->find(); $result = 'no'; if(count($user) >0){ $result = 're';}else{if($reg_error==1){M('member')->add($info); $result = 'ok';}else if($reg_error==2){$result = 'err1';}else if($reg_error==3){$result = 'err2';}else if($reg_error==4){$result = 'err3';}else if($reg_error==5){$result = 'err4';}} print json_encode(array('reg_error'=>$reg_error,'result'=>$result)); }
注意:阿里大鱼注册、应用创建、配置管理【验证码】、下载API接口等自行看指南
1 0
- THINKPHP之阿里大鱼短信接口
- thinkphp使用阿里大鱼短信接口
- thinkphp使用阿里大鱼短信接口
- 阿里大鱼短信接口:
- Laravel 阿里大鱼短信接口
- php短信接口(阿里大鱼)
- 阿里大鱼短信接口(Python3版)
- Java调用 阿里大鱼 短信接口
- 阿里大鱼短信接口PHP版,精简版阿里大鱼短信SMS发送接口PHP实例
- 阿里大鱼 短信验证
- 阿里大鱼 短信使用
- 阿里大鱼短信demo
- 阿里大鱼短信
- 阿里大鱼发送短信
- 阿里大鱼短信
- 阿里大鱼短信接入
- 阿里大于短信接口thinkphp
- 阿里大鱼,阿里短信,laravel5
- 电子面单接口申请对接说明
- 随手指滑动小球
- 算法训练 关联矩阵
- 欢迎使用CSDN-markdown编辑器
- android fragment中 ScrollView嵌套ListView以及切换时scrollView显示底部的解决
- THINKPHP之阿里大鱼短信接口
- 字符设备驱动第十四课----IO读写
- android Manifest.xml选项(部分属性用法详解)
- centos7 安装tomcat
- 手势的创建与识别
- linux 批量替换文件内容及查找某目录下所有包含某字符串的文件(批量修改文件内容)
- bzoj1178: [Apio2009]CONVENTION会议中心
- 【51nod 1711】平均数
- spring学习笔记----通过注解配置Bean(1)