待发短信

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

4001-021-502

工作时间

9:00-21:00

ThinkCMFV5.1新增短信宝短信接口

ThinkCMF基于ThinkPHP开发,同时支持PHP-FPM和Swoole双模式;支持大数据量和多种缓存方式;数据库读写分离和集群部署。是一款非常不错的系统,小编今天就以替换短信接口为例带大家进行二次开发,我们使用的短信接口是我们短信宝短信群发平台的短信接口,我们短信宝短信群发平台非常稳定,发送速度快,注册就送测试短信,推荐大家使用
插件的目录结构如下:
├─smsbao_sms插件目录
│ ├─config.php 短信配置文件
│ ├─SmsbaoSmsPlugin.php 短信发送核心文件
下面具体给大家说一下每个文件的作用及代码,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
25
26
27
<?php
 return [
    'sms_user' => [// 在后台插件配置表单中的键名 ,会是config[text]
        'title' => '短信宝账号'// 表单的label标题
        'type' => 'text',// 表单的类型:text,password,textarea,checkbox,radio,select等
        'value' => '',// 表单的默认值
        'tip' => '主帐号,对应官网短信宝账号' //表单的帮助提示
    ],
    'sms_pwd' => [// 在后台插件配置表单中的键名 ,会是config[text]
        'title' => '短信宝密码'// 表单的label标题
        'type' => 'password',// 表单的类型:text,password,textarea,checkbox,radio,select等
        'value' => '',// 表单的默认值
        'tip' => '对应官网短信宝登录密码' //表单的帮助提示
    ],
    'sms_sign' => [// 在后台插件配置表单中的键名 ,会是config[text]
        'title' => '短信宝签名'// 表单的label标题
        'type' => 'text',// 表单的类型:text,password,textarea,checkbox,radio,select等
        'value' => '',// 表单的默认值
        'tip' => '对应短信宝官网申请的签名' //表单的帮助提示
    ],
    'template_id' => [// 在后台插件配置表单中的键名 ,会是config[text]
        'title' => '模板'// 表单的label标题
        'type' => 'text',// 表单的类型:text,password,textarea,checkbox,radio,select等
        'value' => '您的验证码是$code。如非本人操作,请忽略本短信',// 表单的默认值
        'tip' => '模板,填写短信宝后台申请的模板' //表单的帮助提示
    ],
];

SmsbaoSmsPlugin.php 短信发送核心文件 实现了原有sendMobileVerificationCode钩子函数 代码如下

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
<?php
namespace plugins\smsbao_sms;
use cmf\lib\Plugin;
class SmsbaoSmsPlugin extends Plugin
{
    public $info = [
        'name' => 'SmsbaoSms',
        'title' => '短信宝-短信插件',
        'description' => '短信宝-短信插件',
        'status' => 1,
        'author' => 'smsbao',
        'version' => '1.0'
    ];
    public $hasAdmin = 0;//插件是否有后台管理界面
    // 插件安装
    public function install()
    {
        return true;//安装成功返回true,失败false
    }
    // 插件卸载
    public function uninstall()
    {
        return true;//卸载成功返回true,失败false
    }
    //实现钩子方法
    public function sendMobileVerificationCode($param)
    {
        $mobile = $param['mobile'];//手机号
        $code = $param['code'];//验证码
        $config = $this->getConfig();
        $statusStr = array(
            "0" => "短信发送成功",
            "-1" => "参数不全",
            "-2" => "服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间!",
            "30" => "密码错误",
            "40" => "账号不存在",
            "41" => "余额不足",
            "42" => "帐户已过期",
            "43" => "IP地址限制",
            "50" => "内容含有敏感词"
        );
        $smsapi = "http://api.smsbao.com/";
        $user = $config['sms_user']; //短信平台帐号
        $pass = md5($config['sms_pwd']); //短信平台密码
        $content= '【'.$config['sms_sign'].'】'.str_replace('$code',$code,$config['template_id']);//要发送的短信内容
        $phone = $mobile;//要发送短信的手机号码
        $sendurl = $smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content);
        $result = file_get_contents($sendurl) ;
        if($result == '0'){//发送成功
            $result = [
                'error'=>0,
                'message'=>$statusStr[$result]
            ];
        }else{
            $result = [
                'error'=>-1,
                'message'=>$statusStr[$result]
            ];
        }
        return $result;
    }
}

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

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

另外:我们已经开发好完整的ThinkCMFV5.1短信宝插件,点击此链接 下载及查看安装流

开源插件

最新更新

电商类

CMS类

微信类

文章标签