ShopXO是国内领先的商城系统提供商,为企业提供php商城系统、微信商城、小程序。小编发现ShopXO更新到6.3.0版本,就以替换短信接口为例告诉大家如何进行二次开发,使用的短信接口是我们短信宝短信群发平台的接口,我们短信宝短信群发平台非常稳定,发送速度快,注册就送测试短信,推荐大家使用
1:打开项目:app\lang\zh.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
|
'common_sms_apikey' => [ 'name' => '短信宝账号', 'desc' => '短信宝账号', 'tips' => '请填写短信宝账号',],'common_sms_apisecret' => [ 'name' => '短信宝密码', 'desc' => '短信宝密码', 'tips' => '请填写短信宝密码',],'home_sms_user_reg_template' => [ 'name' => '用户注册-短信模板', 'desc' => '验证码code', 'tips' => '请填写用户注册短信模板内容',],'home_sms_user_forget_pwd_template' => [ 'name' => '密码找回-短信模板', 'desc' => '验证码code', 'tips' => '请填写密码找回短信模板内容',],'common_sms_currency_template' => [ 'name' => '通用-短信模板', 'desc' => '验证码code', 'tips' => '请填写通用短信模板内容',],'home_sms_user_mobile_binding_template' => [ 'name' => '手机号码绑定-短信模板', 'desc' => '验证码code', 'tips' => '请填写手机号码绑定短信模板内容',],'admin_sms_login_template' => [ 'name' => '后台登录-短信模板', 'desc' => '验证码code', 'tips' => '请填写后台登录短信模板内容',],'home_sms_login_template' => [ 'name' => '用户登录-短信模板', 'desc' => '验证码code', 'tips' => '请填写用户登录短信模板内容',] |
2:打开项目:\app\admin\view\default\sms\tips.html 修改跳转方式
|
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">短信宝短信地址 <a href="https://console.smsbao.com/#/register" class="am-margin-left-sm" target="_blank">点击去短信宝购买短信<i class="am-icon-external-link"></i></a> </p></div> |
3:打开项目:\extend\base\Sms.php 修改短信发送函数 大概151行
|
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 SmsRequest($mobile, $template_value, $sign_name = '', $template_var = []){ // 签名 $sign_name = empty($sign_name) ? $this->sign_ame : $sign_name; // 短信发送钩子 $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参数,则认为是钩子处理短信的发送 if(!empty($ret)) { // 处理钩子数据 $ret = EventReturnHandle($ret); if($ret['code'] != 0) { $this->error = $ret['msg']; return false; } return true; } // 请求参数 $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, ]; // 携带参数 if(!empty($template_var)) { if(!is_array($template_var)) { $template_var = ['code'=>$template_var]; } $request_params['TemplateParam'] = json_encode($template_var, JSON_UNESCAPED_UNICODE); } $content = $template_value; foreach ($template_var as $k=>$v){ $content = str_replace($k,$v,$content); } $SignName = empty($sign_name) ? $this->sign_ame : $sign_name; $url = $request_url.'?u='.$this->access_key_id.'&p='.md5($this->access_key_secret).'&m='.$mobile.'&c=【'.$SignName.'】'.$content; // 添加短信日志 $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') { // 日志回调 SmsLogService::SmsLogResponse($log['data']['id'], 1, $result, time()-$log['data']['add_time']); return true; } // 错误原因 $this->error = $this->GetErrorMessage($result); // 日志回调 SmsLogService::SmsLogResponse($log['data']['id'], 2, $result, time()-$log['data']['add_time'], $this->error); return false;} |
经过上面的替换,短信宝的短信平台已经替换成功了,可以正常使用了。进行测试发送:
报备一下短信宝的VIP模板,这样就可以走短信宝的优质通道了,即便遇到敏感文字我们都不会人工审核,短信内容3~5秒就可送达。
另外:我们已经开发好完整的ShopXO v6.3.0系统短信宝插件,点击此链接 下载及查看安装流程。
最新更新
电商类
CMS类
微信类