DSMall基于国内优秀开源框架THinkPHP、打造出的一套开源的B2B2C电子商务系统。小编带着大家一起开发DSMall商城V7.1.6的短信宝插件接口。我们使用的短信接口是我们短信宝短信群发平台的短信接口,我们短信宝短信群发平台非常稳定,发送速度快,注册就送测试短信,推荐大家使用。
1.首先我们打开项目app\admin\view\message\mobile.html文件,在49~62行左右增加以下代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<tr class= "noborder smscf_type_smsbao" { if $list_config.smscf_type!= 'smsbao' }style= "display:none" {/ if }> <td class= "required w120" >{$Think.lang.smscf_smsbao_username}</td> <td class= "vatop rowform" > <input type= "text" name= "smscf_smsbao_username" id= "smscf_smsbao_username" value= "{$list_config.smscf_smsbao_username}" class= "w200" /> </td> <td class= "vatop tips" ></td> </tr> <tr class= "noborder smscf_type_smsbao" { if $list_config.smscf_type!= 'smsbao' }style= "display:none" {/ if }> <td class= "required w120" >{$Think.lang.smscf_smsbao_key}</td> <td class= "vatop rowform" > <input type= "text" name= "smscf_smsbao_key" id= "smscf_smsbao_key" value= "{$list_config.smscf_smsbao_key}" class= "w200" /> <a href= "https://console.smsbao.com/#/register" target= "_blank" class= "btn btn-blue btn-mini" >{$Think.lang.ds_apply}</a> </td> <td class= "vatop tips" ></td> </tr> |
接着在246~251行左右增加以下代码:
1
2
3
4
5
6
|
if ($( this ).val()== 'smsbao' ){ $( '.smscf_type_smsbao' ).show() $( '.smscf_type_ali' ).hide() $( '.smscf_type_wj' ).hide() $( '.smscf_type_ten' ).hide() } |
2.接着打开项目app\admin\lang\zh-cn\message.lang.php 文件,在111~113行增加以下代码:
1
2
3
|
$lang[ 'smscf_type_smsbao' ] = '短信宝' ; $lang[ 'smscf_smsbao_username' ] = '短信宝账号' ; $lang[ 'smscf_smsbao_key' ] = '短信宝ApiKey' ; |
3.接着打开项目app\admin\controller\Message.php 文件,替换mobile_testing 方法
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
|
/** * 测试手机短信发送 * * @param * @return */ public function mobile_testing() { $mobile = input( 'param.mobile_test' ); $content = input( 'param.mobile_test_content' ); $smscf_type = input( 'param.smscf_type' ); $smscf_ali_id = input( 'param.smscf_ali_id' ); $smscf_ali_secret = input( 'param.smscf_ali_secret' ); $ali_template_param = input( 'param.ali_template_param' ); $ali_template_code = input( 'param.ali_template_code' ); $ali_template_content = input( 'param.ali_template_content' ); $smscf_ten_id = input( 'param.smscf_ten_id' ); $smscf_ten_secret = input( 'param.smscf_ten_secret' ); $ten_template_param = input( 'param.ten_template_param' ); $ten_template_code = input( 'param.ten_template_code' ); $ten_template_content = input( 'param.ten_template_content' ); $smsbao_test_content = input( 'param.smsbao_test_content' ); $smsbao_user = input( 'param.smscf_smsbao_username' ); // 这里填写用户名 $smsbao_apikey = input( 'param.smscf_smsbao_key' ); // 这里填接口安全密钥 $user_id = urlencode(input( 'param.smscf_wj_username' )); // 这里填写用户名 $key = urlencode(input( 'param.smscf_wj_key' )); // 这里填接口安全密钥 $smscf_sign = input( 'param.smscf_sign' ); config( 'ds_config.smscf_type' , $smscf_type); config( 'ds_config.smscf_wj_username' , $user_id); config( 'ds_config.smscf_wj_key' , $key); config( 'ds_config.smscf_smsbao_username' , $smsbao_user); config( 'ds_config.smscf_smsbao_key' , $smsbao_apikey); config( 'ds_config.smscf_ali_id' , $smscf_ali_id); config( 'ds_config.smscf_ali_secret' , $smscf_ali_secret); config( 'ds_config.smscf_ten_id' , $smscf_ten_id); config( 'ds_config.smscf_ten_secret' , $smscf_ten_secret); config( 'ds_config.smscf_sign' , $smscf_sign); $smslog_param = array( 'ali_template_code' => $ali_template_code, 'ali_template_param' => array(), 'ten_template_code' => $ten_template_code, 'ten_template_param' => array(), ); if ($smscf_type == 'wj' ) { $smslog_param[ 'message' ] = $content; } else if ($smscf_type == 'smsbao' ) { $smslog_param[ 'message' ] = $smsbao_test_content; } elseif ($smscf_type == 'ali' ) { $param = json_decode(htmlspecialchars_decode($ali_template_param), true ); if (!$param) { echo json_encode(array( 'msg' => lang( 'ali_template_param_error' ))); exit; } $smslog_param[ 'message' ] = ds_replace_text(htmlspecialchars_decode($ali_template_content), $param); $smslog_param[ 'ali_template_param' ] = $param; } elseif ($smscf_type == 'ten' ) { $param = json_decode(htmlspecialchars_decode($ten_template_param), true ); if (!$param) { echo json_encode(array( 'msg' => lang( 'ten_template_param_error' ))); exit; } $smslog_param[ 'message' ] = ds_replace_text(htmlspecialchars_decode($ten_template_content), $param); $smslog_param[ 'ten_template_param' ] = $param; } else { echo json_encode(array( 'msg' => lang( 'param_error' ))); exit; } $result = model( 'smslog' )->sendSms($mobile, $smslog_param); if ($result[ 'code' ] == 10000) { $data[ 'msg' ] = '测试手机短信发送成功' ; } else { $data[ 'msg' ] = $result[ 'message' ]; } echo json_encode($data); exit; } |
4.接着打开项目extend\sendmsg\Sms.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
|
/* 您验证码是:{$verify_code} http://api.smsbao.com/sms?u=本站用户名&p=接口安全秘钥&m=手机号码E&c=短信内容 */ public function smsbao_send($mobile, $content) { $statusStr = array( "0" => "短信发送成功" , "-1" => "参数不全" , "-2" => "服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间!" , "30" => "密码错误" , "40" => "账号不存在" , "41" => "余额不足" , "42" => "帐户已过期" , "43" => "IP地址限制" , "50" => "内容含有敏感词" ); $user_name = config( 'ds_config.smscf_smsbao_username' ); // 这里填写用户名 $key = config( 'ds_config.smscf_smsbao_key' ); // 这里填接口安全密钥 if (!$mobile || !$content || !$user_name || !$key) return false ; if (is_array($mobile)) { $mobile = implode( "," , $mobile); } $mobile=urlencode($mobile); $content=urlencode($content); $url = "http://api.smsbao.com/sms?u=" . $user_name . "&p=" . $key . "&m=" . $mobile . "&c=" . $content; if (function_exists( 'file_get_contents' )) { $res = file_get_contents($url); } else { $ch = curl_init(); $timeout = 5; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $res = curl_exec($ch); curl_close($ch); } //短信发送后返回值 说明 $message = $statusStr[$res]; if ($res == '0' ){ return ds_callback( true ); } else { return ds_callback( false ,$message); } } |
好了经过以上的添加,短信宝的短信平台已经替换成功了,可以正常使用了
报备一下短信宝的VIP模板,这样就可以走短信宝的优质通道了,即便遇到敏感文字我们都不会人工审核,短信内容3~5秒就可送达。
另外:我们已经开发好完整的DsMall商城系统短信宝插件,点击此链接 下载及查看安装流程。
最新更新
电商类
CMS类
微信类