待发短信

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

4001-021-502

工作时间

9:00-21:00

DSKMS-V3.1.2内容视频付费系统新增短信宝短信接口

DSKMS具备图文、音频、视频等多种内容形式,支持专栏聚合优质内容。通过内置的营销体系(会员、抢购、分销、广告)让您的品牌深入人心,轻松将知识变现。小编带着大家一起开发DSKMS-V3.1.2的短信宝插件接口。我们使用的短信接口是我们短信宝短信群发平台的短信接口,我们短信宝短信群发平台非常稳定,发送速度快,注册就送测试短信,推荐大家使用。
一:首先执行以下sql增加短信宝参数配置

1
2
3
INSERT INTO `ds_config` (`code`, `value`, `remark`) VALUES
('smscf_smsbao_username''''短信宝账号'),
('smscf_smsbao_key''''短信宝ApiKey');

二:接着打开项目app\admin\controller\Message.php,替换mobilemobile_testing方法

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
     /**
     * 短信平台设置
     */
    public function mobile() {
        $config_model = model('config');
        if (!(request()->isPost())) {
            $list_config = rkcache('config', true);
             
            $smscf_num '';
            if($list_config['smscf_type']=='wj' && !empty($list_config['smscf_wj_username'])&&!empty($list_config['smscf_wj_key'])){
                //如果配置了信息,可以查看具体可用短信条数
                $smscf_num = http_request('http://www.smschinese.cn/web_api/SMS/?Action=SMS_Num&Uid='.$list_config['smscf_wj_username'].'&Key='.$list_config['smscf_wj_key'],'get');
            }
            View::assign('smscf_num'$smscf_num);
            View::assign('list_config'$list_config);
             
            $this->setAdminCurItem('mobile');
            return View::fetch('mobile');
        else {
            $update_array array();
            $update_array['smscf_type'] = input('post.smscf_type');
            $update_array['smscf_ali_id'] = input('post.smscf_ali_id');
            $update_array['smscf_ali_secret'] = input('post.smscf_ali_secret');
            $update_array['smscf_ten_id'] = input('post.smscf_ten_id');
            $update_array['smscf_ten_secret'] = input('post.smscf_ten_secret');
            $update_array['smscf_sign'] = input('post.smscf_sign');
            $update_array['smscf_wj_username'] = input('post.smscf_wj_username');
            $update_array['smscf_wj_key'] = input('post.smscf_wj_key');
            $update_array['sms_register'] = input('post.sms_register');
            $update_array['sms_login'] = input('post.sms_login');
            $update_array['sms_password'] = input('post.sms_password');
            $update_array['smscf_smsbao_username'] = input('post.smscf_smsbao_username');
            $update_array['smscf_smsbao_key'] = input('post.smscf_smsbao_key');
            $result $config_model->editConfig($update_array);
            if ($result === true) {
                $this->log(lang('ds_edit') . lang('message_mobile'), 1);
                $this->success(lang('ds_common_save_succ'));
            else {
                $this->log(lang('ds_edit') . lang('message_mobile'), 0);
                $this->error(lang('ds_common_save_fail'));
            }
        }
    }
    /**
     * 测试手机短信发送
     *
     * @param
     * @return
     */
    public function mobile_testing() {
        $mobile = input('param.mobile_test');
        $content = input('param.mobile_test_content');
        $smscf_type = input('param.smscf_type');
        $smscf_ali_id = input('param.smscf_ali_id');
        $smscf_ali_secret = input('param.smscf_ali_secret');
        $ali_template_param=input('param.ali_template_param');
        $ali_template_code=input('param.ali_template_code');
        $ali_template_content=input('param.ali_template_content');
        $smscf_ten_id = input('param.smscf_ten_id');
        $smscf_ten_secret = input('param.smscf_ten_secret');
        $ten_template_param = input('param.ten_template_param');
        $ten_template_code = input('param.ten_template_code');
        $ten_template_content = input('param.ten_template_content');
        $smsbao_test_content = input('param.smsbao_test_content');
        $smsbao_user = input('param.smscf_smsbao_username'); // 这里填写用户名
        $smsbao_apikey = input('param.smscf_smsbao_key'); // 这里填接口安全密钥
        $user_id = urlencode(input('param.smscf_wj_username')); // 这里填写用户名
        $key = urlencode(input('param.smscf_wj_key')); // 这里填接口安全密钥
        $smscf_sign = input('param.smscf_sign');
        config('ds_config.smscf_smsbao_username'$smsbao_user);
        config('ds_config.smscf_smsbao_key'$smsbao_apikey);
        config('ds_config.smscf_type',$smscf_type);
        config('ds_config.smscf_wj_username',$user_id);
        config('ds_config.smscf_wj_key',$key);
        config('ds_config.smscf_ali_id',$smscf_ali_id);
        config('ds_config.smscf_ali_secret',$smscf_ali_secret);
        config('ds_config.smscf_ten_id'$smscf_ten_id);
        config('ds_config.smscf_ten_secret'$smscf_ten_secret);
        config('ds_config.smscf_sign',$smscf_sign);
        $smslog_param=array(
                    'ali_template_code'=>$ali_template_code,
                    'ali_template_param'=>array(),
                    'ten_template_code' => $ten_template_code,
                    'ten_template_param' => array(),
                );
        if($smscf_type=='wj'){
            $smslog_param['message']=$content;
        }else if ($smscf_type == 'smsbao') {
            $smslog_param['message'] = $smsbao_test_content;
        }elseif($smscf_type=='ali'){
            $param=json_decode(htmlspecialchars_decode($ali_template_param),true);
            if(!$param){
                echo json_encode(array('msg'=>lang('ali_template_param_error')));exit;
            }
            $smslog_param['message'] = ds_replace_text(htmlspecialchars_decode($ali_template_content), $param);
            $smslog_param['ali_template_param']= $param;
        }elseif ($smscf_type == 'ten') {
            $param = json_decode(htmlspecialchars_decode($ten_template_param), true);
            if (!$param) {
                echo json_encode(array('msg' => lang('ten_template_param_error')));
                exit;
            }
            $smslog_param['message'] = ds_replace_text(htmlspecialchars_decode($ten_template_content), $param);
            $smslog_param['ten_template_param'] = $param;
        }else{
            echo json_encode(array('msg' => lang('param_error')));
            exit;
        }
         
        $result=model('smslog')->sendSms($mobile$smslog_param);
 
        if ($result['code'] == 10000){
            $data['msg'] = '测试手机短信发送成功';
        }else{
            $data['msg'] = $result['message'];
        }
        echo json_encode($data);
        exit;
    }

三:接着打开项目app\admin\lang\zh-cn\message.lang.php,在94行左右增加以下代码

1
2
3
$lang['smscf_type_smsbao'] = '短信宝';
$lang['smscf_smsbao_username'] = '短信宝账号';
$lang['smscf_smsbao_key'] = '短信宝ApiKey';

四:接着打开项目app\admin\view\message\mobile.html,替换24~65行代码

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
<tr>
                <td class="required w120">{$Think.lang.smscf_type}</td>
                <td class="vatop rowform">
                    <select id="smscf_type" name="smscf_type">
                        <option value="wj" {if $list_config.smscf_type=='wj'}selected{/if}>{$Think.lang.smscf_type_wj}</option>
                        <option value="smsbao" {if $list_config.smscf_type=='smsbao'}selected{/if}>{$Think.lang.smscf_type_smsbao}</option>
                        <option value="ali" {if $list_config.smscf_type=='ali'}selected{/if}>{$Think.lang.smscf_type_ali}</option>
                        <option value="ten" {if $list_config.smscf_type=='ten'}selected{/if}>{$Think.lang.smscf_type_ten}</option>
                    </select>
                </td>
                <td class="vatop tips"></td>
            </tr>
            <tr class="noborder smscf_type_wj" {if $list_config.smscf_type!='wj'}style="display:none"{/if}>
                <td class="required w120">{$Think.lang.smscf_wj_username}</td>
                <td class="vatop rowform">
                    <input type="text" name="smscf_wj_username" id="smscf_wj_username" value="{$list_config.smscf_wj_username}" class="w200"/>
                </td>
                <td class="vatop tips"></td>
            </tr>
            <tr class="noborder smscf_type_wj" {if $list_config.smscf_type!='wj'}style="display:none"{/if}>
                <td class="required w120">{$Think.lang.smscf_wj_key}</td>
                <td class="vatop rowform">
                    <input type="text" name="smscf_wj_key" id="smscf_wj_key" value="{$list_config.smscf_wj_key}" class="w200"/>
                    <a href="http://sms.webchinese.com.cn/" target="_blank" class="btn btn-blue btn-mini">{$Think.lang.ds_apply}</a>
                </td>
                <td class="vatop tips"></td>
            </tr>
            <tr class="noborder smscf_type_smsbao" {if $list_config.smscf_type!='smsbao'}style="display:none"{/if}>
                <td class="required w120">{$Think.lang.smscf_smsbao_username}</td>
                <td class="vatop rowform">
                    <input type="text" name="smscf_smsbao_username" id="smscf_smsbao_username" value="{$list_config.smscf_smsbao_username}" class="w200"/>
                </td>
                <td class="vatop tips"></td>
            </tr>
            <tr class="noborder smscf_type_smsbao" {if $list_config.smscf_type!='smsbao'}style="display:none"{/if}>
                <td class="required w120">{$Think.lang.smscf_smsbao_key}</td>
                <td class="vatop rowform">
                    <input type="text" name="smscf_smsbao_key" id="smscf_smsbao_key" value="{$list_config.smscf_smsbao_key}" class="w200"/>
                    <a href="https://console.smsbao.com/#/register" target="_blank" class="btn btn-blue btn-mini">{$Think.lang.ds_apply}</a>
                </td>
                <td class="vatop tips"></td>
            </tr>

五:接着替换app\admin\view\message\mobile.htmlscript标签内的代码

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
$(document).ready(function(){
        $('#send_test_mobile').click(function(){
            $.ajax({
                type:'POST',
                url:"{:url('Message/mobile_testing')}",
                data:{
                    'smscf_sign':$('#smscf_sign').val(),
                    'smscf_type':$('#smscf_type').val(),
                    'smscf_ali_secret':$('#smscf_ali_secret').val(),
                    'smscf_ali_id':$('#smscf_ali_id').val(),
                    'ali_template_content':$('#ali_template_content').val(),
                    'ali_template_param':$('#ali_template_param').val(),
                    'ali_template_code':$('#ali_template_code').val(),
                    'smscf_ten_secret':$('#smscf_ten_secret').val(),
                    'smscf_ten_id':$('#smscf_ten_id').val(),
                    'ten_template_content':$('#ten_template_content').val(),
                    'ten_template_param':$('#ten_template_param').val(),
                    'ten_template_code':$('#ten_template_code').val(),
                    'mobile_test_content':$('#mobile_test_content').val(),
                    'smsbao_test_content':$('#smsbao_test_content').val(),
                    'smscf_wj_username':$('#smscf_wj_username').val(),
                    'smscf_wj_key':$('#smscf_wj_key').val(),
                    'smscf_smsbao_username':$('#smscf_smsbao_username').val(),
                    'smscf_smsbao_key':$('#smscf_smsbao_key').val(),
                    'mobile_test':$('#mobile_test').val()
                },
                error:function(html){
                    layer.alert('{$Think.lang.ds_common_op_fail}');
                },
                success:function(html){
                    if(html.msg){
                        layer.alert(html.msg);
                    }
                },
                dataType:'json'
            });
        });
        $('#smscf_type').change(function(){
            if($(this).val()=='smsbao'){
                $('.smscf_type_smsbao').show()
                $('.smscf_type_ali').hide()
                $('.smscf_type_wj').hide()
                $('.smscf_type_ten').hide()
            }
            if($(this).val()=='wj'){
                $('.smscf_type_ali').hide()
                $('.smscf_type_wj').show()
                $('.smscf_type_ten').hide()
                $('.smscf_type_smsbao').hide()
            }
            if($(this).val()=='ali'){
                $('.smscf_type_ali').show()
                $('.smscf_type_wj').hide()
                $('.smscf_type_ten').hide()
                $('.smscf_type_smsbao').hide()
            }
            if($(this).val()=='ten'){
                $('.smscf_type_ali').hide()
                $('.smscf_type_wj').hide()
                $('.smscf_type_ten').show()
                $('.smscf_type_smsbao').hide()
            }
        })
    });

六:接着打开项目extend\sendmsg\Sms.php替换send增加smsbao_send方法

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
    /*
     * 发送手机短信
     * @param unknown $mobile 手机号
     * @param unknown $smslog_param 短信参数
    */
    public function send($mobile$smslog_param)
    {
        if(config('ds_config.smscf_type')=='wj'){
            $content=$smslog_param['message'];
            return $this->mysend_sms($mobile$content);
        }elseif(config('ds_config.smscf_type')=='smsbao'){
            $content=$smslog_param['message'];
            return $this->smsbao_send($mobile$content);
        }elseif(config('ds_config.smscf_type')=='ali'){
            return $this->ali_send($mobile$smslog_param);
        }elseif(config('ds_config.smscf_type')=='ten'){
            return $this->ten_send($mobile$smslog_param);
        }else{
            return ds_callback(false,lang('param_error'));
        }
    }
 
     
     /*
    您验证码是:{$verify_code}
   http://api.smsbao.com/sms?u=本站用户名&p=接口安全秘钥&m=手机号码E&c=短信内容
    */
    public function smsbao_send($mobile$content)
    {
        $statusStr array(
            "0" => "短信发送成功",
            "-1" => "参数不全",
            "-2" => "服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间!",
            "30" => "密码错误",
            "40" => "账号不存在",
            "41" => "余额不足",
            "42" => "帐户已过期",
            "43" => "IP地址限制",
            "50" => "内容含有敏感词"
            );
 
        $user_name = config('ds_config.smscf_smsbao_username'); // 这里填写用户名
        $key = config('ds_config.smscf_smsbao_key'); // 这里填接口安全密钥
        if (!$mobile || !$content || !$user_name || !$key)
            return false;
        if (is_array($mobile)) {
            $mobile = implode(","$mobile);
        }
        $mobile=urlencode($mobile);
        $content=urlencode($content);
        $url "http://api.smsbao.com/sms?u=" $user_name "&p=" $key "&m=" $mobile "&c=" $content;
        
        if (function_exists('file_get_contents')) {
            $res file_get_contents($url);
        }
        else {
            $ch = curl_init();
            $timeout = 5;
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
            $res = curl_exec($ch);
            curl_close($ch);
        }
 
        //短信发送后返回值 说明
        $message $statusStr[$res];
         
        if($res == '0'){
            return ds_callback(true);
        }else{
            return ds_callback(false,$message);
        }
    }
     

好了经过以上的添加,短信宝的短信平台已经替换成功了,可以正常使用了

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

另外:我们已经开发好完整的DSKMS-内容视频付费系统短信宝插件,点击此链接 下载及查看安装流程。

开源插件

最新更新

电商类

CMS类

微信类

文章标签