ShopXO是國內(nèi)領(lǐng)先的商城系統(tǒng)提供商,為企業(yè)提供php商城系統(tǒng)、微信商城、小程序。小編發(fā)現(xiàn)ShopXO更新到6.6.0版本,就以替換短信接口為例告訴大家如何進行二次開發(fā),使用的短信接口是我們短信寶短信群發(fā)平臺的接口,我們短信寶短信群發(fā)平臺非常穩(wěn)定,發(fā)送速度快,注冊就送測試短信,推薦大家使用。下面具體給大家說一下每個文件的作用及代碼。
1.首先打開項目app\admin\lang\zh.php文件,替換配置短信信息,大約在535~546行左右,代碼如下
1
2
3
4
5
6
7
8
9
10
11
12
13
|
// 短信設置 'sms' => [ // 基礎導航 'base_nav_list' => [ [ 'name' => '短信設置' , 'type' => 'index' ], [ 'name' => '消息模板' , 'type' => 'message' ], ], 'top_tips' => '短信寶管理地址' , 'top_to_smsbao_tips' => '點擊去短信寶購買短信' , 'base_item_admin_title' => '后臺' , 'base_item_index_title' => '前端' , ], |
2:接著打開app\admin\view\default\sms\tips.html 替換購買短信按鈕跳轉(zhuǎn)鏈接配置
1
2
3
4
5
6
7
8
|
< div class = "am-operate-stretch-tips" > < div class = "title" > < i class = "iconfont icon-tips" ></ i > < strong title = "{{:MyLang('operate_list_tips_msg')}}" >{{:MyLang('operate_list_tips_button_text')}}</ strong > < i class = "iconfont icon-contract contract" title = "{{:MyLang('operate_list_tips_retract_text')}}" ></ i > </ div > < p class = "am-text-xs" >{{:MyLang('sms.top_tips')}} < a href = "{{:MyLang('sms.top_to_smsbao_url')}}" class = "am-margin-left-sm" target = "_blank" >{{:MyLang('sms.top_to_smsbao_tips')}} < i class = "am-icon-external-link" ></ i ></ a > </ p > </ div > |
3:接著打開app\lang\zh.php 替換短信日志平臺的枚舉類型添加及相關(guān)信息設置,替換common_sms_log_platform_list 、common_sms_apikey、common_sms_apisecret變量的屬性
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
// 短信日志平臺 'common_sms_log_platform_list' => [ 'smsbao' => '短信寶' , ], 'common_sms_apikey' => [ 'name' => '短信寶賬號' , 'desc' => '短信寶賬號' , 'tips' => '請?zhí)顚懚绦艑氋~號' , ], 'common_sms_apisecret' => [ 'name' => '短信寶API key' , 'desc' => '短信寶API key' , 'tips' => '請?zhí)顚懚绦艑欰PI key' , ], |
4:接著打開項目app\service\ConstService.php 替換短信日志平臺的枚舉類型配置
1
2
3
4
|
// 短信日志平臺 'common_sms_log_platform_list' => [ 'smsbao' => [ 'value' => 'smsbao' , 'name' => MyLang( 'common_sms_log_platform_list.smsbao' )], ], |
5:接著打開項目extend\base\Sms.php ,替換SmsRequest短信發(fā)送函數(shù)及GetErrorMessage 獲取返回信息函數(shù)
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
|
public function SmsRequest( $mobile , $template_value , $sign_name = '' , $template_var = []) { // 簽名 $sign_name = empty ( $sign_name ) ? $this ->sign_ame : $sign_name ; // 短信發(fā)送鉤子 $hook_name = 'plugins_extend_sms_send_request_handle' ; $ret = array_filter (MyEventTrigger( $hook_name , [ 'hook_name' => $hook_name , 'is_backend' => true, 'sign_name' => $sign_name , 'mobile' => $mobile , 'template_value' => $template_value , 'template_var' => $template_var , ])); // 存在返回值,并且存在code和mag參數(shù),則認為是鉤子處理短信的發(fā)送 if (! empty ( $ret )) { // 處理鉤子數(shù)據(jù) $ret = EventReturnHandle( $ret ); if ( $ret [ 'code' ] != 0) { $this ->error = $ret [ 'msg' ]; return false; } return true; } // 請求參數(shù) $request_params = [ 'SignName' => $sign_name , 'Format' => 'JSON' , 'Version' => '2017-05-25' , 'AccessKeyId' => $this ->access_key_id, 'Timestamp' => gmdate ( 'Y-m-d\TH:i:s\Z' ), 'Action' => 'SendSms' , 'TemplateCode' => $template_value , 'PhoneNumbers' => $mobile , ]; // 攜帶參數(shù) if (! empty ( $template_var )) { if (! is_array ( $template_var )) { $template_var = [ 'code' => $template_var ]; } $request_params [ 'SmsContent' ] = str_replace ( '${code}' , $template_var [ 'code' ], $template_value ); } $url = $request_url . '?u=' . $this ->access_key_id. '&p=' .md5( $this ->access_key_secret). '&m=' . $mobile . '&c=【' . $sign_name . '】' . $request_params [ 'SmsContent' ]; // 添加短信日志 if ( $this ->is_log == 1) { $log = SmsLogService::SmsLogAdd( 'smsbao' , $mobile , $sign_name , $template_value , $template_var , $request_url , $request_params ); if ( $log [ 'code' ] != 0) { $this ->error = $log [ 'msg' ]; return false; } } // 遠程請求 $ch = curl_init (); curl_setopt ( $ch , CURLOPT_URL, $url ); curl_setopt ( $ch , CURLOPT_SSL_VERIFYPEER, FALSE ); curl_setopt ( $ch , CURLOPT_SSL_VERIFYHOST, FALSE ); curl_setopt ( $ch , CURLOPT_RETURNTRANSFER, 1 ); curl_setopt ( $ch , CURLOPT_TIMEOUT, 10 ); $result = curl_exec ( $ch ); curl_close ( $ch ); if ( $result == '0' ) { // 日志回調(diào) if ( $this ->is_log == 1) { SmsLogService::SmsLogResponse( $log [ 'data' ][ 'id' ], 1, $result , time()- $log [ 'data' ][ 'add_time' ]); } return true; } // 錯誤原因 $this ->error = $this ->GetErrorMessage( $result ); // 日志回調(diào) if ( $this ->is_log == 1) { SmsLogService::SmsLogResponse( $log [ 'data' ][ 'id' ], 2, $result , time()- $log [ 'data' ][ 'add_time' ], $this ->error); } return false; } /** * 獲取返回信息 */ public function GetErrorMessage( $status ) { // 阿里云的短信 亂八七糟的(其實是用的阿里大于) $message = [ "0" => "短信發(fā)送成功" , "-1" => "參數(shù)不全" , "-2" => "服務器空間不支持,請確認支持curl或者fsocket,聯(lián)系您的空間商解決或者更換空間!" , "30" => "密碼錯誤" , "40" => "賬號不存在" , "41" => "余額不足" , "42" => "帳戶已過期" , "43" => "IP地址限制" , "50" => "內(nèi)容含有敏感詞" ]; if (isset( $message [ $status ])) { return $message [ $status ]; } return $status ; } |
好了經(jīng)過以上的添加,短信寶的短信平臺已經(jīng)替換成功了,可以正常使用了
報備一下短信寶的VIP模板,這樣就可以走短信寶的優(yōu)質(zhì)通道了,即便遇到敏感文字我們都不會人工審核,短信內(nèi)容3~5秒就可送達。
另外:我們已經(jīng)開發(fā)好完整的ShopXOV6.6系統(tǒng)短信寶插件,點擊此鏈接 下載及查看安裝流程。
最新更新
電商類
CMS類
微信類