宝宝计划

  • <tr id='UrG8Gx'><strong id='UrG8Gx'></strong><small id='UrG8Gx'></small><button id='UrG8Gx'></button><li id='UrG8Gx'><noscript id='UrG8Gx'><big id='UrG8Gx'></big><dt id='UrG8Gx'></dt></noscript></li></tr><ol id='UrG8Gx'><option id='UrG8Gx'><table id='UrG8Gx'><blockquote id='UrG8Gx'><tbody id='UrG8Gx'></tbody></blockquote></table></option></ol><u id='UrG8Gx'></u><kbd id='UrG8Gx'><kbd id='UrG8Gx'></kbd></kbd>

    <code id='UrG8Gx'><strong id='UrG8Gx'></strong></code>

    <fieldset id='UrG8Gx'></fieldset>
          <span id='UrG8Gx'></span>

              <ins id='UrG8Gx'></ins>
              <acronym id='UrG8Gx'><em id='UrG8Gx'></em><td id='UrG8Gx'><div id='UrG8Gx'></div></td></acronym><address id='UrG8Gx'><big id='UrG8Gx'><big id='UrG8Gx'></big><legend id='UrG8Gx'></legend></big></address>

              <i id='UrG8Gx'><div id='UrG8Gx'><ins id='UrG8Gx'></ins></div></i>
              <i id='UrG8Gx'></i>
            1. <dl id='UrG8Gx'></dl>
              1. <blockquote id='UrG8Gx'><q id='UrG8Gx'><noscript id='UrG8Gx'></noscript><dt id='UrG8Gx'></dt></q></blockquote><noframes id='UrG8Gx'><i id='UrG8Gx'></i>

                待发短信

                在线客服
                产品支持 短『信宝客服
                合作渠道 渠道合作
                服务咨询

                4001-021-502

                工作时间

                9:00-18:00

                phpcms短信接口替换

                PHPCMS V9采用PHP5+MYSQL做为※技术基础进行开发。V9采用OOP(面向对象)方式进行基础运行框架搭建。模块化开发方式做为功能开发形式。框架易于功▂能扩展,代码维护,优秀的二次开发能力,可满足所有网站的应↑用需求。今天我就来带大家来做一次替换短信接口的工作⊙。

                我们短信宝的平台Ψ极其稳定,而且短信发送速度相当快捷,验证码和订单通知在3~5秒就能收到,用户体验非常好,推荐大▓家使用。

                接下来我就来说一下开发步骤:

                1. 首先,我们先更换后台的显示界面文件。打开模板文件,替换一下模板文件。打开项目/phpcms/modules/sms/templates/index.tpl.php,替换的ㄨ代码从12行~86行,代码如下图所√示:

                ?
                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
                <div class="explain-col search-form">
                短信模块默︼认使用<a href="/" target="_blank" style="font-weight:bold;color:red;">短信宝</a>接口,
                还没有№短信宝账户,请点击<a href="/p2akm1/reg" target="_blank" style="font-weight:bold;color:red;">免费注册</a>,
                短信宝客服∏热线:400-716-3021,或联系短信宝<a href="" target="_blank" style="font-weight:bold;color:red;">在线客服</a>
                </br>
                说明:欲购买1W条以上的短信套餐以及包月套餐用户,请咨询<a href="" target="_blank" style="font-weight:bold;color:red;">在线客服</a>
                </br>
                备注:短信宝官网(/),短信宝技术交流群→:188145230
                </div>
                </form>
                <div class="btn text-l">
                <span class="font-fixh green">您当前账户为:<?php echo $this->smsapi->userid?>,短信宝账户剩余短信条数:<?php echo $smsinfo_arr?></span>
                </div><br>
                 
                <br>
                    <table width="100%" cellspacing="0">
                        <thead>
                            <tr>
                            <th width="5%" align="center"><?php echo L('product_id')?></th>
                            <th width="20%" align="left"><?php echo L('product_name')?></th>
                            <th width="30%" align="left"><?php echo L('product_description')?></th>
                            <th width="10%" align="left"><?php echo L('totalnum')?></th>
                            <th width="10%" align="left"><?php echo L('give_away')?></th>
                            <th width="10%" align="left"><?php echo L('product_price').L('yuan')?></th>
                            <th width="10%" align="left"><?php echo L('buy')?></th>
                            </tr>
                        </thead>
                    <tbody>
                    <tr>
                        <td width="10%" align="center">1</td>
                        <td width="10%" align="left">50条短信</td>
                        <td width="10%" align="left">50条短信</td>
                        <td width="10%" align="left">50</td>
                        <td width="10%" align="left">0</td>
                        <td width="10%" align="left">5</td>
                        <td width="10%" align="left"><a href="/p2akm1/member/product/list.jhtml" target="_blank">购买</a></td>
                    </tr>
                    <tr>
                        <td width="10%" align="center">2</td>
                        <td width="10%" align="left">500条短信</td>
                        <td width="10%" align="left">500条短信</td>
                        <td width="10%" align="left">500</td>
                        <td width="10%" align="left">0</td>
                        <td width="10%" align="left">40</td>
                        <td width="10%" align="left"><a href="/p2akm1/member/product/list.jhtml" target="_blank">购买</a></td>
                    </tr>
                    <tr>
                        <td width="10%" align="center">3</td>
                        <td width="10%" align="left">2000条短信</td>
                        <td width="10%" align="left">2000条短信</td>
                        <td width="10%" align="left">2000</td>
                        <td width="10%" align="left">0</td>
                        <td width="10%" align="left">150</td>
                        <td width="10%" align="left"><a href="/p2akm1/member/product/list.jhtml" target="_blank">购买</a></td>
                    </tr>
                    <tr>
                        <td width="10%" align="center">4</td>
                        <td width="10%" align="left">5000条短信</td>
                        <td width="10%" align="left">5000条短信</td>
                        <td width="10%" align="left">5000</td>
                        <td width="10%" align="left">0</td>
                        <td width="10%" align="left">375</td>
                        <td width="10%" align="left"><a href="/p2akm1/member/product/list.jhtml" target="_blank">购买</a></td>
                    </tr>
                    <tr>
                        <td width="10%" align="center">5</td>
                        <td width="10%" align="left">10000条短信</td>
                        <td width="10%" align="left">10000条短信</td>
                        <td width="10%" align="left">10000</td>
                        <td width="10%" align="left">0</td>
                        <td width="10%" align="left">700</td>
                        <td width="10%" align="left"><a href="/p2akm1/member/product/list.jhtml" target="_blank">购买</a></td>
                    </tr>
                    </tbody>
                    </table>

                打开项目/phpcms/modules/sms/templates/sms_sent.tpl.php,替换◢的代码从35行~53行,代码如下图所¤示:

                ?
                1
                2
                3
                4
                5
                6
                7
                8
                9
                10
                11
                12
                13
                14
                15
                <form name="dosubmit" action="?m=sms&c=sms&a=sms_sent" method="post" id="myform">
                    <table width="100%" class="table_form">
                        <tr>
                            <td  width="120">发送号码  <font color="#C0C0C0">(每行一个号码)</font></td>
                            <td><textarea name="mobile"></textarea></td>
                        </tr>
                        <tr></br>
                        <tr>
                        <td  width="120">发送内容  <font color="#C0C0C0">(短信群发内容)</font></td>
                        <td><textarea name="msg"></textarea></td>
                        </tr>
                    </table>
                    <div class="bk15"></div>
                    <input name="dosubmit" type="submit" value="<?php echo L('submit')?>" class="button" id="dosubmit">
                </form>

                打开项目/phpcms/modules/sms/templates/sms_setting.tpl.php,替换的代码从7行~32行,代码如下图所示:

                ?
                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
                <form name="myform" action="?m=sms&c=sms&a=sms_setting" method="post" id="myform">
                    <table width="100%" class="table_form">
                        <tr>
                            <td  width="120"><?php echo L('sms_enable')?></td>
                            <td>
                                <input name="setting[sms_enable]" value="1" type="radio" id="sms_enable" <?php if($this->sms_setting[sms_enable] == 1) {?>checked<?php }?>> <?php echo L('open')?> 
                                <input name="setting[sms_enable]" value="0" type="radio" id="sms_enable" <?php if($this->sms_setting[sms_enable] == 0) {?>checked<?php }?>> <?php echo L('close')?>
                            </td>
                        </tr>
                        <tr>
                            <td  width="120">短信宝用户名  <font color="#C0C0C0"></font></td>
                            <td>
                                <input type="text" name="setting[userid]" size="20" placeholder="填写你在短信宝注册的用户名" value="<?php echo $this->sms_setting[userid]?>" id="userid">
                            </td>
                        </tr>
                        <tr>
                            <td  width="120">短信宝密码 <font color="#C0C0C0"></font></td>
                            <td>
                                <label>
                                    <input type="input" id="sms_key" name="setting[sms_key]" value="<?php echo $this->sms_setting[sms_key]?>" size="50">
                                    <input type="hidden" name="pc_hash" value="<?php echo $_GET['pc_hash'];?>" size="50">
                                </label>
                            </td>
                        </tr>
                        <tr>
                            <td  width="120">短信签名 <font color="#C0C0C0"></font></td>
                            <td>
                                <input type="text" name="setting[productid]" size="20" placeholder="填写你所发送短信的签名" value="<?php echo $this->sms_setting[productid]?>" id="productid">
                            </td>
                        </tr>
                    </table>
                    <div class="bk15"></div>
                    <input name="dosubmit" type="submit" value="<?php echo L('submit')?>" class="button" id="dosubmit">
                </form>

                经过替换后,所有的显示都变成短信宝短信平台的了。第一⊙步完成。接下来替换发送短信的业务代码。修改项目/phpcms/modules/sms/functions/global.func.php文件,代码如下:

                ?
                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
                <?php
                 
                function sms_status($status = 0,$return_array = 0) {
                    $array array'0'=>'发送成功',
                            '30'=>'密码错误',
                            '40'=>'账号不存在',
                            '41'=>'余额不足',
                            '42'=>'帐号过期',
                            '43'=>'IP地址限制',
                            '50'=>'内容含有敏感词',
                            '51'=>'手机号码不正确',
                            '-1'=>'参数不全'
                        );
                    return $return_array $array $array[$status];
                }
                 
                function checkmobile($mobilephone) {
                        $mobilephone = trim($mobilephone);
                        if(preg_match("/^13[0-9]{1}[0-9]{8}$|15[01236789]{1}[0-9]{8}$|18[01236789]{1}[0-9]{8}$/",$mobilephone)){ 
                            return  $mobilephone;
                        else {   
                            return false;
                        }
                 
                }
                 
                function get_smsnotice($type '') {
                    $url = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '';
                    $urls base64_decode('aHR0cDovL3Ntcy5waHBpcC5jb20vYXBpLnBocD9vcD1zbXNub3RpY2UmdXJsPQ==').$url."&type=".$type;
                    $content = pc_file_get_contents($urls,5);
                    if($content) {
                        $content = json_decode($content,true);
                        if($content['status']==1) {
                            return strtolower(CHARSET)=='gbk' ?iconv('utf-8','gbk',$content['msg']) : $content['msg'];
                        }
                    }
                    $urls base64_decode('aHR0cDovL3Ntcy5waHBjbXMuY24vYXBpLnBocD9vcD1zbXNub3RpY2UmdXJsPQ==').$url."&type=".$type;
                    $content = pc_file_get_contents($urls,3);
                    if($content) {
                        $content = json_decode($content,true);
                        if($content['status']==1) {
                            return strtolower(CHARSET)=='gbk' ?iconv('utf-8','gbk',$content['msg']) : $content['msg'];
                        }
                    }
                    return '<font color="red">短信通服务器无法访问!您将无法使用短信通服务!</font>';
                }
                 
                function sendsms($mobile$send_txt$tplid = 1, $id_code ''$siteid=1) {
                 
                    pc_base::load_app_class('smsapi''sms', 0); //引入smsapi类
                    $sms_setting = getcache('sms','sms');
                    $sms_uid $sms_setting[$siteid]['userid'];//短信接口△用户】ID
                    $sms_pid $sms_setting[$siteid]['productid'];//产品ID
                    $sms_passwd $sms_setting[$siteid]['sms_key'];//32位密码
                 
                    $smsapi new smsapi($sms_uid$sms_pid$sms_passwd); //初始化接口】类
                    $mobile explode(',',$mobile);
                 
                    $code $smsapi->send_sms($mobile$send_txt, 0, CHARSET,$id_code,$tplid,1); //发送短信
                    if($code==0) {
                        return 0;
                    else {
                        return sms_status($code,1);
                    }
                }

                修改项目/phpcms/modules/sms/classes/smsapi.class.php文件,代码如下:

                ?
                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
                105
                106
                107
                108
                109
                110
                111
                112
                113
                114
                115
                116
                117
                118
                119
                120
                121
                122
                123
                124
                125
                126
                127
                128
                129
                130
                131
                132
                133
                134
                135
                136
                137
                138
                139
                140
                141
                142
                143
                144
                145
                146
                147
                148
                149
                150
                151
                152
                153
                154
                155
                156
                157
                158
                159
                160
                161
                162
                163
                164
                165
                166
                167
                168
                169
                170
                171
                172
                173
                174
                175
                176
                177
                178
                179
                180
                181
                182
                183
                184
                185
                186
                187
                188
                189
                190
                191
                192
                193
                194
                195
                196
                197
                198
                199
                200
                201
                202
                203
                204
                205
                206
                207
                208
                209
                210
                211
                212
                213
                214
                215
                216
                217
                218
                219
                220
                221
                222
                223
                224
                225
                226
                227
                228
                229
                230
                231
                232
                233
                234
                235
                236
                237
                238
                239
                240
                241
                242
                243
                244
                245
                246
                247
                248
                249
                250
                251
                252
                253
                254
                255
                256
                257
                258
                259
                260
                261
                262
                263
                264
                265
                266
                267
                268
                269
                270
                271
                272
                273
                274
                275
                276
                277
                278
                279
                280
                281
                282
                <?php
                /**
                * 短信平台API接口类
                */
                 
                class smsapi {
                    public $userid;
                    public $statuscode;
                    private $productid$sms_key$smsapi_url;
                 
                    /**
                     *
                     * 初始化接口类
                     * @param int $userid 用户id
                     * @param int $productid 产品id
                     * @param string $sms_key 密钥
                     */
                    public function __construct($userid ''$productid ''$sms_key '') {
                        $this->smsapi_url = '';
                        $this->userid = $userid;
                        $this->productid = $productid;
                        $this->sms_key = $sms_key;
                    }
                 
                    /**
                     *
                     * 获取◥短信产品列表信息
                     */
                    public function get_price() {
                        $this->param = array('op'=>'sms_get_productlist');
                        $res $this->pc_file_get_contents();
                 
                        return !empty($res) ? json_decode($res, 1) : array();  
                    }
                 
                    /**
                     *
                     * 获取短信产品购买地址
                     */
                    public function get_buyurl($productid = 0) {
                        return '/p2akm1/member/product/list.jhtml';
                    }
                    public function show_qf_url() {
                        return $this->smsapi_url.'u='.$this->userid.'&p='.md5($this->sms_key).'&m={mobile}&c=【'.$this->productid.'】{content}';
                    }
                    /**
                     * 获取短信剩余条数和限制短信发送ip
                     */
                    public function get_smsinfo() {
                        $post='u='.$this->userid.'&p='.md5($this->sms_key);
                        $ret file_get_contents(''.$post);
                        $retArr = split("\n"$ret);
                        $balanceArr = split(","$retArr[1]);
                        $balance $retArr[0] == 0 ? $balanceArr[1] : $ret;
                        return $balance;  
                    }  
                 
                    /**
                     * 获取充值记录
                     */
                    public function get_buyhistory() {
                        $this->param = array('op'=>'sms_get_paylist');
                        $res $this->pc_file_get_contents();
                        return !empty($res) ? json_decode($res, 1) : array();         
                    }
                 
                    /**
                     * 获取消№费记录
                     * @param int $page 页码
                     */
                    public function get_payhistory($page=1) {
                        $this->param = array('op'=>'sms_get_report','page'=>$page);
                        $res $this->pc_file_get_contents();
                        return !empty($res) ? json_decode($res, 1) : array();     
                    }
                 
                    /**
                     * 获取短信api帮助
                     */
                    public function get_sms_help() {
                        $this->param = array('op'=>'sms_help','page'=>$page);
                        $res $this->pc_file_get_contents();
                        return !empty($res) ? json_decode($res, 1) : array();     
                    }
                 
                    /**
                     *
                     * 批量发送短信
                     * @param array $mobile 手机号码
                     * @param string $content 短信内容
                     * @param datetime $send_time 发送时间
                     * @param string $charset 短信字符类型 gbk / utf-8
                     * @param string $id_code 唯一值 、可用于验证码
                     */
                    public function send_sms($mobile=''$content=''$send_time=''$charset='gbk',$id_code '',$tplid '',$return_code = 0) {
                        //短信发送状态
                        $status $this->_sms_status();
                        $content = safe_replace($content);
                        $send_content $content;
                        $send_time strtotime($send_time);
                 
                        $smsapi_senturl $this->smsapi_url.'op=sms_service_new';
                        foreach($mobile as $key=>$val){
                            $data array(
                                    'p' => md5($this->sms_key),
                                    'u' => $this->userid,
                                    'charset' => CHARSET,
                                    'c' => urlencode('【'.$this->productid.'】'.$send_content),
                                    'm' => $val,
                                    'send_time' => $send_time,
                                    'tplid' => $tplid,
                                );
                            $post '';
                            foreach($data as $k=>$v) {
                                $post .= $k.'='.$v.'&';
                            }
                            $return $this->_post($smsapi_senturl, 0, $post);
                            //增加到本地数据库
                            $sms_report_db = pc_base::load_model('sms_report_model');
                            $send_userid = param::get_cookie('_userid') ? intval(param::get_cookie('_userid')) : 0;
                            $ip = ip();
                 
                            $new_content $content;
                            if($return=='0') {
                                $sms_report_db->insert(array('mobile'=>$val,'posttime'=>SYS_TIME,'id_code'=>$id_code,'send_userid'=>$send_userid,'status'=>$this->statuscode,'msg'=>$new_content,'return_id'=>$return,'ip'=>$ip));
                            else {
                                $sms_report_db->insert(array('mobile'=>$val,'posttime'=>SYS_TIME,'send_userid'=>$send_userid,'status'=>'-2','msg'=>$new_content,'ip'=>$ip));
                            }
                            if($this->statuscode==0) {
                                $barr explode(':',$arr[1]);
                                if($barr[0]=='KEY') {
                                    return '短信已提交,请等待审批!审批时◢间为:9:00-18:00。 法定假日不审批!如需帮助,请联系phpcms.cn官网!';
                                }
                            }
                            //end
                        }
                 
                    }
                 
                    /**
                     *
                     * 获取远程内容
                     * @param $timeout 超时时间
                     */
                    public function pc_file_get_contents($timeout=30) {
                 
                        $this->setting = array(
                                            'u'=>$this->userid,
                                            'p'=>md5($this->sms_key), 
                                            );
                 
                        $this->param = array_merge($this->param, $this->setting);
                 
                        $url $this->smsapi_url.http_build_query($this->param);
                        $stream = stream_context_create(array('http' => array('timeout' => $timeout)));
                        return @file_get_contents($url, 0, $stream);
                    }
                 
                    /**
                     *  post数据
                     * @param string $url     post的url
                     * @param int $limit      返回的数据的长度
                     * @param string $post        post数据,字△符串形式username='dalarge'&password='123456'
                     * @param string $cookie  模拟 cookie,字符串形式username='dalarge'&password='123456'
                     * @param string $ip      ip地址
                     * @param int $timeout        连接超时时间
                     * @param bool $block     是否为阻塞模式
                     * @return string          返♂回字符串
                     */
                 
                    private function _post($url$limit = 0, $post ''$cookie ''$ip ''$timeout = 30, $block = true) {
                        $return '';
                        $matches parse_url($url);
                        $host $matches['host'];
                        $path $matches['path'] ? $matches['path'].($matches['query'] ? '?'.$matches['query'] : '') : '/';
                        $port = !empty($matches['port']) ? $matches['port'] : 80;
                        $siteurl $this->_get_url();
                        if($post) {
                            $out "POST $path HTTP/1.1\r\n";
                            $out .= "Accept: */*\r\n";
                            $out .= "Referer: ".$siteurl."\r\n";
                            $out .= "Accept-Language: zh-cn\r\n";
                            $out .= "Content-Type: application/x-www-form-urlencoded\r\n";
                            $out .= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n";
                            $out .= "Host: $host\r\n" ;
                            $out .= 'Content-Length: '.strlen($post)."\r\n" ;
                            $out .= "Connection: Close\r\n" ;
                            $out .= "Cache-Control: no-cache\r\n" ;
                            $out .= "Cookie: $cookie\r\n\r\n" ;
                            $out .= $post ;
                        else {
                            $out "GET $path HTTP/1.1\r\n";
                            $out .= "Accept: */*\r\n";
                            $out .= "Referer: ".$siteurl."\r\n";
                            $out .= "Accept-Language: zh-cn\r\n";
                            $out .= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n";
                            $out .= "Host: $host\r\n";
                            $out .= "Connection: Close\r\n";
                            $out .= "Cookie: $cookie\r\n\r\n";
                        }
                        $fp = @fsockopen(($ip $ip $host), $port$errno$errstr$timeout);
                        if(!$fpreturn '';
                 
                        stream_set_blocking($fp$block);
                        stream_set_timeout($fp$timeout);
                        @fwrite($fp$out);
                        $status = stream_get_meta_data($fp);
                 
                        if($status['timed_out']) return '';   
                        while (!feof($fp)) {
                            if(($header = @fgets($fp)) && ($header == "\r\n" ||  $header == "\n"))  break;              
                        }
                 
                        $stop = false;
                        while(!feof($fp) && !$stop) {
                            $data fread($fp, ($limit == 0 || $limit > 8192 ? 8192 : $limit));
                            $return .= $data;
                            if($limit) {
                                $limit -= strlen($data);
                                $stop $limit <= 0;
                            }
                        }
                        @fclose($fp);
                 
                        //部分虚拟主◥机返回数值有误,暂不确定原因,过滤返回数据格式
                        $return_arr explode("\n"$return);
                        if(isset($return_arr[1])) {
                            $return = trim($return_arr[1]);
                        }
                        unset($return_arr);
                 
                        return $return;
                    }
                 
                    /**
                     * 获取当前页面完整URL地址
                     */
                    private function _get_url() {
                        $sys_protocal = isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' '' '';
                        $php_self $_SERVER['PHP_SELF'] ? $this->_safe_replace($_SERVER['PHP_SELF']) : $this->_safe_replace($_SERVER['SCRIPT_NAME']);
                        $path_info = isset($_SERVER['PATH_INFO']) ? $this->_safe_replace($_SERVER['PATH_INFO']) : '';
                        $relate_url = isset($_SERVER['REQUEST_URI']) ? $this->_safe_replace($_SERVER['REQUEST_URI']) : $php_self.(isset($_SERVER['QUERY_STRING']) ? '?'.$this->_safe_replace($_SERVER['QUERY_STRING']) : $path_info);
                        return $sys_protocal.(isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '').$relate_url;
                    }
                 
                    /**
                     * 安全过滤函数』
                     *
                     * @param $string
                     * @return string
                     */
                    private function _safe_replace($string) {
                        $string str_replace('%20','',$string);
                        $string str_replace('%27','',$string);
                        $string str_replace('%2527','',$string);
                        $string str_replace('*','',$string);
                        $string str_replace('"','&quot;',$string);
                        $string str_replace("'",'',$string);
                        $string str_replace('"','',$string);
                        $string str_replace(';','',$string);
                        $string str_replace('<','&lt;',$string);
                        $string str_replace('>','&gt;',$string);
                        $string str_replace("{",'',$string);
                        $string str_replace('}','',$string);
                        $string str_replace('\\','',$string);
                        return $string;
                    }
                 
                    /**
                     *
                     * 接口短信状态
                     */
                    private function _sms_status() {
                        pc_base::load_app_func('global','sms');
                        return sms_status(0,1);
                    }
                 
                }
                 
                 
                 
                ?>

                修改项目/api/sms.php文件,代码如下:

                ?
                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
                <?php
                defined('IN_PHPCMS'or exit('No permission resources.');
                /**
                * 短信发送接口
                */
                 
                $sms_report_db = pc_base::load_model('sms_report_model');
                $session_storage 'session_'.pc_base::load_config('system','session_storage'); pc_base::load_sys_class($session_storage);
                 
                if(empty($_SESSION['code'])) exit('-100');
                if(empty($_GET['session_code']) || preg_match('/^([a-zA-Z0-9])$/i',$_GET['session_code']) || $_SESSION['code']!=$_GET['session_code']) exit('-101');
                 
                if(isset($_GET['mobile']) && !empty($_GET['mobile'])) {
                    $mobile $_GET['mobile'];
                else {
                    $mobile $_SESSION['mobile'];
                }
                $_SESSION['code'] = '';
                if(!isset($_SESSION['csms'])) {
                    $_SESSION['csms'] = 0;
                elseif($_SESSION['csms'] > 3) {
                    exit('-1');
                }
                $_SESSION['csms'] += 1;
                 
                $siteid = get_siteid() ? get_siteid() : 1 ;
                $sms_setting = getcache('sms','sms');
                if(!preg_match('/^1[3-9]\d{9}$/',$mobile)) exit('mobile phone error');
                $posttime = SYS_TIME-86400;
                $where "`mobile`='$mobile' AND `posttime`>'$posttime'";
                $num $sms_report_db->count($where);
                if($num > 3) {
                    exit('-1');//当日发送短信数量超过限制 3 条
                }
                //同一IP 24小时允许请求的↙最大数
                $allow_max_ip = 10;//正常注册相当于 10 个人
                $ip = ip();
                $where "`ip`='$ip' AND `posttime`>'$posttime'";
                $num $sms_report_db->count($where);
                if($num >= $allow_max_ip) {
                    exit('-3');//当日单IP 发送短信数量超过 $allow_max_ip
                }
                if(intval($sms_setting[$siteid]['sms_enable']) == 0) exit('-99'); //短信功能关闭
                 
                 
                $sms_uid $sms_setting[$siteid]['userid'];//短信接口用户ID
                $sms_pid $sms_setting[$siteid]['productid'];//产品ID
                $sms_passwd $sms_setting[$siteid]['sms_key'];//32位密码
                 
                $posttime = SYS_TIME-600;
                $rs $sms_report_db->get_one("`mobile`='$mobile' AND `posttime`>'$posttime'");
                if($rs['id_code']) {
                    $id_code $rs['id_code'];
                else {
                    $id_code = random(6);//唯一吗,用于扩展㊣验证
                }
                //$send_txt = '尊敬的〗用户您好,您在'.$sitename.'的注册验证码为:'.$id_code.',验证码有效期为5分钟。';
                $send_txt $id_code;
                 
                $send_userid intval($_GET['send_userid']);//操作者id
                 
                pc_base::load_app_class('smsapi''sms', 0); //引入smsapi类
                 
                $smsapi new smsapi($sms_uid$sms_pid$sms_passwd); //初始化接口类
                //$smsapi->get_price(); //获取短信剩余条数和限制短信发送的ip地址
                $mobile explode(',',$mobile);
                 
                $tplid = 1;
                $id_code = random(6);//唯一吗,用于扩展验证
                $send_txt '尊敬的用户您●好,您的注册验证码为:'.$id_code.',验证码有效期为5分钟。';
                $content = safe_replace($send_txt);
                $sent_time intval($_POST['sendtype']) == 2 && !empty($_POST['sendtime'])  ? trim($_POST['sendtime']) : date('Y-m-d H:i:s',SYS_TIME);
                $smsapi->send_sms($mobile$send_txt$sent_time, CHARSET,$id_code,$tplid); //发送短信
                echo 0;
                ?>

                好了,经过以上的替换,短信宝¤的短信平台已经替换成功了,可以⌒ 正常使用了。我们进行测试发送。

                ok,测试成功。是不是很方便呀。大家动手☉试一下吧。

                报备一下短信宝■的VIP模板,这样就可以走优质通道了,并且免审核了,短信内容3~5秒就可送达。
                开源插件

                最新更新

                电商类

                CMS类

                微信类

                文章标签