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
|
<?phpnamespace 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" => "內容含有敏感詞" ); $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秒就可送達。
另外:我們已經開發好完整的ThinkCMFV8.0短信寶插件,點擊此鏈接?下載及查看安裝流
最新更新
電商類
CMS類
微信類