友点CMS系统是一款免费、开源、轻便、安全、专业建站、PC+手机+微官网+小程序+APP五站合一、一站式智能建站平台。今天小编为大家讲解一下YouDianCMS 9.5.14稳定版这个版本的短信插件该如何开发,短信接口使用的是我们短信宝短信群发平台,我们短信宝短信群发平台极其稳定,而且短信发送速度相当快捷,验证码和订单通知在3~5秒就能收到,用户体验非常好,注册就送测试短信。
1:打开项目: App\Tpl\Admin\Default\Config\other.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
|
<div class="box-header" id="c3"> <h4>短信接口设置 <span class="extra">可用于:手机注册、短信找回密码、订单提醒、留言提醒、反馈提醒。请在相应功能设置短信内容模板</span> </h4> </div> <div class="box-content"> <table class="boxtable"> <tr> <th nowrap="nowrap" style="width:20%">短信宝</th> <td style="width:80%"> <select name="SMS_TYPE"> <option value="Huyi">短信宝</option> </select> <span style="color:#F30; padding-left:3px;"><a target="_blank" href="https://smsbao.com/reg" >还没有注册账号?立即注册</a></span> </td> </tr> <tr> <th nowrap="nowrap" style="width:20%">短信宝账号</th> <td style="width:80%"> <input type="text" class="textinput" style="width:270px;" name="SMS_ACCOUNT" value="{$SmsAccount}" /> <span class='Caution'>请填写短信宝账号</span></td> </td> </tr> <tr> <th nowrap="nowrap" style="width:20%">短信宝密码</th> <td style="width:80%"> <input type="text" class="textinput" style="width:270px;" name="SMS_PASSWORD" value="{$SmsPassword}" /> <span class='Caution'>请填写短信宝密码</span> </td> </tr> <tr> <th nowrap="nowrap" style="width:20%">每个IP每天最多能发送几条短信</th> <td style="width:80%"> <input type="number" class="textinput" style="width:60px;" maxlength="5" name="SMS_IP_MAX" value="{$SmsIpMax}" /> <span class='Caution'>请根据实际情况设置,默认值为:20</span> </td> </tr> <tr> <th nowrap="nowrap" style="width:20%">每个手机每天最多能发送几条短信</th> <td style="width:80%"> <input type="number" class="textinput" style="width:60px;" maxlength="5" name="SMS_NUM_MAX" value="{$SmsNumMax}" /> <span class='Caution'>请根据实际情况设置,默认值为:60</span> </td> </tr> <tr> <th nowrap="nowrap" style="width:20%">剩余短信条数</th> <td style="width:80%; padding:8px 0;"> <span id="leftnum" style="font-weight:bold;color:blue; margin-right:8px;"></span> <a class="btnSuccess btnSmall" onclick="getLeftNum()">点击查询</a> </td> </tr> <tr> <th>手机注册验证码短信发送测试</th> <td> <input type="text" class="textinput" style="width:120px; float:left; " maxlength="18" name="Mobile" id="Mobile" value="" placeholder="请输入手机号码" /> <span style="float:left; margin:7px 3px 7px 15px;">验证码</span> <input type="text" class="textinput" style="width:60px; float:left; " maxlength="4" name="CodeNum" id="CodeNum" value="{:rand_string(4,1)}" placeholder="验证码" /> <a class="btnSuccess btnSmall" style="float:left;margin:2px 8px;" onclick="sendSmsTest()" id="btnPick" target="_blank">短信发送测试</a> <span style="float:left; margin-left:5px;" id="smstip"></span> <span class='Caution'>发送前,请先保存设置!</span></td> </td> </tr> <tr> <th><span style="color:red;">配置步骤:</span></th> <td><span style="color:red;"> [1] 在本后台设置全部短信模板(如:手机注册验证码模板、订单通知模板等) [2] 登录短信服务商的后台,将[1]设置的模板提交审核,审核通过后才能发送相关短信! </span> </td> </tr> </table> </div> |
2:打开项目:App\Lib\Action\Admin\ConfigAction.class.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
|
function other(){ header("Content-Type:text/html; charset=utf-8"); $m = D('Admin/Config'); $data = $m->getConfig('other'); //配置数据不从缓存中提取 $this->assign('AdminPageSize', $data['ADMIN_PAGE_SIZE'] ); $this->assign('AdminRollPage', $data['ADMIN_ROLL_PAGE'] ); $this->assign('AutoDelEnable', $data['AUTO_DEL_ENABLE'] ); $this->assign('AutoUploadEnable', $data['AUTO_UPLOAD_ENABLE'] ); $this->assign('DelLinkEnable', $data['DEL_LINK_ENABLE'] ); $this->assign('TextEditor', $data['TextEditor'] ); $this->assign('AllowLink', $data['ALLOW_LINK'] ); $this->assign('SearchPageSize', $data['SearchPageSize'] ); $this->assign('HomeRollPage', $data['HomeRollPage'] ); $this->assign('ChannelTreeWidth', $data['ChannelTreeWidth'] ); //更新短信方面 $this->assign('SmsAccount', $data['SMS_ACCOUNT'] ); $this->assign('SmsPassword', $data['SMS_PASSWORD'] ); $this->assign('SmsIpMax', $data['SMS_IP_MAX'] ); $this->assign('SmsNumMax', $data['SMS_NUM_MAX'] ); $this->assign('Action', __URL__.'/saveOther' ); $this->display(); } function getLeftNum(){ $data = $GLOBALS['Config']; import("@.Common.YdSms"); $obj = YdSms::getInstance( $data['SMS_TYPE'] ); $obj->setConfig( $data ); $num = $obj->getLeftNum(); if( is_numeric($num)){ $this->ajaxReturn(null, $num, 1); }else{ $this->ajaxReturn(null, "查询失败,{$num}" , 0); } } //短信发送测试 function sendSmsTest(){ $mobile = $_GET['mobile']; $code = $_GET['code']; //校验码 $content = $GLOBALS['Config']['MOBILE_REG_TEMPLATE']; //读取模板 $msg = ''; $result = send_sms($mobile, $content, array('{$Code}'=>$code), 1, $msg); if( $result ){ $this->ajaxReturn(null, $msg, 1); }else{ $this->ajaxReturn(null, "发送失败,{$msg}" , 0); } } |
3:打开项目:App\Lib\Common\YdSms.class.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
|
public function getLeftNum(){ $sendurl = $smsapi."query?u=".$this->AccountName."&p=".md5($this->AccountPassword); $result =file_get_contents($sendurl) ; $result = explode(',',$result); $num = $result[1] ? $result[1] : ''; if($num > 0 ){ return $num; }else{ return $num; } } public function sendNotifyMessage($mobile, $content){ if( !$this->check($mobile) ) { $this->writeLog($mobile, $content, "发送失败,".$this->Message); return false; } $content = $this->parsePlaceholder($content); $statusStr = array( "0" => "短信发送成功", "-1" => "参数不全", "-2" => "服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间!", "30" => "密码错误", "40" => "账号不存在", "41" => "余额不足", "42" => "帐户已过期", "43" => "IP地址限制", "50" => "内容含有敏感词" ); $user = $this->AccountName; //短信平台帐号 $pass = md5($this->AccountPassword); //短信平台密码 $phone = $mobile;//要发送短信的手机号码 $sendurl = $smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content); $result =file_get_contents($sendurl) ; $this->Message = $statusStr[$result]; if( $result == 0 ){ $this->writeLog($mobile, $content, $statusStr[$result]); return true; }else{ $this->writeLog($mobile, $content, "发送失败,".$statusStr[$result]); return false; } } |
经过上面的替换,短信宝的短信平台已经替换成功了,可以正常使用了。进行测试发送:
报备一下短信宝的VIP模板,这样就可以走短信宝的优质通道了,即便遇到敏感文字我们都不会人工审核,短信内容3~5秒就可送达。
另外:我们已经开发好完整的YouDianCMS 9.5.14系统短信宝插件,点击此链接 下载及查看安装流程。
最新更新
电商类
CMS类
微信类