待發短信

在線客服
產品支持 短信寶客服
合作渠道 渠道合作
服務咨詢

4001-021-502

工作時間

9:00-18:00

laysns2.5新增短信寶短信接口

Laysns采用Think+Layui做為技術基礎進行開發,采用OOP方式進行基礎運行框架搭建,模塊化開發方式做為功能開發形式,五年開發經驗的團隊,勇于創新追求完美的設計理念,被更多的政府機構、教育機構、事業單位、商業企業、個人站長所認可。小編對他還是比較了解的,今天小編就以新增短信接口為例,給大家講解一下如何進行二次開發,我們今天講解的是2.54版本,使用的短信接口是我們短信寶短信群發平臺的短信接口,我們短信寶短信群發平臺的接口非常穩定,發送速度快,注冊就送測試短信,推薦大家使用。

打開項目:\application\index\controller\Api.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
function send_sms() {
 
      $arr=array(
          0=>'發送成功',
          30=>'短信平臺密碼錯誤',
          40=>'短信平臺賬號不存在',
          41=>'短信平臺余額不足',
          42=>'短信平臺帳戶已過期',
          43=>'IP地址受短信平臺限制',
          50=>'內容含有敏感詞',
          51=>'手機號碼不正確',
          -2=>'服務器空間不支持',
          -1=>'發送短信參數不全,請聯系站長'
      );
 
      $data $this->request->param();
      if (!captcha_check(input('vercode'))) {
          return json(array('code' => -1, 'msg' => '驗證碼錯誤'));
      }
      $code=rand(1000,9999);
      $mobile=$data['mobile'];
 
 
      $find = Db::name('system')->field('value')->where('name''sms')->find();
      $smsConfig = unserialize($find['value']);
      $params=explode("\n",$smsConfig['params']);
      $paramArr=[];
      foreach($params as $v){
          $_arr=explode("=",$v);
          $paramArr[$_arr[0]]=$_arr[1];
      }
     
      $ip=$this->request->ip();
      $modelnew SmsModel();
     
      $where1['created_at']=$where2['created_at']=['gt',date('Y-m-d')];
      $where1['mobile']=$mobile;
      $mobileCount=$model->where($where1)->count();
      if(!isset($smsConfig['mobile_max'])){
          return json(array('code' => -1, 'msg' => '短信服務配置有誤,請聯系管理員'));
      }
      $mobileMax=$smsConfig['mobile_max'];
      if($mobileCount>=$mobileMax){
          return json(array('code' => -1, 'msg' => '每個手機號每天限制發送'.$mobileMax.'條短信')); 
      }
      $where2['ip']=['eq',$ip];
      $ipCount=$model->where($where2)->count();
      $ipMax=$smsConfig['ip_max'];
      if($ipCount>=$ipMax){
          return json(array('code' => -1, 'msg' => '每個IP每天限制發送'.$ipMax.'條短信')); 
      }
//獲取結果
      $url $smsConfig['apiurl']."?u=".$paramArr['u']."&p=".md5($paramArr['p'])."&m=".$mobile."&c=".urlencode("【".$this->site_config['site_title']."】驗證碼:".$code.",您正在綁定".$this->site_config['site_title']."手機號,請5分鐘內完成驗證。如非本人操作,請忽略本短信。");
      $htd    new Http();
      $data $htd->get_curl($url);
      if(is_numeric($data)) {
          if($data==0){
              $model->type='REG';
              $model->content=$code;
              $model->mobile=$mobile;
              $model->ip=$ip;
              $model->expiry_time=date('Y-m-d H:i:s',time()+$smsConfig['expiry_time']);
              $model->save();
          }
   return json(array('code' => $data'msg' => $arr[$data]));
   }else{
          return json(array('code' => -1, 'msg' => $data));
      }
  
  }function send_sms() {
 
      $arr=array(
          0=>'發送成功',
          30=>'短信平臺密碼錯誤',
          40=>'短信平臺賬號不存在',
          41=>'短信平臺余額不足',
          42=>'短信平臺帳戶已過期',
          43=>'IP地址受短信平臺限制',
          50=>'內容含有敏感詞',
          51=>'手機號碼不正確',
          -2=>'服務器空間不支持',
          -1=>'發送短信參數不全,請聯系站長'
      );
 
      $data $this->request->param();
      if (!captcha_check(input('vercode'))) {
          return json(array('code' => -1, 'msg' => '驗證碼錯誤'));
      }
      $code=rand(1000,9999);
      $mobile=$data['mobile'];
 
 
      $find = Db::name('system')->field('value')->where('name''sms')->find();
      $smsConfig = unserialize($find['value']);
      $params=explode("\n",$smsConfig['params']);
      $paramArr=[];
      foreach($params as $v){
          $_arr=explode("=",$v);
          $paramArr[$_arr[0]]=$_arr[1];
      }
     
      $ip=$this->request->ip();
      $modelnew SmsModel();
     
      $where1['created_at']=$where2['created_at']=['gt',date('Y-m-d')];
      $where1['mobile']=$mobile;
      $mobileCount=$model->where($where1)->count();
      if(!isset($smsConfig['mobile_max'])){
          return json(array('code' => -1, 'msg' => '短信服務配置有誤,請聯系管理員'));
      }
      $mobileMax=$smsConfig['mobile_max'];
      if($mobileCount>=$mobileMax){
          return json(array('code' => -1, 'msg' => '每個手機號每天限制發送'.$mobileMax.'條短信')); 
      }
      $where2['ip']=['eq',$ip];
      $ipCount=$model->where($where2)->count();
      $ipMax=$smsConfig['ip_max'];
      if($ipCount>=$ipMax){
          return json(array('code' => -1, 'msg' => '每個IP每天限制發送'.$ipMax.'條短信')); 
      }
//獲取結果
      $url $smsConfig['apiurl']."?u=".$paramArr['u']."&p=".md5($paramArr['p'])."&m=".$mobile."&c=".urlencode("【".$this->site_config['site_title']."】驗證碼:".$code.",您正在綁定".$this->site_config['site_title']."手機號,請5分鐘內完成驗證。如非本人操作,請忽略本短信。");
      $htd    new Http();
      $data $htd->get_curl($url);
      if(is_numeric($data)) {
          if($data==0){
              $model->type='REG';
              $model->content=$code;
              $model->mobile=$mobile;
              $model->ip=$ip;
              $model->expiry_time=date('Y-m-d H:i:s',time()+$smsConfig['expiry_time']);
              $model->save();
          }
   return json(array('code' => $data'msg' => $arr[$data]));
   }else{
          return json(array('code' => -1, 'msg' => $data));
      }
  
  }

打開項目:\application\admin\view\site_config.html 新增下代碼

?
1
2
3
4
5
6
7
8
9
10
<div class="layui-form-item">
    <label class="layui-form-label">短信功能</label>
    <div class="layui-input-inline">
        <input type="radio" name="site_config[open_sms]" value="1" title="開啟" {if condition="@$site_config.open_sms eq 1" }checked{/if}>
        <input type="radio" name="site_config[open_sms]" value="0" title="關閉" {if condition="@$site_config.open_sms eq 0" }checked{/if}>
    </div>
    <a href="{:url('admin/system/sms')}" class="layui-btn layui-btn" style="float:left">
        短信寶配置
    </a>
</div>

打開項目:\application\admin\view\ 新增system_sms.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
{extend name="base" /} {block name="body"}
<form class="layui-form form-container" data-url="{:url('admin/system/updatesms')}" localtion-url="{:url('system/siteConfig')}">
 
    <div class="layui-tab-content">
        <div class="layui-tab-item layui-show">
            <div class="layui-form-item">
                        <label class="layui-form-label">短信接口地址</label>
                        <div class="layui-input-block">
                            <input type="text" name="sms[apiurl]" value="{$sms.apiurl|default='http://api.smsbao.com/sms'}" placeholder="填寫短信接口API地址" autocomplete="off" class="layui-input">
                        </div>
            </div>
            <div class="layui-form-item">
                    <label class="layui-form-label">單個手機發送條數</label>
                    <div class="layui-input-block">
                        <input type="text" name="sms[mobile_max]" value="{$sms.mobile_max|default='5'}" placeholder="每個手機每天可發送條數" autocomplete="off" class="layui-input">
                    </div>
            </div>
            <div class="layui-form-item">
                    <label class="layui-form-label">發送間隔</label>
                    <div class="layui-input-block">
                        <input type="number" name="sms[interval_time]" value="{$sms.interval_time|default='60'}" placeholder="每條短信發送間隔" autocomplete="off" class="layui-input">
                    </div>
            </div>
            <div class="layui-form-item">
                    <label class="layui-form-label">同一IP一天限制</label>
                    <div class="layui-input-block">
                        <input type="number" name="sms[ip_max]" value="{$sms.ip_max|default='10'}" placeholder="每條短信發送間隔" autocomplete="off" class="layui-input">
                    </div>
            </div>
            <div class="layui-form-item">
                    <label class="layui-form-label">過期時間</label>
                    <div class="layui-input-block">
                        <input type="number" name="sms[expiry_time]" value="{$sms.expiry_time|default='60'}" placeholder="過期時間(秒)" autocomplete="off" class="layui-input">
                    </div>
            </div>
           
            <div class="layui-form-item">
                <label class="layui-form-label">請求參數配置</label>
                <div class="layui-input-block">
                        <textarea name="sms[params]"  class="layui-textarea" style="height: 60px;">{$sms.params|default="u=你的用戶名/np=你的密碼"}</textarea>
                </div>
            
            </div>
        </div>
    </div>
    <div class="formbtngroup">
        <button id="creatlink" class="layui-btn layui-btn-sm" lay-submit="" type="submit" lay-filter="formadd">保存</button>
        <button onclick="history.go(-1);return false;" class="layui-btn layui-btn-primary layui-btn-sm">返回</button>
    </div>
</form>
 
{/block} {block name="js"}
<script type="text/javascript" src="__ADMIN__/js/formadd.js"></script>
 
{/block}

經過上面的替換,短信寶的短信平臺已經替換成功了,可以正常使用了。

 

報備一下短信寶的VIP模板,這樣就可以走短信寶的優質通道了,即便遇到敏感文字我們都不會人工審核,短信內容3~5秒就可送達。

另外:我們已經開發好完整的Laysns2.5短信寶插件,點擊此鏈接 下載及查看安裝流程。

 
開源插件
文章標簽
排列3和值遗漏