本文主要讲解《dedecms织梦短信接口插件代码(微米短信平台)》的详细内容
本教程织梦短信接口插件代码基于微米短信平台(www.weimi.cc)的一个织梦短信接口。织梦58分享给大家。
具体代码
1、存储验证码到数据库,需要新建建一个数据表。后台----系统---- sql命令行工具,运行以下代码:(注意表前缀)
1 2 3 4 5 6 7 8 9 | DROPTABLEIFEXISTS`dede_sms`; CREATETABLE`dede_sms`( `id`int(11)unsignedNOTNULLAUTO_INCREMENT, `phone`varchar(15)NOTNULLDEFAULT'', `code`varchar(8)NOTNULLDEFAULT'', `created_at`int(10)NOTNULLDEFAULT'0', `expire_at`int(10)NOTNULLDEFAULT'0', PRIMARYKEY(`id`) )ENGINE=MyISAMAUTO_INCREMENT=1DEFAULTCHARSET=utf8; |
2、新建WMsendSms.PHP文件,放在/include目录下。具体代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | <?php if(!defined('DEDEINC'))exit('RequestError!'); //发送短信 //$cid短信模板CID functionsendSms($mob,$cid='微米短信模板查看CID') { $res=validatePremise($mob); if($res){ $ch=curl_init(); curl_setopt($ch,CURLOPT_URL,"http://api.weimi.cc/2/sms/send.html"); curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE); curl_setopt($ch,CURLOPT_POST,TRUE); /* 传入模板参数。短信模板内容示例: 【微米】您的验证码是:%P%,%P%分钟内有效。如非您本人操作,可忽略本消息。 传入两个参数: p1:610912 p2:3 最终发送内容: 【微米】您的验证码是:610912,3分钟内有效。如非您本人操作,可忽略本消息。 */ $uid='微米查看去'; $pas='微米查看去'; $p1=createRandomCoder(4); $p2=5;//分钟 curl_setopt($ch,CURLOPT_POSTFIELDS,"uid=$uid&pas=$pas&mob=$mob&cid=$cid&p1=$p1&p2=$p2&type=json"); $res=curl_exec($ch); curl_close($ch); $arr=json_decode($res,true); if($arr['code']==0){ saveCode($mob,$p1); return"短信发送成功!"; } return"短信发送失败!"; }else{ return"短信发送频繁,请稍后再发送!"; } } //生成随机字符串 //$len要生成的随机字符串长度 //$type随机码类型:0,数字+大小写字母;1,数字;2,小写字母;3,大写字母;4,特殊字符;-1,数字+大小写字母+特殊字符 functioncreateRandomCoder($len,$type='0') { $arr=array(1=>"0123456789",2=>"abcdefghijklmnopqrstuvwxyz",3=>"ABCDEFGHIJKLMNOPQRSTUVWXYZ",4=>"~@#$%^&*(){}[]|"); if($type==0){ array_pop($arr); $string=implode("",$arr); }elseif($type=="-1"){ $string=implode("",$arr); }else{ $string=$arr[$type]; } $count=strlen($string)-1; $code=''; for($i=0;$i<$len;$i++){ $code.=$string[rand(0,$count)]; } return$code; } //保存验证码 functionsaveCode($phone,$code,$time=5) { global$dsql; $created_at=time(); $expire_at=time()+($time*60); $code=strtolower($code); $sql="INSERTINTO`dede_sms`(`phone`,`code`,`created_at`,`expire_at`)VALUES('$phone','$code','$created_at','$expire_at')"; return$dsql->ExecuteNoneQuery($sql); } //检查手机号,验证码 functionvalidateCode($phone,$code) { global$dsql; $code=strtolower($code); $current=time(); $sql="SELECT`id`FROM`dede_sms`WHERE`phone`LIKE'$phone'AND`code`LIKE'$code'AND`expire_at`>'$current'"; $row=$dsql->GetOne($sql); if(is_array($row)){ returntrue; }else{ returnfalse; } } //检查是否发送:防止恶意刷短信 //$phone手机号www.dede58.com织梦模板下载 //$time有效时间(分钟) functionvalidatePremise($phone,$time='1') { global$dsql; $row=$dsql->GetOne("SELECT`id`,`expire_at`FROM`dede_sms`WHERE`phone`LIKE'$phone'"); if(is_array($row)){ if(time()<$row['expire_at']){ returnfalse; }else{ $dsql->ExecuteNoneQuery("DELETEFROM`dede_sms`WHEREid=".$row['id']); } } returntrue; } |
提示:表的前缀改为你的表前缀,这样就完成了织梦短信接口。
本网刊登的文章均仅代表作者个人观点,并不代表本网立场。文中的论述和观点,敬请读者注意判断。
2021-02-08
2021-02-24
2021-02-08
2021-02-08
2021-02-08
2021-02-08
2021-02-08
2021-02-24