91成人在线播放_欧美一区二区视频在线观看_91精品国产高清久久久久久_国产精品久久亚洲不卡4k岛国


待發短信

在線客服
產品支持 短信寶客服
合作渠道 渠道合作
服務咨詢

4001-021-502

工作時間

9:00-21:00

大商創2.3.6版短信接口替換

大商創,是一款功能強大的B2B2C多用戶商城系統,二次開發進行功能擴展很方便,代碼清晰簡潔,通俗易懂,所以今天為大家講解一下2.3.6版本的短信接口替換,我們使用的短信接口是我們短信寶短信群發平臺的短信接口,我們短信寶短信平臺非常穩定,短信發送速度快,注冊就送測試短信,推薦大家使用。

首先我們要更換后臺的顯示界面文件。打開模版文件,替換一下模版文件。打開項目/admin/templates/huyi_configure_list.dwt、/admin/templates/alidayu_configure_list.dwt/admin/templates/alitongxin_configure_list.dwt這三個文件,都修改代碼23~27行,代碼如下:

?
1
2
3
4
5
<ul>
     <li class="li_color">注意:目前短信寶和阿里大魚的短信模板是一致的,請慎重操作添加、編輯和刪除.</li>
     <li>列表頁展示所有短信配置模板的信息列表。</li>
     <li>每條信息可以進行編輯和刪除操作。</li>
</ul>

經過替換后所有的頁面都變成我們短信寶的了,第一步完成。接下來替換短信發送的接口代碼,打開項目/includes/cls_sms.php文件,修改send這兩個方法,修改代碼為:

?
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
70
71
72
73
74
75
76
77
78
79
80
  public function send($phones$msg ''$send_date ''$send_num = 1, $sms_type ''$version '1.0', &$sms_error ''$mobile_code '')
        {
                if ($GLOBALS['_CFG']['sms_type'] == 0) {
                        /* 檢查發送信息的合法性 */
            $contents $this->get_contents($phones$msg);
            if (!$contents) {
                return false;
            }
        
            /* 獲取API URL */
            $sms_url "http://api.smsbao.com/sms?";
            if (count($contents) > 1) {
                foreach ($contents as $key => $val) {
                   $post_data 'u=' $this->sms_name . '&p=' $this->sms_password . '&m=' $val['phones'] . '&c=【' .$this->sms_sign.'】' . rawurlencode($val['content']); //密碼可以使用明文密碼或使用32位MD5加密
 
                    $get file_get_contents($sms_url.$post_data);
                    $gets['code']=$get;
                    $gets['msg']='發送成功';
                    sleep(1);
                }
            else {
               $post_data 'u=' $this->sms_name . '&p=' $this->sms_password . '&m=' $contents[0]['phones'] . '&c=【' .$this->sms_sign.'】' . rawurlencode($contents[0]['content']);
 
                $get file_get_contents($sms_url.$post_data);
                $gets['code'] = $get;
                $gets['msg'] = '發送成功';
            }
 
            //print_r($gets);exit; //開啟調試模式
            if ($get == '0') {
                return true;
            }
            else {
                $statusStr array(
                    "0" => "短信發送成功",
                    "-1" => "參數不全",
                    "-2" => "服務器空間不支持,請確認支持curl或者fsocket,聯系您的空間商解決或者更換空間!",
                    "30" => "密碼錯誤",
                    "40" => "賬號不存在",
                    "41" => "余額不足",
                    "42" => "帳戶已過期",
                    "43" => "IP地址限制",
                    "50" => "內容含有敏感詞"
                    );
                $sms_error $phones .$statusStr["$get"];
                $this->logResult($sms_error);
                return false;
            }
                }
                else if (1 <= $GLOBALS['_CFG']['sms_type']) {
                        $msg $this->get_usser_sms_msg($msg);
 
                        if (!empty($msg['sms_value'])) {
                                $smsParams array('mobile_phone' => $phones'code' => $msg['code']);
                                $send_time $msg['sms_value'];
                        }
                        else {
                                $smsParams array('mobile_phone' => $phones'code' => $msg['code'], 'product' => $msg['product']);
                                $send_time 'sms_signin';
                        }
 
                        $result = sms_ali($smsParams$send_time);
                        $resp $GLOBALS['ecs']->ali_yu($result);
 
                        if ($resp->code == 0) {
                                return true;
                        }
                        else {
                                if ($resp->sub_msg) {
                                        $sms_error $phones $resp->sub_msg;
                                }
                                else {
                                        $sms_error $phones ':' $resp->msg;
                                }
 
                                $this->logResult($sms_error);
                                return false;
                        }
                }
        }

修改配置文件,打開項目/languages/zh_cn/admin/common.php文件,修改371行左右,修改代碼如下:

?
1
$_LANG['huyi_configure'] = '短信寶';

打開項目/languages/zh_cn/admin/shop_config.php文件,修改51、140-141行左右,修改代碼如下:

?
1
2
3
57  $_LANG['cfg_range']['sms_type'][0] = '短信寶';
146 $_LANG['cfg_name']['sms_ecmoban_user'] = '短信寶短信接口用戶名';
147 $_LANG['cfg_name']['sms_ecmoban_password'] = '互短信寶短信接口密碼';

pc端的我們已經替換成功了,我們進行手機端的替換,打開項目/mobile/app/helpers/base_helper.php文件,修改send_sms方法,修改代碼為:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function send_sms($mobile$send_time ''$content)
{
        $sms_type array('ihuyi''alidayu''aliyun');
        $config array(
                'driver'       => 'sms',
                'driverConfig' => array(
                        'sms_type' => $sms_type[$GLOBALS['_CFG']['sms_type']],
                        'ihuyi'    => array('sms_name' => $GLOBALS['_CFG']['sms_ecmoban_user'], 'sms_password' => $GLOBALS['_CFG']['sms_ecmoban_password'],'sms_sign'=> $GLOBALS['_CFG']['shop_name']),
                        'alidayu'  => array('ali_appkey' => $GLOBALS['_CFG']['ali_appkey'], 'ali_secretkey' => $GLOBALS['_CFG']['ali_secretkey']),
                        'aliyun'   => array('access_key_id' => $GLOBALS['_CFG']['access_key_id'], 'access_key_secret' => $GLOBALS['_CFG']['access_key_secret'])
                        )
                );
 
        $sms new \App\Notifications\Send($config);
        if ($sms->push($mobile$send_time$content) === true) {
                return true;
        }
        else {
                return $sms->getError();
        }
}

接下來修改發送的接口類,打開項目/mobile/app/notifications/Sms/Driver/Ihuyi.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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<?php
 
namespace App\Notifications\Sms\Driver;
 
class Ihuyi
{
        /**
     * 短信類配置
     * @var array
     */
        protected $config array('sms_name' => '''sms_password' => '');
        /**
     * @var objcet 短信對象
     */
        protected $sms_api "http://api.smsbao.com/sms?";
        protected $content;
        protected $phones array();
        protected $errorInfo;
 
        public function __construct($config array())
        {
                $this->config = array_merge($this->config, $config);
        }
 
        public function setSms($title$content)
        {
                $sql 'SELECT * FROM {pre}alidayu_configure WHERE send_time = \'' $title '\'';
                $msg $GLOBALS['db']->getRow($sql);
                preg_match_all('/\\$\\{(.*?)\\}/'$msg['temp_content'], $matches);
 
                foreach ($matches[1] as $vo) {
                        $msg['temp_content'] = str_replace('${' $vo '}'$content[$vo], $msg['temp_content']);
                }
 
                $this->content = $msg['temp_content'];
                return $this;
        }
 
        public function sendSms($to)
        {
                $sendTo explode(','$to);
 
                foreach ($sendTo as $add) {
                        if (preg_match('/^0?1((3|7|8)[0-9]|5[0-35-9]|4[57])\\d{8}$/'$add)) {
                                $this->addPhone($add);
                        }
                }
 
                if (!$this->send()) {
                        $return = false;
                }
                else {
                        $return = true;
                }
 
                return $return;
        }
 
        private function addPhone($add)
        {
                array_push($this->phones, $add);
        }
 
        private function send()
        {
                foreach ($this->phones as $mobile) {
                        $post_data array('u' => $this->config['sms_name'], 'p' => $this->config['sms_password'], 'm' => $mobile'c' => '【'.$this->config['sms_sign'].'】'.$this->content);
                        $res = \App\Extensions\Http::doPost($this->sms_api, $post_data);
                        if ($res == '0') {
                                return true;
                        }
                        else {
                                $this->errorInfo = $res;
                                logResult($this->errorInfo, 'sms');
                                return false;
                        }
                }
        }
 
        private function xmlToArray($xml)
        {
                $reg '/<(\\w+)[^>]*>([\\x00-\\xFF]*)<\\/\\1>/';
 
                if (preg_match_all($reg$xml$matches)) {
                        $count count($matches[0]);
 
                        for ($i = 0; $i $count$i++) {
                                $subxml $matches[2][$i];
                                $key $matches[1][$i];
 
                                if (preg_match($reg$subxml)) {
                                        $arr[$key] = $this->xmlToArray($subxml);
                                }
                                else {
                                        $arr[$key] = $subxml;
                                }
                        }
                }
 
                return $arr;
        }
 
        public function getError()
        {
                return $this->errorInfo;
        }
 
        public function __destruct()
        {
                unset($this->sms);
        }
}
 
 
?>

經過上面的替換,短信寶的短信平臺已經替換成功了,可以正常使用了。進行測試發送:
 

報備一下短信寶的VIP模版,這樣就可以走短信寶的優質通道,并且免審核了,短信內容3~5秒就可送達。
開源插件

最新更新

電商類

CMS類

微信類

文章標簽