待发短信

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

4001-021-502

工作时间

9:00-21:00

星聚合登录系统新增短信宝短信接口

星聚合登录系统是一套采用thinkphp+mysql开发的企业级聚合登录认证平台,提供安全、稳定、高效的身份验证服务。助力企业快速构建统一身份认证体系。今天小编带着大家一起开发1.0.0版本的短信宝插件接口。我们使用的短信接口是我们短信宝短信群发平台的短信接口,我们短信宝短信群发平台非常稳定,发送速度快,注册就送测试短信,推荐大家使用。
首先执行以下sql语句增加短信配置信息

1
2
3
4
5
6
# 注意表明是否有前缀
ALTER TABLE settings
ADD `sms_smsbao_username` varchar(100)  DEFAULT '' COMMENT '短信宝账号',
ADD  `sms_smsbao_apikey` varchar(100) DEFAULT '' COMMENT '短信宝APIKEY',
ADD    `sms_smsbao_sign_name` varchar(50)  DEFAULT '' COMMENT '短信签名',
ADD  `sms_smsbao_template_content` varchar(255) DEFAULT '' COMMENT '模板内容';

接着打开项目views\admin\settings\notify.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
<!-- 短信宝配置 -->
<div id="smsbaoConfig"
    style="margin-top: 1rem; <?= ($settings['sms_provider'] ?? '') !== 'smsbao' ? 'display: none;' : '' ?>">
    <div style="background-color: var(--bg-surface-hover); padding: 1.5rem; border-radius: var(--radius-md);">
        <p style="font-size: 0.875rem; color: var(--color-primary); margin-bottom: 1rem; font-weight: 500;">短信宝短信配置
        </p>
        <div style="display: grid; grid-template-columns: 1fr 1fr; gap: 1rem;">
            <div class="form-group">
                <label class="form-label">短信宝账号</label>
                <input type="text" name="settings[sms_smsbao_username]"
                    value="<?= e($settings['sms_smsbao_username'] ?? '') ?>" class="form-control">
            </div>
            <div class="form-group">
                <label class="form-label">ApiKey</label>
                <input type="password" name="settings[sms_smsbao_apikey]"
                    value="<?= e($settings['sms_smsbao_apikey'] ?? '') ?>" class="form-control">
            </div>
            <div class="form-group">
                <label class="form-label">短信签名</label>
                <input type="text" name="settings[sms_smsbao_sign_name]"
                    value="<?= e($settings['sms_smsbao_sign_name'] ?? '') ?>" class="form-control">
            </div>
            <div class="form-group" style="grid-column: 1 / -1;">
                <label class="form-label">模板内容</label>
                <input type="text" name="settings[sms_smsbao_template_content]"
                    value="<?= e($settings['sms_smsbao_template_content'] ?? '') ?>" class="form-control">
                <p
                    style="font-size: 0.75rem; color: var(--color-primary); margin-top: 0.5rem; padding: 0.5rem; background: rgba(var(--color-primary-rgb), 0.1); border-radius: var(--radius-sm);">
                    模板:您的验证码为{code},有效期5分钟,请勿泄露给他人。</p>
            </div>
        </div>
    </div>
</div>

接着打开项目app\Controllers\AuthController.php,在439行左右添加以下代码

1
2
3
4
5
6
7
8
if ($provider === 'smsbao') {
    $smsConfig = [
         'smsbao_username' => $config['sms_smsbao_username'] ?? '',
         'smsbao_apikey' => $config['sms_smsbao_apikey'] ?? '',
         'sign_name' => $config['sms_smsbao_sign_name'] ?? '',
         'template_content' => $config['sms_smsbao_template_content'] ?? '',
     ];

接着打开项目app\Controllers\AdminController.php,在487行左右添加以下代码

1
2
3
4
5
6
7
8
if ($provider === 'smsbao') {
    $smsConfig = [
         'smsbao_username' => $config['sms_smsbao_username'] ?? '',
         'smsbao_apikey' => $config['sms_smsbao_apikey'] ?? '',
         'sign_name' => $config['sms_smsbao_sign_name'] ?? '',
         'template_content' => $config['sms_smsbao_template_content'] ?? '',
     ];

最后打开项目core\Sms.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
     /**
     * 短信宝短信
     */
    private function sendSmsbao($phone$code$type)
    {
        $username $this->config['smsbao_username'] ?? '';
        $apikey $this->config['smsbao_apikey'] ?? '';
        $signName $this->config['sign_name'] ?? '';
        $templateContent $this->config['template_content'] ?? '';
        $neir str_replace('{code}',$code,$templateContent);
 
        if (empty($username) || empty($apikey)) {
            return ['success' => false, 'message' => '短信宝短信配置不完整'];
        }
 
         $statusStr array(
            "0" => "短信发送成功",
            "-1" => "参数不全",
            "-2" => "服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间!",
            "30" => "密码错误",
            "40" => "账号不存在",
            "41" => "余额不足",
            "42" => "帐户已过期",
            "43" => "IP地址限制",
            "50" => "内容含有敏感词",
            "51" => "手机号码不正确"
            );
         
         
        $url 'http://api.smsbao.com/sms?u=' $username '&p=' $apikey '&m=' $phone '&c=' . urlencode('【'$signName .'】'$neir);
         
        $ch = curl_init();
        curl_setopt_array($ch, [
            CURLOPT_URL => $url,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_TIMEOUT => 30,
        ]);
        $response = curl_exec($ch);
        curl_close($ch);
 
        $result = json_decode($response, true);
        if ($result == '30') {
            return ['success' => true, 'message' => '发送成功'];
        }
 
        return ['success' => false, 'message' => $statusStr[$result] ?? '发送失败'];
    }

好了经过以上的添加,短信宝的短信平台已经替换成功了,可以正常使用了

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

另外:我们已经开发好完整的星聚合登录系统短信宝插件,点击此链接 下载及查看安装流程。

开源插件

最新更新

电商类

CMS类

微信类

文章标签