• 4001-021-502
您的位置:短信宝 > 技术分享 > 微信挪车(weliam_shiftcar)短信插件开发
微信挪车(weliam_shiftcar)短信插件开发
发表日期:2017-08-03    文章编辑:短信宝小编    浏览次数:

微信挪车(weliam_shiftcar)是一款基于微信展示、营销推广和互动成交的产品体系软件,通过“微信挪车”,可以很方便的查询违章信息,和通知车主挪车。

今天我就来分享一下,如何进行二次开发,我以替换短信接口为例,一步步的教大家如何开发,我们做演示的是我们短信宝短信群发平台,我们短信宝短信群发平台发送速度快,非常稳定,注册就送测试短信,推荐大家使用。

进行接口替换我们首先要替换后台的显示文件,因为需要修改的文件太多,小编这里就不写了,我会在下面附上代码连接,大家可以点击下载进行查看 http://www.smsbao.com/download/微信挪车-html.zip

后台的显示文件修改完成,我们来修改违章通知短信的代码文件,在项目/core/class/api.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
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
<?php
 
class api
{
    //违章提醒发送短信
    static function send_sys_sms($carmember$controller$message$data)
    {
        global $_W;
 
        $getlistFrames 'get_' $controller '_param';
        $param         = self::$getlistFrames($carmember$data);
        if($param['type']=='smsbao'){
            $uid $_W['wlsetting']['api']['smsbao_id'];
            $pass $_W['wlsetting']['api']['smsbao_secret'];
            $sign $_W['wlsetting']['api']['smsbao_sign'];
 
            $url 'http://api.smsbao.com/sms?u='.$uid.'&p='.md5($pass).'&m='.$carmember['mobile'].'&c=【'.$sign.'】'.$param['data']['sms_tpl_value'];
            $result file_get_contents($url);
              if ($result == 0) {
                echo $result;
                self::create_apirecord(-1, ''$carmember['id'], $carmember['mobile'], 2, $message);
                return array(
                    "result" => 1
                );
            else {
                echo $result;
                die(json_encode(array(
                    "result" => 2,
                    "msg" => $res['sub_msg']
                )));
            }
 
        }elseif ($param['type'] == 'ytx') {
            include_once(WL_CORE . "class/CCPRestSDK.class.php");
            $accountSid   $_W['wlsetting']['api']['yun_accountsid'];
            $accountToken $_W['wlsetting']['api']['yun_authtoken'];
            $appId        $_W['wlsetting']['api']['yun_appid'];
            $serverIP     'app.cloopen.com';
            $serverPort   '8883';
            $softVersion  '2013-12-26';
 
            $rest new REST($serverIP$serverPort$softVersion);
            $rest->setAccount($accountSid$accountToken);
            $rest->setAppId($appId);
 
            $result $rest->sendTemplateSMS($carmember['mobile'], array_values($param['data']), $param['code']);
            if ($result == NULL) {
                die(json_encode(array(
                    "result" => 2,
                    "msg" => '短信通知发送失败'
                )));
            }
            if ($result->statusCode != 0) {
                die(json_encode(array(
                    "result" => 2,
                    "msg" => $result->statusCode . $result->statusMsg
                )));
            else {
                self::create_apirecord(-1, ''$carmember['id'], $carmember['mobile'], 2, $message);
                return array(
                    "result" => 1
                );
            }
        else {
            $title  = !empty($_W['wlsetting']['api']['dy_qm']) ? $_W['wlsetting']['api']['dy_qm'] : $_W['wlsetting']['base']['name'];
            m('topclient')->appkey    = $_W['wlsetting']['api']['dx_appid'];
            m('topclient')->secretKey = $_W['wlsetting']['api']['dx_secretkey'];
            m('smsnum')->setSmsType("normal");
            m('smsnum')->setSmsFreeSignName($title);
            m('smsnum')->setSmsParam(json_encode($param['data']));
            m('smsnum')->setRecNum($carmember['mobile']);
            m('smsnum')->setSmsTemplateCode($param['code']);
            $resp = m('topclient')->execute(m('smsnum'), '6100e23657fb0b2d0c78568e55a3031134be9a3a5d4b3a365753805');
            $res  = object_array($resp);
            if ($res['result']['success'] == 1) {
                self::create_apirecord(-1, ''$carmember['id'], $carmember['mobile'], 2, $message);
                return array(
                    "result" => 1
                );
            else {
                die(json_encode(array(
                    "result" => 2,
                    "msg" => $res['sub_msg']
                )));
            }
        }
    }
 
    //违章提醒发送语音
    static function send_yy_sms($carmember$controller$message$data)
    {
        global $_W;
        $getlistFrames            'get_' $controller '_param';
        $param                    = self::$getlistFrames($carmember$data, 2);
        m('topclient')->appkey    = $_W['wlsetting']['api']['dx_appid'];
        m('topclient')->secretKey = $_W['wlsetting']['api']['dx_secretkey'];
        m('singlecall')->setCalledNum($carmember['mobile']);
        m('singlecall')->setCalledShowNum($_W['wlsetting']['api']['dy_yynum']);
        m('singlecall')->setTtsParam(json_encode($param['data']));
        m('singlecall')->setTtsCode($param['code']);
        $resp = m('topclient')->execute(m('singlecall'), "6100e23657fb0b2d0c78568e55a3031134be9a3a5d4b3a365753805");
        $res  = object_array($resp);
        if ($res['result']['success'] == 1) {
            self::create_apirecord(-1, ''$carmember['id'], $carmember['mobile'], 3, $message);
            return array(
                "result" => 1
            );
        else {
            die(json_encode(array(
                "result" => 2,
                "msg" => $res['sub_msg']
            )));
        }
    }
 
    static function create_apirecord($sendmid$sendmobile ''$takemid$takemobile$type$remark)
    {
        global $_W;
        $data array(
            'uniacid' => $_W['uniacid'],
            'sendmid' => $sendmid,
            'sendmobile' => $sendmobile,
            'takemid' => $takemid,
            'takemobile' => $takemobile,
            'type' => $type,
            'remark' => $remark,
            'createtime' => time()
        );
        pdo_insert('weliam_shiftcar_apirecord'$data);
    }
 
    static function get_pecc_param($carmember$pecc$type = 1)
    {
        global $_W;
        if ($type == 1) {
            $sms_tpl = pdo_get('weliam_shiftcar_smstpl'array(
                'id' => $_W['wlsetting']['pecc']['dx_tz']
            ), array(
                'smstplid',
                'data',
                'type'
            ));
        else {
            $sms_tpl = pdo_get('weliam_shiftcar_smstpl'array(
                'id' => $_W['wlsetting']['pecc']['yy_tz']
            ), array(
                'smstplid',
                'data',
                'type'
            ));
        }
        $data  = unserialize($sms_tpl['data']);
        $datas array(
            array(
                'name' => '违章时间',
                'value' => date("Y-m-d H:i:s"$pecc['acttime'])
            ),
            array(
                'name' => '违章地点',
                'value' => $pecc['address']
            ),
            array(
                'name' => '违章内容',
                'value' => $pecc['info']
            ),
            array(
                'name' => '扣分',
                'value' => $pecc['fen']
            ),
            array(
                'name' => '罚款',
                'value' => $pecc['money']
            ),
            array(
                'name' => '车主手机号',
                'value' => $carmember['mobile']
            ),
            array(
                'name' => '车主昵称',
                'value' => $carmember['nickname']
            ),
            array(
                'name' => '车牌',
                'value' => $pecc['hphm']
            ),
            array(
                'name' => '系统版权',
                'value' => $_W['wlsetting']['base']['copyright']
            ),
            array(
                'name' => '系统名称',
                'value' => $_W['wlsetting']['base']['name']
            )
        );
 
        if($sms_tpl['type']=='smsbao'){
            //如果是短信宝,直接替换模板中的变量
            $param['sms_tpl_value'] = self::replaceTemplate($sms_tpl['smstplid'], $datas);
        }else{
            foreach ($data as $d) {
                $param[$d['data_temp']] = self::replaceTemplate($d['data_shop'], $datas);
            }
        }
        return array(
            'data' => $param,
            'code' => $sms_tpl['smstplid'],
            'type' => $sms_tpl['type']
        );
    }
 
 
    static function replaceTemplate($str$datas array())
    {
 
        foreach ($datas as $d) {
            $str str_replace('【' $d['name'] . '】'$d['value'], $str);
        }
        return $str;
    }
}
?>

接下来修改项目/core/class/model_pecc.class.php文件,这个是查询违章行为的文件,我们修改里面的查询方法,小编使用的是极速查询所以就修改jusu_save方法,修改代码如下:

?
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
static function jusu_save($jsonarr$member$status = 1)
    {
        global $_W;
        if ($jsonarr['status'] == 0) {
            $result $jsonarr['result'];
            if (is_array($result)) {
                foreach ($result['list'as $key => $value) {
                    $p_time strtotime($value['time']);
                    $re_id  = pdo_getcolumn('weliam_shiftcar_peccrecord'array(
                        'mid' => $member['id'],
                        'uniacid' => $_W['uniacid'],
                        'acttime' => $p_time
                    ), 'id');
                    if (empty($re_id)) {
                        $data array(
                            'mid' => $member['id'],
                            'uniacid' => $_W['uniacid'],
                            'hphm' => $member['plate1'] . $member['plate2'] . $member['plate_number'],
                            'acttime' => $p_time,
                            'status' => 0,
                            'address' => $value['address'],
                            'code' => $value['legalnum'],
                            'info' => $value['content'],
                            'fen' => $value['score'],
                            'money' => $value['price'],
                            'content' => serialize($value),
                            'createtime' => time()
                        );
                        if (pdo_insert('weliam_shiftcar_peccrecord'$data)) {
                            $pe_id = pdo_insertid();
                            if ($status == 2) {
                                pdo_insert('weliam_shiftcar_waitmessage'array(
                                    'uniacid' => $_W['uniacid'],
                                    'type' => 1,
                                    'str' => $pe_id
                                ));
                            }
                        }
                    }
                }
                pdo_update('weliam_shiftcar_member'array(
                    'tasktime' => time()
                ), array(
                    'id' => $member['id']
                ));
                return 1;
            }
            pdo_update('weliam_shiftcar_member'array(
                'tasktime' => time()
            ), array(
                'id' => $member['id']
            ));
            return 2;
        else {
            pdo_insert('weliam_shiftcar_error'array(
                'uniacid' => $_W['uniacid'],
                'type' => 2,
                'data' => serialize($jsonarr),
                'createtime' => time()
            ));
            pdo_update('weliam_shiftcar_member'array(
                'tasktime' => time()
            ), array(
                'id' => $member['id']
            ));
            return array(
                'status' => 3,
                'msg' => $jsonarr['msg']
            );
        }
    }

违章短信修改完成后,我们修改通知短信和身份验证短信的发送代码,项目/core/model/api.mod.php文件,修改send_authmsg方法和send_smsnotice方法,修改代码如下:

?
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
function send_authmsg($mobile){
    global $_W;
    $code = rand(1000, 9999);
    $title = !empty($_W['wlsetting']['base']['name']) ? $_W['wlsetting']['base']['name'] : '微信挪车';
    if($_W['wlsetting']['api']['jtatus'] == 1){
        $qm = !empty($_W['wlsetting']['api']['dy_qm']) ? $_W['wlsetting']['api']['dy_qm'] : '身份验证';
        m('topclient')->appkey = $_W['wlsetting']['api']['dx_appid'];
        m('topclient')->secretKey = $_W['wlsetting']['api']['dx_secretkey'];
        m('smsnum')->setExtend($code);
        m('smsnum')->setSmsType("normal");
        m('smsnum')->setSmsFreeSignName($qm);
        if($_W['wlsetting']['sms']['status'] == 2 && !empty($_W['wlsetting']['sms']['dy_sf'])){
            $sms_tpl = pdo_get('weliam_shiftcar_smstpl',array('id' => $_W['wlsetting']['sms']['dy_sf']),array('smstplid','data'));
            $data = unserialize($sms_tpl['data']);
            $datas array(
                array('name' => '验证码''value' => $code),
                array('name' => '系统版权''value' => $_W['wlsetting']['base']['copyright']),
                array('name' => '系统名称''value' => $title)
            );
            foreach ($data as $d) {
                $param[$d['data_temp']] = replaceTemplate($d['data_shop'], $datas);
            }
            m('smsnum')->setSmsParam(json_encode($param));
            m('smsnum')->setSmsTemplateCode($sms_tpl['smstplid']);
        }else{
            m('smsnum')->setSmsParam('{"code":"'.$code.'","product":"'.$title.'"}');
            m('smsnum')->setSmsTemplateCode($_W['wlsetting']['api']['dy_sf']);
        }
        m('smsnum')->setRecNum($mobile);
        $resp = m('topclient')->execute(m('smsnum'),'6100e23657fb0b2d0c78568e55a3031134be9a3a5d4b3a365753805');
        $res = object_array($resp);
        if($res['result']['success'] == 1){
            //生成发送记录
            create_apirecord(-1,'',$_W['mid'],$mobile,1,'阿里大于身份验证');
            $cookie array();
            $cookie['mobile'] = $mobile;
            $cookie['code'] = $code;
            $session base64_encode(json_encode($cookie));
            isetcookie('__auth_session'$session, 600, true);
            die(json_encode(array("result" => 1))); 
        }else{
            die(json_encode(array("result" => 2)));
        }
    }else if($_W['wlsetting']['api']['jtatus'] == 2){
        include_once(WL_CORE . "class/CCPRestSDK.class.php");
        $accountSid $_W['wlsetting']['api']['yun_accountsid'];
        $accountToken $_W['wlsetting']['api']['yun_authtoken'];
        $appId $_W['wlsetting']['api']['yun_appid'];
        $serverIP='app.cloopen.com';
        $serverPort='8883';
        $softVersion='2013-12-26';
 
        $rest new REST($serverIP,$serverPort,$softVersion);
        $rest->setAccount($accountSid,$accountToken);
        $rest->setAppId($appId);
 
        if($_W['wlsetting']['sms']['status'] == 2 && !empty($_W['wlsetting']['sms']['dy_sf'])){
            $sms_tpl = pdo_get('weliam_shiftcar_smstpl',array('id' => $_W['wlsetting']['sms']['dy_sf']),array('smstplid','data'));
            $data = unserialize($sms_tpl['data']);
            $datas array(
                array('name' => '验证码''value' => $code),
                array('name' => '系统版权''value' => $_W['wlsetting']['base']['copyright']),
                array('name' => '系统名称''value' => $title)
            );
            foreach ($data as $d) {
                $param[] = replaceTemplate($d['data_shop'], $datas);
            }
            $result $rest->sendTemplateSMS($mobile,$param,$sms_tpl['smstplid']);
        }else{
            $result $rest->sendTemplateSMS($mobile,array($code),$_W['wlsetting']['api']['yun_sf']);
        }
 
        if($result == NULL ) {
            die(json_encode(array("result" => 2)));
        }
        if($result->statusCode!=0) {
            die(json_encode(array("result" => 2)));
        }else{
            create_apirecord(-1,'',$_W['mid'],$mobile,1,'云通讯身份验证');
            $cookie array();
            $cookie['mobile'] = $mobile;
            $cookie['code'] = $code;
            $session base64_encode(json_encode($cookie));
            isetcookie('__auth_session'$session, 600, true);
            die(json_encode(array("result" => 1)));
        }
    }else if($_W['wlsetting']['api']['jtatus'] == 3){
         $uid $_W['wlsetting']['api']['smsbao_id'];
         $pass $_W['wlsetting']['api']['smsbao_secret'];
         $sign $_W['wlsetting']['api']['smsbao_sign'];
 
         $datas array(
                '【验证码】'=>$code,
                '【系统版权】' => $_W['wlsetting']['base']['copyright'],
                '【系统名称】' => $title
            );
        if($_W['wlsetting']['sms']['status'] == 2 && !empty($_W['wlsetting']['sms']['dy_sf'])){
            $sms_tpl = pdo_get('weliam_shiftcar_smstpl',array('id' => $_W['wlsetting']['sms']['dy_sf']),array('smstplid'));
            $data $sms_tpl['smstplid'];
                $key array_keys($datas);
                $value array_values($datas);
                $content str_replace($key$value$data);
 
                $url 'http://api.smsbao.com/sms?u='.$uid.'&p='.md5($pass).'&m='.$mobile.'&c=【'.$sign.'】'.$content;
                $ret file_get_contents($url);
 
        }else{
            $data $_W['wlsetting']['api']['smsbao_tz'];
 
            $key array_keys($datas);
            $value array_values($datas);
            $content str_replace($key$value$data);
            $url 'http://api.smsbao.com/sms?u='.$uid.'&p='.md5($pass).'&m='.$mobile.'&c=【'.$sign.'】'.$content;
 
            $ret file_get_contents($url);
        }
 
 
        if ($ret == 0) {
            create_apirecord(-1,'',$_W['mid'],$mobile,1,'短信宝身份验证');
            $cookie array();
            $cookie['mobile'] = $mobile;
            $cookie['code'] = $code;
            $session base64_encode(json_encode($cookie));
            isetcookie('__auth_session'$session, 600, true);
            die(json_encode(array("result" => 1)));
        }else{
             die(json_encode(array("result" => 2)));
        }
 
    }
}
 
function send_smsnotice($mobile,$calltel,$carmember){
    global $_W,$_GPC;
    $title = !empty($_W['wlsetting']['api']['dy_qm']) ? $_W['wlsetting']['api']['dy_qm'] : $_W['wlsetting']['base']['name'];
 
    if($_W['wlsetting']['api']['jtatus'] == 1){
        m('topclient')->appkey = $_W['wlsetting']['api']['dx_appid'];
        m('topclient')->secretKey = $_W['wlsetting']['api']['dx_secretkey'];
        m('smsnum')->setSmsType("normal");
        m('smsnum')->setSmsFreeSignName($title);
        if($_W['wlsetting']['sms']['status'] == 2 && !empty($_W['wlsetting']['sms']['dy_dx'])){
            $sms_tpl = pdo_get('weliam_shiftcar_smstpl',array('id' => $_W['wlsetting']['sms']['dy_dx']),array('smstplid','data'));
            $data = unserialize($sms_tpl['data']);
            $datas array(
                array('name' => '挪车人手机号''value' => $calltel),
                array('name' => '挪车人昵称''value' => $_W['wlmember']['nickname']),
                array('name' => '车主手机号''value' => $mobile),
                array('name' => '车主昵称''value' => $carmember['nickname']),
                array('name' => '车牌''value' => $carmember['plate1'].$carmember['plate2'].$carmember['plate_number']),
                array('name' => '当前位置''value' => trim($_GPC['nowlocation'])),
                array('name' => '系统版权''value' => $_W['wlsetting']['base']['copyright']),
                array('name' => '系统名称''value' => $title)
            );
            foreach ($data as $d) {
                $param[$d['data_temp']] = replaceTemplate($d['data_shop'], $datas);
            }
            m('smsnum')->setSmsParam(json_encode($param));
            m('smsnum')->setSmsTemplateCode($sms_tpl['smstplid']);
        }else{
            m('smsnum')->setSmsParam('{"name":"'.$title.'","tel":"'.$calltel.'"}');
            m('smsnum')->setSmsTemplateCode($_W['wlsetting']['api']['dy_dx']);
        }
        m('smsnum')->setRecNum($mobile);
        $resp = m('topclient')->execute(m('smsnum'),'6100e23657fb0b2d0c78568e55a3031134be9a3a5d4b3a365753805');
        $res = object_array($resp);
        if($res['result']['success'] == 1){
            create_apirecord($_W['mid'],$calltel,$carmember['id'],$mobile,2,'阿里大于短信通知');
            return array("result" => 1);    
        }else{
            die(json_encode(array("result" => 2,"msg" => $res['sub_msg'])));
        }
    }else if($_W['wlsetting']['api']['jtatus'] == 2){
        include_once(WL_CORE . "class/CCPRestSDK.class.php");
        $accountSid $_W['wlsetting']['api']['yun_accountsid'];
        $accountToken $_W['wlsetting']['api']['yun_authtoken'];
        $appId $_W['wlsetting']['api']['yun_appid'];
        $serverIP='app.cloopen.com';
        $serverPort='8883';
        $softVersion='2013-12-26';
 
        $rest new REST($serverIP,$serverPort,$softVersion);
        $rest->setAccount($accountSid,$accountToken);
        $rest->setAppId($appId);
 
        if($_W['wlsetting']['sms']['status'] == 2 && !empty($_W['wlsetting']['sms']['dy_dx'])){
            $sms_tpl = pdo_get('weliam_shiftcar_smstpl',array('id' => $_W['wlsetting']['sms']['dy_dx']),array('smstplid','data'));
            $data = unserialize($sms_tpl['data']);
            $datas array(
                array('name' => '挪车人手机号''value' => $calltel),
                array('name' => '挪车人昵称''value' => $_W['wlmember']['nickname']),
                array('name' => '车主手机号''value' => $mobile),
                array('name' => '车主昵称''value' => $carmember['nickname']),
                array('name' => '车牌''value' => $carmember['plate1'].$carmember['plate2'].$carmember['plate_number']),
                array('name' => '当前位置''value' => trim($_GPC['nowlocation'])),
                array('name' => '系统版权''value' => $_W['wlsetting']['base']['copyright']),
                array('name' => '系统名称''value' => $title)
            );
            foreach ($data as $d) {
                $param[] = replaceTemplate($d['data_shop'], $datas);
            }
            die(json_encode(array("result" => 2,"msg" => $param[1])));
            $result $rest->sendTemplateSMS($mobile,$param,$sms_tpl['smstplid']);
        }else{
            $result $rest->sendTemplateSMS($mobile,array($calltel),$_W['wlsetting']['api']['yun_dx']);
        }
 
        if($result == NULL ) {
            die(json_encode(array("result" => 2,"msg" => '短信通知发送失败')));
        }
        if($result->statusCode!=0) {
            die(json_encode(array("result" => 2,"msg" => $result->statusCode.$result->statusMsg)));
        }else{
            create_apirecord($_W['mid'],$calltel,$carmember['id'],$mobile,2,'云通讯短信通知');
            return array("result" => 1);
        }
    }else if($_W['wlsetting']['api']['jtatus'] == 3){
         $uid $_W['wlsetting']['api']['smsbao_id'];
         $pass $_W['wlsetting']['api']['smsbao_secret'];
         $sign $_W['wlsetting']['api']['smsbao_sign'];
 
             $datas array(
                '【挪车人手机号】'=>$calltel,
                '【挪车人昵称】' => $_W['wlmember']['nickname'],
                '【车主手机号】' => $mobile,
                '【车主昵称】' => $carmember['nickname'],
                '【车牌】' => $carmember['plate1'].$carmember['plate2'].$carmember['plate_number'],
                '【当前位置】' => trim($_GPC['nowlocation']),
                '【系统版本】' => $_W['wlsetting']['base']['copyright'],
                '【系统名称】' => $title
            );
 
            if($_W['wlsetting']['sms']['status'] == 2 && !empty($_W['wlsetting']['sms']['dy_dx'])){
            $sms_tpl = pdo_get('weliam_shiftcar_smstpl',array('id' => $_W['wlsetting']['sms']['dy_dx']),array('smstplid'));
            $data $sms_tpl['smstplid'];
                $key array_keys($datas);
                $value array_values($datas);
                $content str_replace($key$value$data);
 
                $url 'http://api.smsbao.com/sms?u='.$uid.'&p='.md5($pass).'&m='.$mobile.'&c=【'.$sign.'】'.$content;
                $ret file_get_contents($url);
 
        }else{
            $data $_W['wlsetting']['api']['smsbao_dxtz'];
 
            $key array_keys($datas);
            $value array_values($datas);
            $content str_replace($key$value$data);
            $url 'http://api.smsbao.com/sms?u='.$uid.'&p='.md5($pass).'&m='.$mobile.'&c=【'.$sign.'】'.$content;
 
            $ret file_get_contents($url);
        }
 
 
        if ($ret == 0) {
            create_apirecord(-1,'',$_W['mid'],$mobile,1,'短信宝身份验证');
            $cookie array();
            $cookie['mobile'] = $mobile;
            $cookie['code'] = $code;
            $session base64_encode(json_encode($cookie));
            isetcookie('__auth_session'$session, 600, true);
            die(json_encode(array("result" => 1)));
        }else{
             die(json_encode(array("result" => 2)));
        }
 
    }
}

接下来我们要修改,接口配置文件,项目/web/controller/setting/setting.ctrl.php文件,修改94~135行,修改代码如下:

?
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
if ($op == 'api') {
    $settings = wlsetting_read('api');
    if (checksubmit('submit')) {
        $base array(
            'jtatus'=>intval($_GPC['jtatus']),
            'ytatus'=>intval($_GPC['ytatus']),
            'btatus'=>intval($_GPC['btatus']),
            'dx_appid' => $_GPC['dx_appid'],
            'dx_secretkey' => $_GPC['dx_secretkey'],
            'dy_sf' => $_GPC['dy_sf'],
            'dy_dx' => $_GPC['dy_dx'],
            'dy_yy' => $_GPC['dy_yy'],
            'dy_yynum' => $_GPC['dy_yynum'],
            'dy_qm' => $_GPC['dy_qm'],
            'smsbao_id' => $_GPC['smsbao_id'],
            'smsbao_secret' => $_GPC['smsbao_secret'],
            'smsbao_sign' => $_GPC['smsbao_sign'],
            'smsbao_tz' => $_GPC['smsbao_tz'],
            'smsbao_dxtz' => $_GPC['smsbao_dxtz'],
            'yun_accountsid' => $_GPC['yun_accountsid'],
            'yun_authtoken' => $_GPC['yun_authtoken'],
            'yun_appid' => $_GPC['yun_appid'],
            'yun_sf' => $_GPC['yun_sf'],
            'yun_dx' => $_GPC['yun_dx'],
            'yun_hm' => $_GPC['yun_hm'],
            'SubAccountSid' => $_GPC['SubAccountSid'],
            'SubAccountToken' => $_GPC['SubAccountToken'],
            'VoIPAccount' => $_GPC['VoIPAccount'],
            'VoIPPassword' => $_GPC['VoIPPassword'],
            '253yun_accountsid' => $_GPC['253yun_accountsid'],
            '253yun_authtoken' => $_GPC['253yun_authtoken'],
            '253yun_appid' => $_GPC['253yun_appid'],
            '253yun_yywb' => $_GPC['253yun_yywb'],
            '253yun_shownum' => $_GPC['253yun_shownum'],
            '253yun_fromSerNum' => $_GPC['253yun_fromSerNum'],
            '253yun_toSerNum' => $_GPC['253yun_toSerNum'],
        );
        wlsetting_save($base'api');
        message('更新设置成功!', web_url('setting/setting/api'));
    }
    include wl_template('setting/api');
}

由于数据库中的一些字段满足不了我们的模版内容所以我们需要修改一下数据库,在与addons文件夹的同级目录建立两个文件分别为smsbaos_install.php和smsbao_install.sql文件,代码非别为:

smsbao_install.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
<?php
 
 
define('IN_SYS', true);
require './framework/bootstrap.inc.php';
require './data/config.php';
 
    if ($config['db']['master']['host']) {
        $mysql_server_name $config['db']['master']['host'];
        $mysql_username $config['db']['master']['username'];
        $mysql_password $config['db']['master']['password'];
        $mysql_database $config['db']['master']['database'];
        $mysql_tablepre $config['db']['master']['tablepre'];
    }else{
        $mysql_server_name $config['db']['host'];
        $mysql_username $config['db']['username'];
        $mysql_password $config['db']['password'];
        $mysql_database $config['db']['database'];
        $mysql_tablepre $config['db']['tablepre'];
    }
 
    $conn=mysql_connect($mysql_server_name,$mysql_username,$mysql_passwordor die("error connecting") ;
    mysql_query("set names 'utf8'");
    mysql_select_db($mysql_database);
    $newsql = sreadfile("smsbaos_install.sql");
    if ($mysql_tablepre != 'ims_') {
        $newsql str_replace('ims_'$mysql_tablepre$newsql);
    }
    $sqls explode(";"$newsql);
    foreach ($sqls as $sql) {
        $sql = trim($sql);
        if (empty($sql)) {
            continue;
        }
        if(!$query =mysql_query($sql)) {
            echo "执行sql语句成功 ".mysql_error();
            exit();
        }
    }
    echo "<h4>短信宝短信插件安装成功,请删除此文件。</h4>";
    function sreadfile($filename) {
        $content '';
        if(function_exists('file_get_contents')) {
            @$content file_get_contents($filename);
        else {
            if(@$fp fopen($filename'r')) {
                @$content fread($fpfilesize($filename));
                @fclose($fp);
            }
        }
        return $content;
    }
 
?>

smsbaos_install.sql文件

?
1
alter table `ims_weliam_shiftcar_smstpl` modify column `smstplid` varchar(255);
报备一下短信宝的VIP模板,这样就可以走短信宝的优质通道了,并且免审核了,短信内容3~5秒就可送达。

短信宝-做更好用的短信验证码短信营销短信群发服务平台。超过9,000个网站始终信任短信宝。通过稳定快捷的短信,短信宝帮助他们缩短了90%的人工服务处理时间,同时降低了81%由于通讯故障导致的废单率,一切变得轻松可控!

Copyright © 2010-2014 smsbao.com All Rights Reserved
上海子橙电子科技有限公司 沪ICP备14008182号-2 上海市松江区广富林路658弄215号

展开