DSMall基于國內優秀開源框架THinkPHP、打造出的一套開源的B2B2C電子商務系統。小編帶著大家一起開發DSMall商城2.5.3的短信寶插件接口。我們使用的短信接口是我們短信寶短信群發平臺的短信接口,我們短信寶短信群發平臺非常穩定,發送速度快,注冊就送測試短信,推薦大家使用。
首先我們打開項目application\admin\view\message\mobile.html文件,替換17~38行代碼:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<tr class="noborder"> <td class="required w120">短信寶賬號</td> <td class="vatop rowform"> <input type="text" name="smsbao_user" id="smsbao_user" value="{$list_config.smsbao_user}" class="w200"/> </td> <td class="vatop tips"></td> </tr> <tr class="noborder"> <td class="required w120">短信寶密碼</td> <td class="vatop rowform"> <input type="text" name="smsbao_pass" id="smsbao_pass" value="{$list_config.smsbao_pass}" class="w200"/> </td> <td class="vatop tips"></td> </tr> <tr class="noborder"> <td class="required w120">短信寶簽名</td> <td class="vatop rowform"> <input type="text" name="smsbao_sign" id="smsbao_sign" value="{$list_config.smsbao_sign}" class="w200"/> </td> <td class="vatop tips"></td> </tr> |
接著我們打開項目application\admin\controller\Message.php文件,替換mobile方法:
|
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
|
public function mobile() { $config_model = model('config'); if (!(request()->isPost())) { $list_config = $config_model->getConfigList(); $smscf_wj_num = ''; if(!empty($list_config['smsbao_user'])&&!empty($list_config['smsbao_pass'])){ $arr = http_request('http://www.gjrencai.com/query?u='.$list_config['smsbao_user'].'&p='.md5($list_config['smsbao_pass']),'get'); $arr = explode(',', $arr); $smscf_wj_num = $arr[1]; } $this->assign('smscf_wj_num', $smscf_wj_num); $this->assign('list_config', $list_config); $this->setAdminCurItem('mobile'); return $this->fetch('mobile'); } else { $update_array = array(); $update_array['smsbao_user'] = input('post.smsbao_user'); $update_array['smsbao_pass'] = input('post.smsbao_pass'); $update_array['smsbao_sign'] = input('post.smsbao_sign'); $update_array['smscf_wj_username'] = input('post.smscf_wj_username'); $update_array['smscf_wj_key'] = input('post.smscf_wj_key'); $update_array['sms_register'] = input('post.sms_register'); $update_array['sms_login'] = input('post.sms_login'); $update_array['sms_password'] = input('post.sms_password'); $result = $config_model->editConfig($update_array); if ($result === true) { $this->log(lang('ds_edit') . lang('mobile_set'), 1); $this->success(lang('ds_common_save_succ')); } else { $this->log(lang('ds_edit') . lang('mobile_set'), 0); $this->error(lang('ds_common_save_fail')); } } } |
接著我們打開項目application\common\model\Smslog.php文件,替換sendSms方法:
|
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
|
function sendSms($smslog_phone,$smslog_msg,$smslog_type='',$smslog_captcha='',$member_id='0',$member_name='') { $smsbao_sign = config('smsbao_sign'); $cont=explode('】', $smslog_msg); $smslog_msg = "【".$smsbao_sign."】".($cont[1]); //通過手機號判斷是否允許發送短信 $begin_add_time = strtotime(date('Y-m-d', TIMESTAMP)); $end_add_time = strtotime(date('Y-m-d', TIMESTAMP)) + 24 * 3600; //同一IP 每天只能發送20條短信 $condition = array(); $condition['smslog_ip'] = request()->ip(); $condition['smslog_smstime'] = array('between', array($begin_add_time, $end_add_time)); if ($this->getSmsCount($condition) > 20) { return array('state'=>FALSE,'code'=>10001,'message'=>'同一IP地址一天內只能發送20條短信,請勿多次獲取動態碼!'); } //同一手機號,60秒才能提交發送一次 $condition = array(); $condition['smslog_phone'] = $smslog_phone; $condition['smslog_smstime'] = array('between', array(TIMESTAMP-30, TIMESTAMP)); if ($this->getSmsCount($condition) > 0) { return array('state'=>FALSE,'code'=>10001,'message'=>'同一手機30秒后才能再次發送短信,請勿多次獲取動態碼!'); } //同一手機號,每天只能發送5條短信 $condition = array(); $condition['smslog_phone'] = $smslog_phone; $condition['smslog_smstime'] = array('between', array($begin_add_time, $end_add_time)); if ($this->getSmsCount($condition) > 5) { return array('state'=>FALSE,'code'=>10001,'message'=>'同一手機一天內只能發送5條短信,請勿多次獲取動態碼!'); } //通過手機號獲取現綁定的客戶信息 if(empty($member_id)||empty($member_name)){ //通過手機號查詢用戶名 $member = model('member')->getMemberInfo(array('member_mobile' => $smslog_phone)); $member_id = isset($member['member_id'])?$member['member_id']:'0'; $member_name = isset($member['member_name'])?$member['member_name']:''; } $sms = new \sendmsg\Sms(); $result = $sms->send($smslog_phone, $smslog_msg); if ($result) { $log['smslog_phone'] = $smslog_phone; $log['smslog_captcha'] = $smslog_captcha; $log['smslog_ip'] = request()->ip(); $log['smslog_msg'] = $smslog_msg; $log['smslog_type'] = $smslog_type; $log['smslog_smstime'] = TIMESTAMP; $log['member_id'] = $member_id; $log['member_name'] = $member_name; $result = $this->addSms($log); if($result>=0){ return array('state'=>TRUE,'code'=>10000,'message'=>''); }else{ return array('state'=>FALSE,'code'=>10001,'message'=>'手機短信發送失敗'); } }else{ return array('state'=>FALSE,'code'=>10001,'message'=>'手機短信發送失敗'); } } |
最后我們打開項目extend\sendmsg\Sms.php文件,替換mysend_sms方法:
|
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
|
private function mysend_sms($mobile, $content) { $smsbao_user = urlencode(config('smsbao_user')); // 戶名 $smsbao_pwd = urlencode(config('smsbao_pass')); // 這里填接口安全密鑰 $smsbao_sign = urlencode(config('smsbao_sign')); if (!$mobile || !$content || !$smsbao_user || !$smsbao_pwd || !$smsbao_sign) return false; if (is_array($mobile)) { $mobile = implode(",", $mobile); } $mobile=urlencode($mobile); $content=urlencode($content); $url = 'http://api.smsbao.com/sms?u='.$smsbao_user.'&p='.md5($smsbao_pwd).'&m='.$mobile.'&c='.$content; if (function_exists('file_get_contents')) { $res = file_get_contents($url); } else { $ch = curl_init(); $timeout = 5; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $res = curl_exec($ch); curl_close($ch); } if ($res == 0) { return true; } return false; }} |
經過上面的替換,短信寶的短信平臺已經替換成功了,可以正常使用了。進行測試發送:

報備一下短信寶的VIP模板,這樣就可以走短信寶的優質通道了,即便遇到敏感文字我們都不會人工審核,短信內容3~5秒就可送達。
另外:我們已經開發好完整的DsMall商城系統短信寶插件,點擊此鏈接 下載及查看安裝流程。
最新更新
電商類
CMS類
微信類