待发短信

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

4001-021-502

工作时间

9:00-21:00

迅睿CMSV4.6.2新增短信宝短信接口

迅睿CMS框架在CodeIgniter4框架上增加了基础内容模块管理功能、后台管理体系、插件功能体系、迅睿模板引擎、常用扩展类、常用模型类等程序组件,让CI4框架中文化,更好的适应于国内的建站需求。最近小编看见讯睿CMS更新到了4.6.2版本,进行了蛮大的升级,小编这边也马上更新了讯睿CMSV_4.6.2版本的短信宝插件。今天小编给大家讲解下讯睿CMSV_4.6.2版本的短信宝插件如何二次开发,我们短信宝短信群发平台的接口非常稳定,发送速度快,注册就送测试短信,推荐大家使用。
1:打开项目:dayrui\Fcms\View\sms_index.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
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
<div class="form-group">
    <label class="col-md-2 control-label" style="padding-top: 10px;">{dr_lang('接口类型')}</label>
    <div class="col-md-9">
        <div class="mt-radio-inline">
            <label class="mt-radio mt-radio-outline"><input name="aa" type="radio" value="0" onclick="$('.dr_0').show();$('.dr_1').hide();$('.dr_2').hide()" {if !$data.third}checked="checked"{/if} /> {dr_lang('官方接口')} <span></span></label>
            <label class="mt-radio mt-radio-outline"><input name="aa" type="radio" value="1" onclick="$('.dr_1').show();$('.dr_0').hide();$('.dr_2').hide()" {if $data.third}checked="checked"{/if} /> {dr_lang('第三方接口')} <span></span></label>
            <label class="mt-radio mt-radio-outline"><input name="aa" type="radio" value="2" onclick="$('.dr_2').show();$('.dr_0').hide();$('.dr_1').hide();" {if $data.smsbaouser}checked="checked"{/if} /> {dr_lang('短信宝接口')} <span></span></label>
        </div>
    </div>
    <div class="form-group dr_0">
        <label class="col-md-2 control-label">官方SMS Uid</label>
        <div class="col-md-9">
            <label><input class="form-control" type="text" name="data[uid]" value="{$data.uid}" ></label>
        </div>
    </div>
    <div class="form-group dr_0">
        <label class="col-md-2 control-label">官方SMS Key</label>
        <div class="col-md-9">
            <input class="form-control" type="text" name="data[key]" value="{$data.key}" >
        </div>
    </div>
    {if $data.uid && !$data.third}
    <div class="form-group dr_0">
        <label class="col-md-2 control-label">{dr_lang('剩余短信')}</label>
        <div class="col-md-9">
            <div class="form-control-static" id="dr_sms">....</div>
        </div>
    </div>
    {/if}
 
    <div class="form-group dr_1">
        <label class="col-md-2 control-label">{dr_lang('自定义参数')}</label>
        <div class="col-md-9">
            <textarea class="form-control" style="height:120px" name="data[third]" />{$data.third}</textarea>
        </div>
    </div>
    <div class="form-group dr_1">
        <label class="col-md-2 control-label">{dr_lang('测试手机号')}</label>
        <div class="col-md-9">
            <label><input class="form-control" type="text" name="data[mobile]" value="{$data.mobile}" ></label>
            <span class="help-block">{dr_lang('单击测试按钮会将验证码发送到此手机')}</span>
        </div>
    </div>
    <div class="form-group dr_0">
        <label class="col-md-2 control-label">{dr_lang('短信签名')}</label>
        <div class="col-md-9">
            <label><input class="form-control" type="text" name="data[note]" value="{$data.note}" ></label>
            <span class="help-block">{dr_lang('保持在10个字符以内')}</span>
        </div>
    </div>
    <div class="form-group dr_2">
        <label class="col-md-2 control-label">{dr_lang('申请地址')}:</label>
        <div class="col-md-9">
            <div class="form-control-static"><label><a href="http://www.smsbao.com/reg" target="_blank">http://www.smsbao.com/reg</a></label></div>
        </div>
    </div>
    <div class="form-group dr_2">
        <label class="col-md-2 control-label">{dr_lang('短信宝账号')}</label>
        <div class="col-md-9">
            <label><input class="form-control" type="text" name="data[smsbaouser]" value="{$data.smsbaouser}" ></label>
        </div>
    </div>
    <div class="form-group dr_2">
        <label class="col-md-2 control-label">{dr_lang('短信宝密码')}</label>
        <div class="col-md-9">
            <label><input class="form-control" type="text" name="data[smsbaopass]" value="{$data.smsbaopass}" ></label>
        </div>
    </div>
    <div class="form-group dr_2">
        <label class="col-md-2 control-label">{dr_lang('短信宝签名')}</label>
        <div class="col-md-9">
            <label><input class="form-control" type="text" name="data[smsbaosing]" value="{$data.smsbaosing}" ></label>
        </div>
    </div>
    <div class="form-group">
        <label class="col-md-2 control-label">{dr_lang('验证码有效期')}</label>
        <div class="col-md-9">
            <div class="input-inline input-medium">
                <div class="input-group">
                    <input type="text" name="SYS_CACHE_SMS" value="{php echo max(60, intval($cache['SYS_CACHE_SMS']));}" class="form-control">
                    <span class="input-group-addon">
                    <i class="fa fa-clock-o"></i>
                </span>
                </div>
            </div>
            <span class="help-inline"> {dr_lang('单位秒,最低60秒,发送验证码后的有效期时间')} </span>
        </div>
    </div>
</div>
 
<script type="text/javascript">
    $(function() {
        {if $data.uid && !$data.third}
        $.ajax({
            type: "GET",
            dataType: "json",
            url: "{dr_url('api/sms_info')}&uid={$data.uid}&key={$data.key}",
            success: function(json) {
                eval(json.msg);
            },
            error: function(HttpRequest, ajaxOptions, thrownError) {
                dr_ajax_alert_error(HttpRequest, this, thrownError);;
            }
        });
        {/if}
            {if $data.smsbaouser}
            $('.dr_2').show();$('.dr_0').hide();$('.dr_1').hide();
            {else if $data.third}
            $('.dr_1').show();$('.dr_0').hide();$('.dr_2').hide();
            {else }
            $('.dr_2').show();$('.dr_1').hide();$('.dr_2').hide();
            {/if}
            });
    function dr_test_mobile() {
                var loading = layer.load(2, {
                    shade: [0.3,'#fff'], //0.1透明度的白色背景
                    time: 10000
                });
                $.ajax({
                    type: "POST",
                    dataType: "json",
                    url: "{dr_url('api/test_mobile')}",
                    data: $("#myform").serialize(),
                    success: function(json) {
                        layer.close(loading);
                        dr_tips(json.code, json.msg, -1);
                    },
                    error: function(HttpRequest, ajaxOptions, thrownError) {
                        dr_ajax_alert_error(HttpRequest, this, thrownError);;
                    }
                });
            }
</script>

2:打开项目:dayrui\Fcms\Model\Member.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
/**
 * 短信发送文本
 */
public function sendsms_text($mobile, $content, $type = 'text') {
    if (!$mobile || !$content) {
        return dr_return_data(0, dr_lang('手机号码或内容不能为空'));
    }
    $file = WRITEPATH.'config/sms.php';
    if (!is_file($file)) {
        log_message('error''短信接口配置文件('.$file.')不存在');
        return dr_return_data(0, dr_lang('接口配置文件不存在'));
    }
    $config = \Phpcmf\Service::R($file);
    if ($config['third']) {
        if (is_file(CONFIGPATH.'mysms.php')) {
            require_once CONFIGPATH.'mysms.php';
        }
        $method = 'my_sendsms_'.$type;
        if (function_exists($method)) {
            return call_user_func_array($method, [
                $mobile,
                $content,
                $config['third'],
            ]);
        else {
            $error = dr_lang('你没有定义第三方短信接口: '. $method);
            @file_put_contents(WRITEPATH.'sms_log.txt', date('Y-m-d H:i:s').' ['.$mobile.'] ['.$error.'] ('.str_replace(array(chr(13), chr(10)), '', $content).')'.PHP_EOL, FILE_APPEND);
            return dr_return_data(0, $error);
        }
    else {
        $content = $type == 'code' ? dr_lang('您的本次验证码是: %s', $content) : $content;
        $content = '【'.$config['smsbaosing'].'】'.$content;
        $smsapi = "http://api.smsbao.com/";
        $user = $config['smsbaouser']; //短信平台帐号
        $pass = md5($config['smsbaopass']); //短信平台密码
        $phone = $mobile;//要发送短信的手机号码
        $url = $smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content);
        $result = dr_catcher_data($url);
        if ($result!= 0) {
            log_message('error''访问云短信服务器失败');
            return dr_return_data(0, dr_lang('访问云短信服务器失败'));
        }else{
            $result = "{\"code\":1, \"data\":\"发送成功\", \"msg\":\"发送成功\"}";
        }
        $result = json_decode($result, true);
    }
    @file_put_contents(WRITEPATH.'sms_log.txt', date('Y-m-d H:i:s').' ['.$mobile.'] ['.$result['msg'].'] ('.str_replace(array(chr(13), chr(10)), '', $content).')'.PHP_EOL, FILE_APPEND);
    return $result;
}

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

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

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

开源插件

最新更新

电商类

CMS类

微信类

文章标签