智简魔方财务管理系统是一套基于PHP+MYSQL构建开源的IDC财务管理系统。具有丰富的插件市场,今天小编就以新增短信接口为例,给大家讲解一下如何进行二次开发,使用的短信接口是我们短信宝短信群发平台的短信接口,我们短信宝短信群发平台的接口非常稳定,发送速度快,注册就送测试短信,推荐大家使用
├─smsbao插件目录
│ ├─config
│ │ ├─description.html
│ │ ├─smsTemplate.php 相关短信模板
│ ├─config.php 短信宝设置
│ ├─SmsbaoPlugin.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
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
|
<?php return [ [ 'type' => '账单支付' , 'var' => '${username},您已成功支付账单号#${invoiceid},账单金额${total}.' , 'name' => 'invoice_pay' ], [ 'type' => '账单支付逾期' , 'var' => '${username},您的账单【${invoiceid}】已逾期,金额${total},请及时支付' , 'name' => 'invoice_overdue_pay' ], [ 'type' => '提交工单' , 'var' => '${username},您的工单:【${subject}】正在处理中,请耐心等待' , 'name' => 'submit_ticket' ], [ 'type' => '工单回复' , 'var' => '${username},您的工单【${subject}】有新回复' , 'name' => 'ticket_reply' ], [ 'type' => '产品暂停' , 'var' => '${username},您的产品${product_name}由于${description}已被暂停,如需恢复使用,请尽快处理' , 'name' => 'host_suspend' ], [ 'type' => '未支付账单' , 'var' => '${username},您的账单【#${invoiceid}】,金额${total},尚未支付' , 'name' => 'unpay_invoice' ], [ 'type' => '发送验证码' , 'var' => '验证码${code},5分钟内有效,请勿泄漏于他人' , 'name' => 'send_code' ], [ 'type' => '登录短信提醒' , 'var' => '${username},您于${time}在IP${address}登录.如不是您的登录,请立即更改密码.' , 'name' => 'login_sms_remind' ], [ 'type' => '订单退款' , 'var' => '订单${order_id},金额${order_total_fee}已退款' , 'name' => 'order_refund' ], [ 'type' => '订单支付提醒(客户)' , 'var' => '您的订单【${order_id}】已付款,金额:${order_total_fee}' , 'name' => 'invoice_payment_confirmation' ], [ 'type' => '账单未付款提醒' , 'var' => '${username},您的产品${product_name}(主机名${hostname})将于${product_end_time}到期.请及时续费' , 'name' => 'second_renew_product_reminder' ], [ 'type' => '自动生成续费账单提醒' , 'var' => '您购买的产品${product_name}(主机名${hostname})将于${product_end_time}到期,到期后将无法使用' , 'name' => 'renew_product_reminder' ], [ 'type' => '第3次逾期提醒' , 'var' => '您在${product_first_time}订购的${product_name}产品(主机名:${hostname})请及时支付' , 'name' => 'third_invoice_payment_reminder' ], [ 'type' => '第2次逾期提醒' , 'var' => '您在${product_first_time}订购的${product_name}产品(主机名:${hostname})请及时支付' , 'name' => 'second_invoice_payment_reminder' ], [ 'type' => '第1次逾期提醒' , 'var' => '您在${product_first_time}订购的${product_name}产品(主机名:${hostname})请及时支付' , 'name' => 'first_invoice_payment_reminder' ], [ 'type' => '下单提醒(客户)' , 'var' => '您已于${order_create_time}成功下单${product_name},总价${product_price},请及时付款' , 'name' => 'new_order_notice' ], [ 'type' => '产品开通提醒(用户)' , 'var' => '您购买的【${product_name}】已开通!' , 'name' => 'default_product_welcome' ], [ 'type' => '未续期产品删除提醒(用户)' , 'var' => '产品${product_name}(${hostname})${product_mainip}未续费,已自动删除' , 'name' => 'service_termination_notification' ], [ 'type' => '续费成功提醒(用户)' , 'var' => '您购买的产品(${product_name})现已续费成功,到期时间${product_end_time}' , 'name' => 'service_unsuspension_notification' ], [ 'type' => '未实名暂停产品' , 'var' => '您的产品:${product_name},${product_mainip},由于未实名,已被暂停' , 'name' => 'uncertify_reminder' ], [ 'type' => '工单已开通提醒(客户)' , 'var' => '工单:【${ticketnumber_tickettitle}】火速处理中' , 'name' => 'support_ticket_opened' ], [ 'type' => '成功绑定提醒(客户)' , 'var' => '您的账号${username}与此${epw_type}:(${epw_account})已成功进行绑定.' , 'name' => 'email_bond_notice' ], [ 'type' => '注册成功' , 'var' => '${username},感谢注册${system_companyname}' , 'name' => 'registration_success' ], [ 'type' => '信用额账单提醒' , 'var' => '您有一笔信用额账单产生:账单号#${invoiceid},金额${total},请及时付款' , 'name' => 'credit_limit_invoice_notice' ], [ 'type' => '信用额账单逾期提醒' , 'var' => '您有一笔信用额账单#${invoiceid},金额${total}逾期未支付,相关产品已被暂停' , 'name' => 'credit_limit_invoice_payment_reminder' ], [ 'type' => '信用额账单未支付暂停产品' , 'var' => '您购买的产品:${product_name},(${hostname})由于未支付信用账单,现已被暂停' , 'name' => 'credit_limit_invoice_payment_reminder_host_suspend' ], [ 'type' => '解除暂停提醒(用户)' , 'var' => '您拥有的产品${product_name}现已解除暂停恢复使用,感谢您的支持!' , 'name' => 'resume_use' ], [ 'type' => '实名认证通过提醒(用户)' , 'var' => '${username},您提交的实名认证审核已通过!' , 'name' => 'realname_pass_remind' ], [ 'type' => '账号绑定提示(用户)' , 'var' => '${username},您已绑定[${system_companyname}],如非您本人操作,请立即更改登录密码' , 'name' => 'binding_remind' ], ]; |
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:打开项目:SmsbaoPlugin.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
167
168
169
170
171
|
<?php namespace sms\simple; use app\admin\lib\Plugin; class SmsbaoPlugin extends Plugin { # 基础信息 public $info = array( 'name' => 'Smsbao' , 'title' => 'Smsbao短信服务' , 'description' => 'Smsbao短信服务' , 'status' => 1, 'author' => '小乐' , 'version' => '1.0' , ); # 插件安装 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 description() { return file_get_contents(__DIR__. '/config/description.html' ); } #获取国内模板 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){ $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' ]; //要发送的短信内容 $phone = $params[ 'mobile' ]; //要发送短信的手机号码 $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秒就可送达。
另外:我们已经开发好完整的智简魔方财务系统短信宝插件,点击此链接 下载及查看安装流
最新更新
电商类
CMS类
微信类