阿狸子订单管理系统 是基于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类
微信类