待发短信

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

4001-021-502

工作时间

9:00-21:00

智简魔方业务系统V10新增短信宝短信接口

智简魔方业务管理系统是一套基于PHP+MYSQL构建开源免费的业务管理系统。具有丰富的插件市场,今天小编就以新增短信接口为例,给大家讲解一下如何进行二次开发,使用的短信接口是我们短信宝短信群发平台的短信接口,我们短信宝短信群发平台的接口非常稳定,发送速度快,注册就送测试短信,推荐大家使用。
插件目录结构如下
├─smsbao插件目录
│ ├─config
│ │ ├─smsTemplate.php 相关短信模板
│ ├─config.php 短信宝设置
│ ├─Smsbao.php 短信宝插件信息描述以及核心发送类
下面具体给大家说一下每个文件的作用及代码,
1:打开项目:config/smsTemplate.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
<?php
return [
    [
        'title' => '验证码',
        'content' => '验证码{code},5分钟内有效!请勿泄漏于他人',
        'name'=>'code'
    ],
    [
        'title' => '用户登录',
        'content' => '您的账号{account}成功登录系统,如不是本人操作请及时修改密码',
        'name'=>'client_login_success'
    ],
    [
        'title' => '用户注册',
        'content' => '{account},感谢您支持{system_website_name}',
        'name'=>'client_register_success'
    ],
    [
        'title'=> '客户更改手机',
        'content' => '您的手机号被改为:{client_phone},请注意账户安全',
        'name'=>'client_change_phone'
    ],
    [
        'title' => '客户更改密码',
        'content' => '您的密码被改为:{client_password},请注意账户安全',
        'name'=>'client_change_password'
    ],
    [
        'title' => '订单创建',
        'content' => '您已下单,订单:{order_id}(订单号),请及时支付',
        'name'=>'order_create'
    ],
    [
        'title' => '产品开通中',
        'content' => '您的产品:{product_name}(产品名称)正在开通,请耐心等待',
        'name'=>'host_pending'
    ],
    [
        'title' => '开通成功',
        'content' => '您的产品:{product_name}(产品名称),已开通可使用',
        'name'=>'host_active'
    ],
    [
        'title' => '产品暂停通知',
        'content' => '您的产品:{product_name}(产品名称),由于{product_suspend_reason},已停用',
        'name'=>'host_suspend'
    ],
    [
        'title' => '产品解除暂停通知',
        'content' => '您的产品:{product_name}(产品名称),已解除暂停',
        'name'=>'host_unsuspend'
    ],
    [
        'title' => '产品删除通知',
        'content' => '您的产品:{product_name}(产品名称),由于到期未续费,已删除',
        'name'=>'host_terminate'
    ],
    [
        'title' => '产品升降级',
        'content' => '您已成功升级产品{product_name},感谢您的支持',
        'name'=>'host_upgrad'
    ],
    [
        'title' => '第一次续费提醒',
        'content' => '您的产品:{product_name}(产品名称),还有{renewal_first}天到期,请及时续费',
        'name'=>'host_renewal_first'
    ],
    [
        'title' => '第二次续费提醒',
        'content' => '您的产品:{product_name}(产品名称),还有{renewal_second}天到期,请及时续费',
        'name'=>'host_renewal_second'
    ],
    [
        'title' => '逾期付款第一次提醒',
        'content' => '您的产品:{product_name}(产品名称)已到期,将会删除,请及时续费',
        'name'=>'host_overdue_first'
    ],
    [
        'title'=>'逾期付款第二次提醒',
        'content'=> '您的产品:{product_name}(产品名称)已到期,将会删除,请及时续费',
        'name'=>'host_overdue_second'
    ],
    [
        'title' => '逾期付款第三次提醒',
        'content' => '您的产品:{product_name}(产品名称)已到期,将会删除,请及时续费',
        'name'=>'host_overdue_third'
    ],
    [
        'title' => '订单未付款通知',
        'content' => '您的订单:{order_id}(订单号)尚未支付,金额{order_amount},请及时支付',
        'name'=>'order_overdue'
    ],
    [
        'title' => '订单金额修改',
        'content' => '您的订单:{order_id}(订单号)金额修改为{order_amount},请及时支付',
        'name'=>'admin_order_amount'
    ],
    [
        'title' => '订单支付通知',
        'content' => '您的订单:{order_id}(订单号)支付成功,支付金额为:{order_amount}元',
        'name'=>'order_pay'
    ],
    [
        'title' => '充值成功通知',
        'content' => '充值成功,本次充值金额为:{order_amount}元',
        'name'=>'order_recharge'
    ],
];

2:打开项目:config.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
<?php
/*
 
 */
return [
   'user'=> [
      'title' => '短信宝账号'
      'type'  => 'text'
      'value' => '',
      'tip'   => '',
   ],
   'pass'=> [
      'title' => '短信宝密码'
      'type'  => 'text'
      'value' => '',
      'tip'   => ''
   ],
   'sign'=> [
      'title' => '短信宝签名'
      'type'  => 'text',
      'value' => '',
      'tip'   => ''
   ],
];

3:打开项目:Smsbao.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
<?php
namespace sms\Smsbao;
use app\common\lib\Plugin;
 
class Smsbao extends Plugin
{
    # 基础信息
    public $info = array(
        'name'        => 'Smsbao',
        'title'       => '短信宝短信',
        'description' => '短信宝短信',
        'status'      => 1,
        'author'      => '短信宝',
        'version'     => '1.0',
        'help_url'     => 'https://www.smsbao.com/',//申请接口地址
    );
    # 插件安装
    public function install()
    {
        //导入模板
        $smsTemplate= [];
        if (file_exists(__DIR__.'/config/smsTemplate.php')){
            $smsTemplate = require __DIR__.'/config/smsTemplate.php';
        }
        return $smsTemplate;
    }
    # 插件卸载
    public function uninstall()
    {
        return true;//卸载成功返回true,失败false
    }
 
    #获取国内模板
    public function getCnTemplate($params)
    {
        $data['status']='success';
        $data['template']['template_status']=2;
        return $data;
    }
    #创建国内模板
    public function createCnTemplate($params)
    {
        $data['status']='success';
        $data['template']['template_status']=2;
        return $data;
    }
    #修改国内模板
    public function putCnTemplate($params)
    {
        $data['status']='success';
        $data['template']['template_status']=2;
        return $data;
    }
    #删除国内模板
    public function deleteCnTemplate($params)
    {
        $data['status']='success';
        return $data;
    }
    #发送国内短信
    public function sendCnSms($params)
    {
        $content=$this->templateParam($params['content'],$params['templateParam']);
        $param['content']=$this->templateSign($params['config']['sign']).$content;
        $param['mobile']=trim($params['mobile']);
        $resultTemplate= $this->APIHttpRequestCURL('cn',$param,$params['config']);
        if($resultTemplate['status']=="success"){
            $data['status']="success";
            $data['content']=$content;
        }else{
            $data['status']="error";
            $data['content']=$content;
            $data['msg']=$resultTemplate['msg'];
        }
        return $data;
    }
    #获取国际模板
    public function getGlobalTemplate($params)
    {
        $data['status']='success';
        $data['template']['template_status']=2;
        return $data;
    }
    #创建国际模板
    public function createGlobalTemplate($params)
    {
        $data['status']='success';
        $data['template']['template_status']=2;
        return $data;
    }
    #修改国际模板
    public function putGlobalTemplate($params)
    {
        $data['status']='success';
        $data['template']['template_status']=2;
        return $data;
    }
    #删除国际模板
    public function deleteGlobalTemplate($params)
    {
        $data['status']='success';
        return $data;
    }
    #发送国际短信
    public function sendGlobalSms($params)
    {
        $content=$this->templateParam($params['content'],$params['templateParam']);
        $param['content']=$this->templateSign($params['config']['sign']).$content;
        $param['mobile']=trim($params['mobile']);
        $resultTemplate= $this->APIHttpRequestCURL('global',$param,$params['config']);
        if($resultTemplate['status']=="success"){
            $data['status']="success";
            $data['content']=$content;
        }else{
            $data['status']="error";
            $data['content']=$content;
            $data['msg']=$resultTemplate['msg'];
        }
        return $data;
    }
    # 以下函数名自定义
    private function APIHttpRequestCURL($sms_type='cn',$params,$config){
        if($sms_type=='cn'){
            $url='https://api.smsbao.com/sms';
            $phone = $params['mobile'];
        }else if($sms_type=="global"){
            $url='https://api.smsbao.com/wsms';
            $phone = urlencode($params['mobile']);
        }
        $statusStr = array(
            "0" => "短信发送成功",
            "-1" => "参数不全",
            "-2" => "服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间!",
            "30" => "密码错误",
            "40" => "账号不存在",
            "41" => "余额不足",
            "42" => "帐户已过期",
            "43" => "IP地址限制",
            "50" => "内容含有敏感词",
            "51" => "手机号码不正确"
        );
        $user = $config['user']; //短信平台帐号
        $pass = md5($config['pass']); //短信平台密码
        $content= $params['content'];//要发送的短信内容
        $sendurl = $url."?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content);
        $result =file_get_contents($sendurl) ;
        //短信发送成功返回True,失败返回false
        if ($result  == '0') {
            return array('status' => "success"'msg' => $statusStr[$result]);
        else {
            return array('status' => "error"'msg' =>  $statusStr[$result] . '. Code: ' . $result);
        }
    }
    private function templateParam($content,$templateParam){
        foreach ($templateParam as $key => $para) {
            $content = str_replace('{' . $key . '}', $para, $content);//模板中的参数替换
        }
        return $content;
    }
    private function templateSign($sign){
        $sign = str_replace("【","",$sign);
        $sign = str_replace("】","",$sign);
        $sign = "【".$sign."】";
        return $sign;
    }
}

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

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

另外:我们已经开发好完整的智简魔方业务系统V10短信宝插件,点击此链接 下载及查看安装流

开源插件

最新更新

电商类

CMS类

微信类

文章标签