阿貍子訂單管理系統 是基于ThinkPHP開發的微信商城系統,是一款極簡的PHP訂單系統,支持貨到付款,微信支付,非常不錯,簡介大方,適合做百度推廣、聯盟推廣,高效快捷,后臺功能齊全,小編今天就以替換短信接口為例帶大家進行二次開發,我們使用的短信接口是我們短信寶短信群發平臺的短信接口,我們短信寶短信群發平臺非常穩定,發送速度快,注冊就送測試短信,推薦大家使用
1:打開項目:Public\Common\alizi.setting.php 修改136行
|
1
2
3
4
5
6
7
|
'sms_setting' => array( 'sms_send'=> array('name'=>'短信發送','options'=>array('0'=>'關閉','1'=>'啟用',),'tags'=>'select','decription'=>'','width'=>30,'height'=>0,'separator'=>0,), 'sms_admin'=> array('name'=>'通知對象','value'=>1,'options'=>array('0'=>'只通知客戶','1'=>'只通知管理員','2'=>'同時通知管理員和客戶',),'tags'=>'select','decription'=>'','width'=>35,'height'=>0,'separator'=>0,), 'sms_admin_mobile'=> array('name'=>'','options'=>'','tags'=>'text','decription'=>'請填寫管理員手機號,多個號碼請用英文逗號隔開','width'=>30,'height'=>0,'separator'=>0,), 'sms_account'=> array('name'=>'短信寶賬號','options'=>'','tags'=>'text','decription'=>'','width'=>30,'height'=>0,'separator'=>0,), 'sms_password'=> array('name'=>'短信寶密碼','options'=>'','tags'=>'text','decription'=>'','width'=>30,'height'=>0,'separator'=>0,),), |
2:打開項目:Admin\Lib\Action\IndexAction.class.php 修改余額方法 大概47行
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
public function smsBalance(){ header('Content-type: application/json'); $aliziConfig = S('aliziConfig'); if(empty($aliziConfig['sms_account']) || empty($aliziConfig['sms_password'])){ $json = json_encode(array('status'=>0,'data'=>0)); }else{ $data = array( //'method'=>'balance', 'u'=>$aliziConfig['sms_account'], 'p'=>md5($aliziConfig['sms_password']) //'url'=>"http://{$_SERVER['SERVER_NAME']}{$_SERVER['SCRIPT_NAME']}", ); $result=file_get_contents($url.http_build_query($data)); $result=explode(',',$result); $json=json_encode(array('status'=>0,'data'=>$result[1])); //$json = http( C('ALIZI_API').'/sms/', 'POST', $data ); } die($json); } |
3:打開項目:Admin\Lib\Action\OrderAction.class.php 修改發送函數 大概663行
|
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
|
function smsSend($order_id,$order_status=0){ $orders = M('Order')->where(array('id'=>array('IN',$order_id)))->select(); $express = C('DELIVERY'); if($orders){ foreach($orders as $order){ $item = M('Item')->where('id='.$order['item_id'])->field('id,sms_send')->find(); $sms = json_decode($item['sms_send'],true); if(!empty($sms[$order_status]['content'])){ $replace = array( '#title#' => $order['item_name'], '#params#' => $order['item_params'], '#name#' => $order['name'], '#mobile#' => $order['mobile'], '#quantity#' => $order['quantity'], '#price#' => $order['total_price'], '#express#' => $express[$order['delivery_name']], '#expressNum#' => $order['delivery_no'], '#orderNum#' => $order['order_no'], '#payUrl#' => shortUrl($this->aliziHost.'Api/pay.php?id='.$order['order_no']), '#confirmUrl#' => $this->aliziHost.(C('URL_MODEL')==2?'a/'.$order['order_no']:'Api/confirm.php?id='.$order['order_no']), ); $id[] = $order['id']; $mobile[] = $order['mobile']; $content[] = urlencode(str_replace(array_keys($replace),array_values($replace),$sms[$order_status]['content'])); } } if(count($orders)==1){ $method = 'single'; $mobile = $mobile[0]; $content = urldecode($content[0]); }else{ $method = 'multi'; $mobile = implode(',',$mobile); $content = implode(',',$content); } $aliziConfig = parent::aliziConfig(); $data = array( 'method'=>$method, 'account'=>$aliziConfig['sms_account'], 'password'=>$aliziConfig['sms_password'], 'mobile'=>$mobile, 'content'=>$content, ); $user = $data['account']; //短信平臺帳號 $pass = md5($data['password']); //短信平臺密碼 $content= '【'.$aliziConfig['title'].'】'.$data['content'];"短信內容";//要發送的短信內容 $phone = $data['mobile'];//要發送短信的手機號碼 $sendurl = $smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content); $result =file_get_contents($sendurl); $ret = []; if ($result == 0) { $ret['data'] = array(array('status'=>1,'mobile'=>$phone,'content'=>$content)); }else{ $ret = 0; } $i = 0; if(!empty($ret['data'])){ foreach($ret['data'] as $k=>$li){ if($li['status']==1){ $i++; $sendData = array( 'order_id'=>$id[$k], 'order_status'=>$order_status, 'mobile'=>$li['mobile'], 'sent_content'=>$li['content'], 'sent_time'=>date('Y-m-d H:i:s'), 'sent_status'=>1, ); M('Sent')->add($sendData); } } } if($i>0){ $status = 1; $msg = "發送成功{$i}條"; }else{ $status = 0; $msg = "發送失敗"; } $this->ajaxReturn(null,$msg,$status); }else{ $this->ajaxReturn(null,'請選擇訂單',0); } } |
4:打開項目:Home\Lib\Action\AliziAction.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
|
function send_sms($mobile,$content){ $config = $this->aliziConfig(); $data = array( 'method'=>'single', 'account'=>$config['sms_account'], 'apikey'=>$config['sms_password'], 'mobile'=>$mobile, 'content'=>$content, ); $user = $data['account']; //短信平臺帳號 $pass = md5($data['apikey']); //短信平臺密碼 $content= '【'.$this->aliziConfig['title'].'】'.$data['content'];"短信內容";//要發送的短信內容 $phone = $data['mobile'];//要發送短信的手機號碼 $sendurl = $smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content); $result =file_get_contents($sendurl); $rs = []; if ($result == 0){ $rs['status'] = 1; }else{ $rs['status'] = 0; } return $rs; } |
5:打開項目:Home\Lib\Action\ApiAction.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
|
private function sendSMS($order_id){ if(empty($this->aliziConfig['sms_send'])){ return array('status'=>0); } $order = M('Order')->where(array('id'=>$order_id))->find(); if(empty($order)) return array('status'=>0); $item = M('Item')->where('id='.$order['item_id'])->field('id,sms_send')->find(); $sms = json_decode($item['sms_send'],true); $status=$order['status']; if($sms[$status]['status']==1 && !empty($sms[$status]['content'])){ //發送內容替換 $express = C('DELIVERY'); $http_type = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://'; $aliziHost = $http_type.$_SERVER['HTTP_HOST'].C('ALIZI_ROOT'); $confirmUrl = $aliziHost.(C('URL_MODEL')==2?'a/'.$order['order_no']:'Api/confirm.php?id='.$order['order_no']); $mobiles = $order['mobile']; if(!empty($this->aliziConfig['sms_admin_mobile'])){ switch ($this->aliziConfig['sms_admin']) { case '1': $mobiles = $this->aliziConfig['sms_admin_mobile'];break; case '2': $mobiles .= ','.$this->aliziConfig['sms_admin_mobile'];break; } } $replace = array( '{[AliziTitle]}' => $order['item_name'], '{[AliziParams]}' => $order['item_params'], '{[AliziName]}' => $order['name'], '{[AliziQuantity]}' => $order['quantity'], '{[AliziPrice]}' => $order['total_price'], '{[AliziExpress]}' => $express[$order['delivery_name']], '{[AliziExpressNum]}' => $order['delivery_no'], '{[AliziConfirmUrl]}' => $confirmUrl, '#title#' => $order['item_name'], '#params#' => $order['item_params'], '#name#' => $order['name'], '#mobile#' => $order['mobile'], '#quantity#' => $order['quantity'], '#price#' => $order['total_price'], '#express#' => $express[$order['delivery_name']], '#expressNum#' => $order['delivery_no'], '#confirmUrl#' => $confirmUrl, '#payUrl#' => shortUrl($this->aliziHost.'Api/pay.php?id='.$order['order_no']), '#orderNum#' => $order['order_no'], ); $content = str_replace(array_keys($replace),array_values($replace),$sms[$status]['content']); $param['u']=$this->aliziConfig['sms_account']; $param['p']=md5($this->aliziConfig['sms_password']); $param['m']=$order['mobile']; $param['c']='【'.$this->aliziConfig['title'].'】'.$content; $rs=file_get_contents($url.http_build_query($param)); if($rs == "0"){ $sendData = array( 'order_id'=>$order_id, 'order_status'=>$order['status'], 'mobile'=>$mobiles, 'sent_content'=>$content, 'sent_time'=>date('Y-m-d H:i:s'), 'sent_status'=>1, ); M('Sent')->add($sendData); } } } |
經過上面的替換,短信寶的短信平臺已經替換成功了,可以正常使用了。進行測試發送:
報備一下短信寶的VIP模板,這樣就可以走短信寶的優質通道了,即便遇到敏感文字我們都不會人工審核,短信內容3~5秒就可送達。
另外:我們已經開發好完整的阿貍子V_3.2系統短信寶插件,點擊此鏈接 下載及查看安裝流程。
最新更新
電商類
CMS類
微信類