微擎是一款免费开源的公众平台管理系统,基于web2.0技术架构,他有很多的扩展模块,二次开发也非常方便,小编最近发现微擎升级到了2.7.4版本,今天小编就以微擎2.7.4版本的替换短信接口为例告诉大家如何进行二次开发,使用的短信接口是我们短信宝短信群发平台的接口,我们短信宝短信群发平台非常稳定,发送速度快,注册就送测试短信,推荐大家使用
1:打开项目:\web\themes\default\system\user-setting.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
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
|
{template 'common/header'}{template 'system/user-setting-header'}<form action="" method="post" class="we7-form"> {if $do == 'login'} <div id="login"> <div class="form-group"> <label class="col-sm-2 control-label" style="text-align:left;">图形验证码</label> <div class="col-sm-8 form-control-static"> <input type="radio" id="verifycode-1" name="verifycode" {if $settings['verifycode'] == 1} checked="checked" {/if} value="1" /> <label class="radio-inline" for="verifycode-1"> 开启 </label> <input type="radio" id="verifycode-0" name="verifycode" {if $settings['verifycode'] == 0} checked="checked" {/if} value="0" /> <label class="radio-inline" for="verifycode-0"> 关闭 </label> <span class="help-block"> 开启后,用户登录需要输入图形验证码</span> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label" style="text-align:left;">用户首页设置</label> <div class="col-sm-8"> <select name="welcome_link" class="form-control"> <option value="{WELCOME_DISPLAY_TYPE}" {if $settings['welcome_link']==WELCOME_DISPLAY_TYPE}selected{/if}>用户欢迎页</option> <option value="{PLATFORM_DISPLAY_TYPE}" {if $settings['welcome_link']==PLATFORM_DISPLAY_TYPE}selected{/if}>平台</option> </select> <div class="help-block">统一设置用户登录后跳转的页面,用户也可以自行设置,以用户设置的为准</div> </div> </div> </div> {/if} {if $do == 'binding'} <div id="binding"> <div class="form-group"> <label class="col-sm-2 control-label" style="text-align:left;">强制绑定信息</label> <div class="col-sm-8 form-control-static"> <input type="radio" id="bind_status-0" name="bind" value="" {if empty($settings['bind'])}checked{/if}/> <label class="radio-inline" for="bind_status-0"> 无 </label> <input type="radio" id="bind_status-1" name="bind" value="qq" {if $settings['bind'] == 'qq'}checked{/if}/> <label class="radio-inline" for="bind_status-1"> qq </label> <input type="radio" id="bind_status-2" name="bind" value="wechat" {if $settings['bind'] == 'wechat'}checked{/if}/> <label class="radio-inline" for="bind_status-2"> 微信 </label> <input type="radio" id="bind_status-3" name="bind" value="mobile" {if $settings['bind'] == 'mobile'}checked{/if}/> <label class="radio-inline" for="bind_status-3"> 手机号 </label> <span class="help-block"> 选择后,用户登录后,将强制绑定所选方式</span> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label" style="text-align:left;">第三方登录入口</label> <div class="col-sm-8 form-control-static"> <input type="radio" name="oauth_bind" id="oauth_bind-1" value="1" {if $settings['oauth_bind'] == 1}checked{/if} /> <label class="radio-inline" for="oauth_bind-1"> 是 </label> <input type="radio" name="oauth_bind" id="oauth_bind-0" value="0" {if $settings['oauth_bind'] == 0}checked{/if}/> <label class="radio-inline" for="oauth_bind-0"> 否 </label> <div class="help-block">开启后,登录页面显示第三方登录入口,可以登录已关联账户或注册新帐号</div> </div> </div> </div> {/if} {if $do == 'sms'} <div id="sms"> <div class="form-group"> <label class="col-sm-2 control-label" style="text-align:left;">短信宝账号</label> <div class="col-sm-8"> <input type="text" name="sms_name" class="form-control" value="{$settings['sms_name']}" /> <span class="help-block">没有短信宝账号?点击<a class="btn btn-primary span3" target="_blank" href="http://www.smsbao.com">免费注册</a></span> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label" style="text-align:left;">短信宝密码</label> <div class="col-sm-8"> <input type="password" name="sms_password" class="form-control" value="{$settings['sms_password']}" /> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label" style="text-align:left;">短信签名</label> <div class="col-sm-8"> <input type="text" name="sms_sign" class="form-control" value="{$settings['sms_sign']}" /> </div> </div> </div> {/if} <input type="submit" name="submit" value="提交" class="btn btn-primary" style="padding: 6px 50px;"> <input type="hidden" name="token" value="{$_W['token']}" /></form>{template 'common/footer'} |
2:打开项目:\web\source\utility\verifycode.ctrl.php 修改下send_code 方法
|
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
|
if ('send_code' == $do) { $verifycode_table = table('uni_verifycode'); $row = $verifycode_table->getByReceiverVerifycode($_W['uniacid'], $receiver, ''); $record = array(); $code = random(6, true); if (!empty($row)) { $imagecode = intval($_GPC['imagecode']); $failed_count = table('uni_verifycode')->getFailedCountByReceiver($receiver); if ($need_checkcaptcha && $failed_count >= 3) { if (empty($imagecode)) { iajax(-3, '请输入图形验证码!'); } if (!checkcaptcha($imagecode)) { iajax(-1, '图形验证码错误!'); } } if ($row['total'] >= 5) { iajax(-1, '您的操作过于频繁,请稍后再试'); } $record['total'] = $row['total'] + 1; } else { $record['uniacid'] = $_W['uniacid']; $record['receiver'] = $receiver; $record['total'] = 1; } $record['verifycode'] = $code; $record['createtime'] = TIMESTAMP; if (!empty($row)) { pdo_update('uni_verifycode', $record, array('id' => $row['id'])); } else { pdo_insert('uni_verifycode', $record); } if ('email' == $receiver_type) { load()->func('communication'); $content = "您的邮箱验证码为: {$code} 您正在使用{$uniacid_arr['name']}相关功能, 需要你进行身份确认."; $result = ihttp_email($receiver, "{$uniacid_arr['name']}身份确认验证码", $content); } else { load()->model('cloud'); $r = cloud_prepare(); if (is_error($r)) { iajax(-1, $r['message']); } $setting = uni_setting($_W['uniacid'], 'notify'); $content = "您的短信验证码为: {$code} 您正在使用{$uniacid_arr['name']}相关功能, 需要你进行身份确认"; $result = cloud_sms_send($receiver, $content, array(), $custom_sign); /* $postdata = array('verify_code' => $code, 'module' => $uniacid_arr['name']); $result = cloud_sms_send($receiver, '800002', $postdata, $custom_sign); */ } if (is_error($result)) { iajax(-1, $result['message']); } iajax(0, '短信发送成功!');} |
3:打开项目:\web\source\system\usersetting.ctrl.php 在16行左右新增短信配置
|
1
2
3
4
5
6
7
8
9
10
11
|
if ($do == 'sms') { $_W['page']['title'] = '短信配置'; if (checksubmit('submit')) { $settings['sms_name'] = $_GPC['sms_name']; $settings['sms_password'] = $_GPC['sms_password']; $settings['sms_sign'] = $_GPC['sms_sign']; setting_save($settings, 'copyright'); itoast('更新设置成功!', '', 'success'); }} |
|
1
2
3
4
5
6
7
|
<ul class="we7-page-tab"> <!--<li {if $type == 'system'}class="active"{/if}><a href="{php echo url('system/thirdlogin', array('type' => 'system'))}">系统登录</a></li>--> <li {if $action == 'registerset' && $do == 'display'}class="active"{/if}><a href="{php echo url('user/registerset/display');}">登录/注册设置</a></li> <li {if $action == 'thirdlogin'}class="active"{/if}><a href="{php echo url('system/thirdlogin')}">第三方配置</a></li> <li {if $do == 'clerk'}class="active"{/if}><a href="{php echo url('user/registerset/clerk')}">应用操作员登录/注册设置</a></li> <li {if $do == 'sms'}class="active"{/if}><a href="{php echo url('system/usersetting', array('do' => 'sms'))}">短信配置</a></li></ul> |
经过上面的替换,短信宝的短信平台已经替换成功了,可以正常使用了。进行测试发送:

报备一下短信宝的VIP模板,这样就可以走短信宝的优质通道了,即便遇到敏感文字我们都不会人工审核,短信内容3~5秒就可送达。
另外:我们已经开发好完整的微擎V_2.7.4系统短信宝插件,点击此链接 下载及查看安装流程。

