待发短信

在线客服
产品支持 短信宝客服
合作渠道 渠道合作
服务咨询

4001-021-502

工作时间

9:00-21:00

SparkShopV1.1.7系统新增短信宝短信接口

SparkShop(星火商城)是基于thinkphp6 + elementui的开源免费可商用的高性能商城系统;包含小程序商城、H5商城、公众号商城、PC商城、App,支持页面diy、秒杀、优惠券、积分、分销、会员等级。营销功能采用插件化的方式方便扩展、二次开发没系统大小任意控制。小编带着大家一起开发SparkShopV1.1.7的短信宝插件接口。我们使用的短信接口是我们短信宝短信群发平台的短信接口,我们短信宝短信群发平台非常稳定,发送速度快,注册就送测试短信,推荐大家使用。
1.首先打开项目\app\admin\view\default\system\sms.html 文件,替换26~68行代码:

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
<el-tabs v-model="activeName">
            <el-tab-pane label="短信配置" name="first">
                <el-form ref="form" :model="form" label-width="120px">
                    <el-form-item label="短信宝账号">
                        <el-input v-model="form.access_key_id" style="width: 500px"></el-input>
                    </el-form-item>
                    <el-form-item label="短信API Key">
                        <el-input v-model="form.access_key_secret" style="width: 500px"></el-input>
                    </el-form-item>
                    <el-form-item label="短信签名">
                        <el-input v-model="form.sign_name" style="width: 500px"></el-input>
                    </el-form-item>
                    <el-form-item>
                        <el-button type="primary" @click="save">立即保存</el-button>
                    </el-form-item>
                </el-form>
                <div style="margin-top: 30px;font-size: 13px">* 还没注册 "短信宝"
                    <a href="https://console.smsbao.com/#/register" target="_blank" style="color: red"> 点击此处去注册。 </a></div>
            </el-tab-pane>
            <el-tab-pane label="模板设置" name="second">
                <el-form ref="form" :model="form" label-width="150px">
                    <el-form-item label="通用模板">
                        <el-input v-model="form.com_sms_code" style="width: 500px"></el-input>
                        <span>示例:您的验证码为: {code},如非本人操作,请忽略本短信</span>
                    </el-form-item>
                    <el-form-item label="用户登录模板">
                        <el-input v-model="form.login_sms_code" style="width: 500px"></el-input>
                    </el-form-item>
                    <el-form-item label="用户注册模板">
                        <el-input v-model="form.reg_sms_code" style="width: 500px"></el-input>
                    </el-form-item>
                    <el-form-item label="密码找回模板">
                        <el-input v-model="form.forget_sms_code" style="width: 500px"></el-input>
                    </el-form-item>
                    <el-form-item label="手机号码绑定模板">
                        <el-input v-model="form.bind_sms_code" style="width: 500px"></el-input>
                    </el-form-item>
                    <el-form-item>
                        <el-button type="primary" @click="save">立即保存</el-button>
                    </el-form-item>
                </el-form>
            </el-tab-pane>

2.接着打开项目\sparkshop\extend\utils\SparkTools.php 文件,替换68行代码:

1
$smsProvider = new SmsProvider('smsbao');

3.接着打开项目\sparkshop\extend\strategy\sms\impl目录,新增SmsbaoSmsImpl.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
<?php
namespace strategy\sms\impl;
 
use Darabonba\OpenApi\Models\Config;
use strategy\sms\SmsInterface;
use think\facade\Log;
 
class SmsbaoSmsImpl implements SmsInterface
{
    private $sendUrl = 'http://api.smsbao.com/sms?';
 
    private $statusStr = array(
                "0" => "短信发送成功",
                "-1" => "参数不全",
                "-2" => "服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间!",
                "30" => "密码错误",
                "40" => "账号不存在",
                "41" => "余额不足",
                "42" => "帐户已过期",
                "43" => "IP地址限制",
                "50" => "内容含有敏感词",
                "51" => "手机号码不正确"
            );
 
     private function curl_get($sendurl){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $sendurl);
        curl_setopt($ch, CURLOPT_TIMEOUT, 1);
        curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $result = curl_exec($ch);
        curl_close($ch);
        return $result;
    }
 
    public function send($param)
    {
        try {
            $user = $param["accessKeyId"];
            $apikey = $param["accessKeySecret"];
            $codeStr = $param["code"];
            $codeData = json_decode($codeStr,true);
            $TemplateContent = str_replace('{code}', $codeData['code'], $param["templateCode"]);
            $content = '【'.$param["signName"].'】'.$TemplateContent;
            $sendurl = $this->sendUrl."u=".$user."&p=".$apikey."&m=".$param["phone"]."&c=".urlencode($content);
            $result = $this->curl_get($sendurl);
            if ($result == 0) {
                return dataReturn(0, '发送成功');
            }else{
                 return dataReturn(-1, '发送失败:'.$this->statusStr[$result]);
            }
        catch (\Exception $error) {
            Log::error("短信失败:" . $error->getMessage());
            return dataReturn(-1, '发送失败');
        }
 
        return dataReturn(0, '发送成功');
    }
}

4.接着打开项目\extend\strategy\sms\SmsProvider.php 文件,引入SmsbaoSmsImpl类并在25行左右增加以下代码:

1
2
3
 if ($type == 'smsbao') {
            $this->strategy = new SmsbaoSmsImpl();
        }

好了经过以上的添加,短信宝的短信平台已经替换成功了,可以正常使用了

报备一下短信宝的VIP模板,这样就可以走短信宝的优质通道了,即便遇到敏感文字我们都不会人工审核,短信内容3~5秒就可送达。

另外:我们已经开发好完整的DBShop商城系统短信宝插件,点击此链接 下载及查看安装流程。

开源插件

最新更新

电商类

CMS类

微信类

文章标签