待发短信

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

4001-021-502

工作时间

9:00-21:00

YouDianCMS 9.5.12新增短信宝短信接口

友点CMS系统是一款免费、开源、轻便、安全、专业建站、PC+手机+微官网+小程序+APP五站合一、一站式智能建站平台。今天小编为大家讲解一下YouDianCMS 9.5.12稳定版这个版本的短信插件该如何开发,短信接口使用的是我们短信宝短信群发平台,我们短信宝短信群发平台极其稳定,而且短信发送速度相当快捷,验证码和订单通知在3~5秒就能收到,用户体验非常好,注册就送测试短信。
1:打开项目: App\Tpl\Admin\Default\Config\other.html 新增短信宝短信页面

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
 <div class="box-header"  id="c3">
                <h4>短信接口设置
                    <span class="extra">可用于:手机注册、短信找回密码、订单提醒、留言提醒、反馈提醒。请在相应功能设置短信内容模板</span>
                </h4>
            </div>
            <div class="box-content">
                <table class="boxtable">
                    <tr>
                        <th nowrap="nowrap" style="width:20%">短信宝</th>
                        <td style="width:80%">
                            <select name="SMS_TYPE">
                                <option value="Huyi">短信宝</option>
                            </select>
                            <span style="color:#F30; padding-left:3px;"><a target="_blank" href="https://smsbao.com/reg" >还没有注册账号?立即注册</a></span>
                        </td>
                    </tr>
                    <tr>
                        <th nowrap="nowrap" style="width:20%">短信宝账号</th>
                        <td style="width:80%">
                            <input type="text" class="textinput" style="width:270px;" name="SMS_ACCOUNT" value="{$SmsAccount}" />
                            <span class='Caution'>请填写短信宝账号</span></td>
                        </td>
                    </tr>
                    <tr>
                        <th nowrap="nowrap" style="width:20%">短信宝密码</th>
                        <td style="width:80%">
                            <input type="text" class="textinput"  style="width:270px;" name="SMS_PASSWORD" value="{$SmsPassword}" />
                            <span class='Caution'>请填写短信宝密码</span>
                        </td>
                    </tr>
                    <tr>
                        <th nowrap="nowrap" style="width:20%">每个IP每天最多能发送几条短信</th>
                        <td style="width:80%">
                            <input type="number" class="textinput"  style="width:60px;" maxlength="5" name="SMS_IP_MAX" value="{$SmsIpMax}" />
                            <span class='Caution'>请根据实际情况设置,默认值为:20</span>
                        </td>
                    </tr>
                    <tr>
                        <th nowrap="nowrap" style="width:20%">每个手机每天最多能发送几条短信</th>
                        <td style="width:80%">
                            <input type="number" class="textinput"  style="width:60px;" maxlength="5" name="SMS_NUM_MAX" value="{$SmsNumMax}" />
                            <span class='Caution'>请根据实际情况设置,默认值为:60</span>
                        </td>
                    </tr>
                    <tr>
                        <th nowrap="nowrap" style="width:20%">剩余短信条数</th>
                        <td style="width:80%; padding:8px 0;">
                            <span id="leftnum" style="font-weight:bold;color:blue; margin-right:8px;"></span>
                            <a class="btnSuccess btnSmall" onclick="getLeftNum()">点击查询</a>
                        </td>
                    </tr>
                    <tr>
                        <th>手机注册验证码短信发送测试</th>
                        <td>
                            <input type="text" class="textinput" style="width:120px; float:left; " maxlength="18" name="Mobile" id="Mobile" value="" placeholder="请输入手机号码"  />
                            <span style="float:left; margin:7px 3px 7px 15px;">验证码</span>
                            <input type="text" class="textinput" style="width:60px; float:left; " maxlength="4" name="CodeNum" id="CodeNum" value="{:rand_string(4,1)}" placeholder="验证码"  />
                            <a class="btnSuccess btnSmall" style="float:left;margin:2px 8px;"  onclick="sendSmsTest()" id="btnPick" target="_blank">短信发送测试</a>
                            <span style="float:left; margin-left:5px;" id="smstip"></span>
                            <span class='Caution'>发送前,请先保存设置!</span></td>
                        </td>
                    </tr>
                    <tr>
                        <th><span style="color:red;">配置步骤:</span></th>
                        <td><span style="color:red;">
                            [1] 在本后台设置全部短信模板(如:手机注册验证码模板、订单通知模板等)
                            [2] 登录短信服务商的后台,将[1]设置的模板提交审核,审核通过后才能发送相关短信!
                            </span>
                        </td>
                    </tr>
                </table>
            </div>

2:打开项目:App\Lib\Action\Admin\ConfigAction.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
 function other(){
        header("Content-Type:text/html; charset=utf-8");
        $m = D('Admin/Config');
        $data = $m->getConfig('other'); //配置数据不从缓存中提取
        $this->assign('AdminPageSize', $data['ADMIN_PAGE_SIZE'] );
        $this->assign('AdminRollPage', $data['ADMIN_ROLL_PAGE'] );
        $this->assign('AutoDelEnable', $data['AUTO_DEL_ENABLE'] );
        $this->assign('AutoUploadEnable', $data['AUTO_UPLOAD_ENABLE'] );
        $this->assign('DelLinkEnable', $data['DEL_LINK_ENABLE'] );
        $this->assign('TextEditor', $data['TextEditor'] );
        $this->assign('AllowLink', $data['ALLOW_LINK'] );
        $this->assign('SearchPageSize', $data['SearchPageSize'] );
        $this->assign('HomeRollPage', $data['HomeRollPage'] );
        $this->assign('ChannelTreeWidth', $data['ChannelTreeWidth'] );
        //更新短信方面
        $this->assign('SmsAccount', $data['SMS_ACCOUNT'] );
        $this->assign('SmsPassword', $data['SMS_PASSWORD'] );
        $this->assign('SmsIpMax', $data['SMS_IP_MAX'] );
        $this->assign('SmsNumMax', $data['SMS_NUM_MAX'] );
        $this->assign('Action', __URL__.'/saveOther' );
        $this->display();
    }
    function getLeftNum(){
        $data = $GLOBALS['Config'];
        import("@.Common.YdSms");
        $obj = YdSms::getInstance( $data['SMS_TYPE'] );
        $obj->setConfig( $data );
        $num = $obj->getLeftNum();
        if( is_numeric($num)){
            $this->ajaxReturn(null, $num, 1);
        }else{
            $this->ajaxReturn(null"查询失败,{$num}" , 0);
        }
    }
    //短信发送测试
    function sendSmsTest(){
        $mobile = $_GET['mobile'];
        $code = $_GET['code']; //校验码
        $content = $GLOBALS['Config']['MOBILE_REG_TEMPLATE']; //读取模板
        $msg = '';
        $result = send_sms($mobile, $content, array('{$Code}'=>$code), 1, $msg);
        if( $result ){
            $this->ajaxReturn(null, $msg, 1);
        }else{
            $this->ajaxReturn(null"发送失败,{$msg}" , 0);
        }
    }

3:打开项目:App\Lib\Common\YdSms.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
public function getLeftNum(){
        $smsapi = "https://www.smsbao.com/";
        $sendurl = $smsapi."query?u=".$this->AccountName."&p=".md5($this->AccountPassword);
        $result =file_get_contents($sendurl) ;
        $result = explode(',',$result);
        $num = $result[1] ? $result[1] : '';
        if($num > 0 ){
            return $num;
        }else{
            return $num;
        }
    }
    
    public function sendNotifyMessage($mobile, $content){
        if( !$this->check($mobile) ) {
            $this->writeLog($mobile, $content, "发送失败,".$this->Message);
            return false;
        }
        $content = $this->parsePlaceholder($content);
        $statusStr = array(
            "0" => "短信发送成功",
            "-1" => "参数不全",
            "-2" => "服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间!",
            "30" => "密码错误",
            "40" => "账号不存在",
            "41" => "余额不足",
            "42" => "帐户已过期",
            "43" => "IP地址限制",
            "50" => "内容含有敏感词"
        );
        $smsapi = "http://api.smsbao.com/";
        $user = $this->AccountName; //短信平台帐号
        $pass = md5($this->AccountPassword); //短信平台密码
        $phone = $mobile;//要发送短信的手机号码
        $sendurl = $smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content);
        $result =file_get_contents($sendurl) ;
        $this->Message = $statusStr[$result];
        if( $result == 0  ){
            $this->writeLog($mobile, $content, $statusStr[$result]);
            return true;
        }else{
            $this->writeLog($mobile, $content, "发送失败,".$statusStr[$result]);
            return false;
        }
    }

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

报备一下短信宝的VIP模板,这样就可以走短信宝的优质通道了,即便遇到敏感文字我们都不会人工审核,短信内容3~5秒就可送达。

另外:我们已经开发好完整的YouDianCMS 9.5.12系统短信宝插件,点击此链接 下载及查看安装流程。

开源插件

最新更新

电商类

CMS类

微信类

文章标签