位置: IT常识 - 正文
推荐整理分享dedecms织梦短信接口插件代码(微米短信平台)(织梦cms不更新了吗),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:织梦主动推送,织梦收费5800的解决方法,织梦cms为什么不维护了,织梦cms怎么样,织梦主动推送,织梦如何使用,织梦主动推送,织梦表单短信验证码,内容如对您有帮助,希望把文章链接给更多的朋友!
本教程织梦短信接口插件代码基于微米短信平台(www.weimi.cc)的一个织梦短信接口。织梦58分享给大家。
(此图片来源于网络,如有侵权,请联系删除! )
具体代码
1、存储验证码到数据库,需要新建建一个数据表。后台----系统---- sql命令行工具,运行以下代码:(注意表前缀)
123456789DROPTABLEIFEXISTS`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目录下。具体代码如下:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104<?phpif(!defined('DEDEINC'))exit('RequestError!');//发送短信//$cid短信模板CIDfunctionsendSms($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:610912p2: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;}提示:表的前缀改为你的表前缀,这样就完成了织梦短信接口。
免责
上一篇:【Java面试】带你从面试官的角度深入剖析,什么是Java虚拟机为什么要使用?(java面试相关)
友情链接: 武汉网站建设