• 全国400电话网上服务平台
    强大号码库资源任选,方便,快捷,快速开通。
    咨询热线:400-1100-266  

    dedecms织梦短信接口插件代码(微米短信平台)
    POST TIME:2021-05-23 02:52

    本教程织梦短信接口插件代码基于微米短信平台(www.weimi.cc)的一个织梦短信接口。织梦58分享给大家。

    具体代码

     

    1、存储验证码到数据库,需要新建建一个数据表。 后台 ---- 系统 ---- sql命令行工具,运行以下代码:(注意表前缀)

    1
    2
    3
    4
    5
    6
    7
    8
    9
      DROP TABLE IF EXISTS `dede_sms`; 
        CREATE TABLE `dede_sms` ( 
          `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
          `phone` varchar(15) NOT NULL DEFAULT '', 
          `code` varchar(8) NOT NULL DEFAULT '', 
          `created_at` int(10) NOT NULL DEFAULT '0', 
          `expire_at` int(10) NOT NULL DEFAULT '0', 
          PRIMARY KEY (`id`) 
        ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=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('Request Error!'); 
          
        //发送短信 
        //$cid 短信模板CID 
        function sendSms($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,数字+大小写字母+特殊字符 
        function createRandomCoder($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; 
        } 
          
        //保存验证码 
        function saveCode($phone,$code,$time = 5) 
        { 
            global $dsql; 
            $created_at = time(); 
            $expire_at = time() + ($time * 60); 
            $code = strtolower($code); 
            $sql = "INSERT INTO `dede_sms`(`phone`,`code`,`created_at`,`expire_at`) VALUES ('$phone','$code','$created_at','$expire_at')"; 
            return $dsql->ExecuteNoneQuery($sql); 
        } 
          
        //检查手机号,验证码 
        function validateCode($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)){ 
                return true; 
            }else{ 
                return false; 
            } 
        } 
          
        //检查是否发送:防止恶意刷短信 
        //$phone 手机号 www.dede58.com织梦模板下载
        //$time  有效时间 (分钟) 
        function validatePremise($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'] ){ 
                    return false; 
                }else{ 
                    $dsql->ExecuteNoneQuery("DELETE FROM `dede_sms` WHERE id=".$row['id']); 
                } 
            } 
            return true; 
        }

     

    提示:表的前缀改为你的表前缀,这样就完成了织梦短信接口。


    
    关于我们 | 付款方式 | 建站知识 | 增值服务 | 网站模板
    Copyright © 2003-2016
    时间:9:00-21:00 (节假日不休)
    版权所有:巨人网络(扬州)科技有限公司
    总部地址:江苏省信息产业基地11号楼四层
    《增值电信业务经营许可证》 苏B2-20120278
    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信

    微信号已复制,请打开微信添加咨询详情!