ThinkCMF基于ThinkPHP開(kāi)發(fā),同時(shí)支持PHP-FPM和Swoole雙模式;支持大數(shù)據(jù)量和多種緩存方式;數(shù)據(jù)庫(kù)讀寫(xiě)分離和集群部署。是一款非常不錯(cuò)的系統(tǒng),小編今天就以替換短信接口為例帶大家進(jìn)行二次開(kāi)發(fā),我們使用的短信接口是我們短信寶短信群發(fā)平臺(tái)的短信接口,我們短信寶短信群發(fā)平臺(tái)非常穩(wěn)定,發(fā)送速度快,注冊(cè)就送測(cè)試短信,推薦大家使用
插件的目錄結(jié)構(gòu)如下:
├─smsbao_sms插件目錄
│ ├─config.php 短信配置文件
│ ├─SmsbaoSmsPlugin.php 短信發(fā)送核心文件
下面具體給大家說(shuō)一下每個(gè)文件的作用及代碼,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' => [ // 在后臺(tái)插件配置表單中的鍵名 ,會(huì)是config[text] 'title' => '短信寶賬號(hào)' , // 表單的label標(biāo)題 'type' => 'text' , // 表單的類型:text,password,textarea,checkbox,radio,select等 'value' => '' , // 表單的默認(rèn)值 'tip' => '主帳號(hào),對(duì)應(yīng)官網(wǎng)短信寶賬號(hào)' //表單的幫助提示 ], 'sms_pwd' => [ // 在后臺(tái)插件配置表單中的鍵名 ,會(huì)是config[text] 'title' => '短信寶密碼' , // 表單的label標(biāo)題 'type' => 'password' , // 表單的類型:text,password,textarea,checkbox,radio,select等 'value' => '' , // 表單的默認(rèn)值 'tip' => '對(duì)應(yīng)官網(wǎng)短信寶登錄密碼' //表單的幫助提示 ], 'sms_sign' => [ // 在后臺(tái)插件配置表單中的鍵名 ,會(huì)是config[text] 'title' => '短信寶簽名' , // 表單的label標(biāo)題 'type' => 'text' , // 表單的類型:text,password,textarea,checkbox,radio,select等 'value' => '' , // 表單的默認(rèn)值 'tip' => '對(duì)應(yīng)短信寶官網(wǎng)申請(qǐng)的簽名' //表單的幫助提示 ], 'template_id' => [ // 在后臺(tái)插件配置表單中的鍵名 ,會(huì)是config[text] 'title' => '模板' , // 表單的label標(biāo)題 'type' => 'text' , // 表單的類型:text,password,textarea,checkbox,radio,select等 'value' => '您的驗(yàn)證碼是$code。如非本人操作,請(qǐng)忽略本短信' , // 表單的默認(rèn)值 'tip' => '模板,填寫(xiě)短信寶后臺(tái)申請(qǐng)的模板' //表單的幫助提示 ], ]; |
SmsbaoSmsPlugin.php 短信發(fā)送核心文件 實(shí)現(xiàn)了原有sendMobileVerificationCode鉤子函數(shù) 代碼如下
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; //插件是否有后臺(tái)管理界面 // 插件安裝 public function install() { return true ; //安裝成功返回true,失敗false } // 插件卸載 public function uninstall() { return true ; //卸載成功返回true,失敗false } //實(shí)現(xiàn)鉤子方法 public function sendMobileVerificationCode($param) { $mobile = $param[ 'mobile' ]; //手機(jī)號(hào) $code = $param[ 'code' ]; //驗(yàn)證碼 $config = $ this ->getConfig(); $statusStr = array( "0" => "短信發(fā)送成功" , "-1" => "參數(shù)不全" , "-2" => "服務(wù)器空間不支持,請(qǐng)確認(rèn)支持curl或者fsocket,聯(lián)系您的空間商解決或者更換空間!" , "30" => "密碼錯(cuò)誤" , "40" => "賬號(hào)不存在" , "41" => "余額不足" , "42" => "帳戶已過(guò)期" , "43" => "IP地址限制" , "50" => "內(nèi)容含有敏感詞" ); $user = $config[ 'sms_user' ]; //短信平臺(tái)帳號(hào) $pass = md5($config[ 'sms_pwd' ]); //短信平臺(tái)密碼 $content= '【' .$config[ 'sms_sign' ]. '】' .str_replace( '$code' ,$code,$config[ 'template_id' ]); //要發(fā)送的短信內(nèi)容 $phone = $mobile; //要發(fā)送短信的手機(jī)號(hào)碼 $sendurl = $smsapi. "sms?u=" .$user. "&p=" .$pass. "&m=" .$phone. "&c=" .urlencode($content); $result = file_get_contents($sendurl) ; if ($result == '0' ){ //發(fā)送成功 $result = [ 'error' =>0, 'message' =>$statusStr[$result] ]; } else { $result = [ 'error' =>-1, 'message' =>$statusStr[$result] ]; } return $result; } } |
經(jīng)過(guò)上面的替換,短信寶的短信平臺(tái)已經(jīng)替換成功了,可以正常使用了。進(jìn)行測(cè)試發(fā)送:
報(bào)備一下短信寶的VIP模板,這樣就可以走短信寶的優(yōu)質(zhì)通道了,即便遇到敏感文字我們都不會(huì)人工審核,短信內(nèi)容3~5秒就可送達(dá)。
另外:我們已經(jīng)開(kāi)發(fā)好完整的ThinkCMFV5.1短信寶插件,點(diǎn)擊此鏈接?下載及查看安裝流
最新更新
電商類
CMS類
微信類