WSTMall開(kāi)源商城是一款基于ThinkPHP開(kāi)發(fā)的多商戶(hù)新零售開(kāi)源系統(tǒng),因?yàn)槭褂玫氖荰hinkPHP框架,所以二次開(kāi)發(fā)比較容易,小編對(duì)此系統(tǒng)還比較了解,今天小編就以替換短信接口為例為大家講解一下如何進(jìn)行二次開(kāi)發(fā),我們今天講解的是1.9.5版本,我們使用的短信接口是我們短信寶短信群發(fā)平臺(tái)的短信接口,我們短信寶短信群發(fā)平臺(tái)非常穩(wěn)定,發(fā)送速度快,推薦大家使用。
因?yàn)槎绦排渲檬菍?xiě)在數(shù)據(jù)庫(kù)中的所以我們先去修改數(shù)據(jù)庫(kù)中的接口信息,我們?cè)?strong>項(xiàng)目\Apps\Home\Action 下建一個(gè)文件,取名叫SmsbaoAction.class.php,文件代碼為:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<?php namespace Home\Action; use think\Db; header( "Content-type:text/html;charset=utf-8" ); /** * 短信寶短信插件 */ class SmsbaoAction extends BaseAction { public function smsbao() { $smsbao = M( 'sys_configs' ); $data [ 'fieldName' ] = '短信寶賬號(hào)' ; $data [ 'fieldTips' ] = '還沒(méi)有帳號(hào)?請(qǐng)點(diǎn)擊<a href="http://www.gjrencai.com/reg" style="color:red;">注冊(cè)</a>' ; $smsbao ->where( 'fieldCode="smsKey"' )->save( $data ); echo '短信寶插件安裝成功,請(qǐng)刪除Apps\home\action\SmsbaoAction.class.php文件' ; } } |
新建完成后我們需要運(yùn)行一下修改數(shù)據(jù)庫(kù),我們?cè)L問(wèn) 域名/index.php?m=home&c=Smsbao&a=smsbao,看到短信寶插件安裝成功,請(qǐng)刪除Apps\home\action\SmsbaoAction.class.php文件 即為修改成功,修改成功我們?nèi)バ薷慕涌诎l(fā)送文件,打開(kāi)項(xiàng)目\Apps\Common\Common\function.php,添加以下代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
/** * @param string $phoneNumer 手機(jī)號(hào)碼 * @param string $content 短信內(nèi)容 */ function SmsbaoSMS( $phoneNumer , $content ){ $url = 'http://api.smsbao.com/sms?u=' . $GLOBALS [ 'CONFIG' ][ 'smsKey' ]. '&p=' .md5( $GLOBALS [ 'CONFIG' ][ 'smsPass' ]). '&m=' . $phoneNumer . '&c=' . $content ; $ch =curl_init( $url ); curl_setopt( $ch , CURLOPT_RETURNTRANSFER, 1); //設(shè)置否輸出到頁(yè)面 curl_setopt( $ch , CURLOPT_CONNECTTIMEOUT, 30 ); //設(shè)置連接等待時(shí)間 curl_setopt( $ch , CURLOPT_ENCODING, "gzip" ); $data =curl_exec( $ch ); curl_close( $ch ); return $data ; } |
另一處短信接口文件,打開(kāi)項(xiàng)目\Upgrade\Upgrade\Apps\Common\Common\function.php,添加一下代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
/** * @param unknown_type $phoneNumer * @param unknown_type $content */ function SmsbaoSMS( $phoneNumer , $content ){ $url = 'http://api.smsbao.com/sms?u=' . $GLOBALS [ 'CONFIG' ][ 'smsKey' ]. '&p=' .md5( $GLOBALS [ 'CONFIG' ][ 'smsPass' ]). '&m=' . $phoneNumer . '&c=' . $content ; $ch =curl_init( $url ); curl_setopt( $ch , CURLOPT_RETURNTRANSFER, 1); //設(shè)置否輸出到頁(yè)面 curl_setopt( $ch , CURLOPT_CONNECTTIMEOUT, 30 ); //設(shè)置連接等待時(shí)間 curl_setopt( $ch , CURLOPT_ENCODING, "gzip" ); $data =curl_exec( $ch ); curl_close( $ch ); return $data ; } |
接下來(lái)我們?nèi)バ薷恼{(diào)用短信接口的代碼,打開(kāi)項(xiàng)目\Apps\Home\Model\LogSmsModel.class.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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
<?php namespace Home\Model; /** * ============================================================================ * WSTMall開(kāi)源商城 * 官網(wǎng)地址:http://www.wstmall.net * 聯(lián)系QQ:707563272 * ============================================================================ * 短信服務(wù)類(lèi) */ class LogSmsModel extends BaseModel { /** * 插入并發(fā)送短訊記錄 */ public function sendSMS( $smsSrc , $phoneNumber , $content , $smsFunc , $verfyCode , $imgVerfy =1){ $USER = session( 'WST_USER' ); $userId = empty ( $USER )?0: $USER [ 'userId' ]; $m = M( 'log_sms' ); $ip = get_client_ip(); //檢測(cè)短信驗(yàn)證碼驗(yàn)證是否正確 if ( $GLOBALS [ 'CONFIG' ][ 'smsVerfy' ]==1 && $imgVerfy ==1){ $smsverfy = I( 'smsVerfy' ); $verify = new \Think\Verify( array ( 'reset' =>false)); $rs = $verify ->check( $smsverfy ); if (! $rs ){ return array ( 'status' =>-29999, 'msg' => '驗(yàn)證碼不正確!' ); } } //檢測(cè)是否超過(guò)每日短信發(fā)送數(shù) $date = date ( 'Y-m-d' ); $sql = 'select count (smsId) counts,max(createTime) createTime from __PREFIX__log_sms where smsPhoneNumber= '.$phoneNumber.' and createTime> "'.$date.' 00:00:00" and createTime<= "'.$date.' 23:59:59" '; $smsRs = $this ->queryRow( $sql ); if ( $smsRs [ 'counts' ]>(int) $GLOBALS [ 'CONFIG' ][ 'smsLimit' ]){ return array ( 'status' =>-20000, 'msg' => '請(qǐng)勿頻繁發(fā)送短信驗(yàn)證!' ); } if ( $smsRs [ 'createTime' ] != '' && ((time()- strtotime ( $smsRs [ 'createTime' ]))<120)){ return array ( 'status' =>-20001, 'msg' => '請(qǐng)勿頻繁發(fā)送短信驗(yàn)證!' ); } //檢測(cè)IP是否超過(guò)發(fā)短信次數(shù) $sql = 'select count (smsId) counts,max(createTime) createTime from __PREFIX__log_sms where smsIP= "'.$ip.'" and createTime> "'.$date.' 00:00:00" and createTime<= "'.$date.' 23:59:59" '; $ipRs = $this ->queryRow( $sql ); if ( $ipRs [ 'counts' ]>(int) $GLOBALS [ 'CONFIG' ][ 'smsLimit' ]){ return array ( 'status' =>-20003, 'msg' => '請(qǐng)勿頻繁發(fā)送短信驗(yàn)證!' ); } if ( $ipRs [ 'createTime' ]!= '' && ((time()- strtotime ( $ipRs [ 'createTime' ]))<120)){ return array ( 'status' =>-20004, 'msg' => '請(qǐng)勿頻繁發(fā)送短信驗(yàn)證!' ); } $code = SmsbaoSMS( $phoneNumber , $content ); $data = array (); $data [ 'smsSrc' ] = $smsSrc ; $data [ 'smsUserId' ] = $userId ; $data [ 'smsPhoneNumber' ] = $phoneNumber ; $data [ 'smsContent' ] = $content ; $data [ 'smsReturnCode' ] = $code ; $data [ 'smsCode' ] = $verfyCode ; $data [ 'smsIP' ] = $ip ; $data [ 'smsFunc' ] = $smsFunc ; $data [ 'createTime' ] = date ( 'Y-m-d H:i:s' ); $m ->add( $data ); if ( intval ( $code ) == 0){ return array ( 'status' =>1, 'msg' => '短信發(fā)送成功!' ); } else { return array ( 'status' =>-1, 'msg' => '短信發(fā)送失敗!' ); } } } |
好了,經(jīng)過(guò)以上的替換,短信寶的短信平臺(tái)已經(jīng)替換成功了,我們?nèi)ミM(jìn)行發(fā)送測(cè)試:
報(bào)備一下短信寶的VIP模板,這樣就可以走短信寶的優(yōu)質(zhì)通道了,并且免審核了,短信內(nèi)容3~5秒就可送達(dá)。
最新更新
電商類(lèi)
CMS類(lèi)
微信類(lèi)