SparkShop(星火商城)是基于thinkphp6 + elementui的開(kāi)源免費(fèi)可商用的高性能商城系統(tǒng);包含小程序商城、H5商城、公眾號(hào)商城、PC商城、App,支持頁(yè)面diy、秒殺、優(yōu)惠券、積分、分銷(xiāo)、會(huì)員等級(jí)。營(yíng)銷(xiāo)功能采用插件化的方式方便擴(kuò)展、二次開(kāi)發(fā)沒(méi)系統(tǒng)大小任意控制。小編帶著大家一起開(kāi)發(fā)SparkShopV1.1.8的短信寶插件接口。我們使用的短信接口是我們短信寶短信群發(fā)平臺(tái)的短信接口,我們短信寶短信群發(fā)平臺(tái)非常穩(wěn)定,發(fā)送速度快,注冊(cè)就送測(cè)試短信,推薦大家使用。
1.首先打開(kāi)項(xiàng)目\app\admin\view\default\system 目錄,替換sms.html代碼:
|
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
|
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>短信配置</title> <link rel="stylesheet" href="{__CSS__}/element_ui.css"/> <link rel="stylesheet" href="{__CSS__}/style.css"/> <script src="{__JS__}/vue2.js"></script> <script src="{__JS__}/element_ui.js"></script> <script src="{__JS__}/axios.min.js"></script> <script src="{__JS__}/request.js"></script></head><body><div id="app"> <div class="app-loading" v-if="pageLoading"> <div class="app-loading__logo"> <img src="{__IMG__}/logo.png"/> </div> <div class="app-loading__loader"></div> <div class="app-loading__title">{$title}</div> </div> <el-card class="box-card" v-else> <div slot="header" class="clearfix"> <span>短信配置</span> </div> <el-tabs v-model="activeName"> <el-tab-pane label="短信配置" name="first"> <el-form ref="form" :model="form" label-width="120px"> <el-form-item label="短信寶賬號(hào)"> <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">* 還沒(méi)注冊(cè) "短信寶"? </el-tab-pane> <el-tab-pane label="模板設(shè)置" 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>示例:您的驗(yàn)證碼為: {code},如非本人操作,請(qǐng)忽略本短信</span> </el-form-item> <el-form-item label="用戶(hù)登錄模板"> <el-input v-model="form.login_sms_code" style="width: 500px"></el-input> </el-form-item> <el-form-item label="用戶(hù)注冊(cè)模板"> <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="手機(jī)號(hào)碼綁定模板"> <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> </el-tabs> </el-card></div><script> new Vue({ el: '#app', data: function () { return { pageLoading: true, form: {}, baseIndex: '/{:config("shop.backend_index")}/', activeName: 'first' } }, mounted() { this.pageLoading = false this.getBaseInfo() }, methods: { async getBaseInfo() { let res = await request.get(this.baseIndex + 'system/sms') this.form = res.data }, async save() { let res = await request.post(this.baseIndex + 'system/sms', this.form) if (res.code == 0) { this.$message.success('保存成功') } else { this.$message.error(res.msg) } } } })</script><style> a {text-decoration:none;}</style></body></html> |
2.接著打開(kāi)項(xiàng)目\sparkshop\extend\utils\SparkTools.php 文件,替換68行代碼:
|
1
|
$smsProvider = new SmsProvider('smsbao'); |
3.接著打開(kāi)項(xiàng)目\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
|
<?phpnamespace strategy\sms\impl;use Darabonba\OpenApi\Models\Config;use strategy\sms\SmsInterface;use think\facade\Log;class SmsbaoSmsImpl implements SmsInterface{ private $statusStr = array( "0" => "短信發(fā)送成功", "-1" => "參數(shù)不全", "-2" => "服務(wù)器空間不支持,請(qǐng)確認(rèn)支持curl或者fsocket,聯(lián)系您的空間商解決或者更換空間!", "30" => "密碼錯(cuò)誤", "40" => "賬號(hào)不存在", "41" => "余額不足", "42" => "帳戶(hù)已過(guò)期", "43" => "IP地址限制", "50" => "內(nèi)容含有敏感詞", "51" => "手機(jī)號(hào)碼不正確" ); 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, '發(fā)送成功'); }else{ return dataReturn(-1, '發(fā)送失敗:'.$this->statusStr[$result]); } } catch (\Exception $error) { Log::error("短信失敗:" . $error->getMessage()); return dataReturn(-1, '發(fā)送失敗'); } return dataReturn(0, '發(fā)送成功'); }} |
4.接著打開(kāi)項(xiàng)目\extend\strategy\sms\SmsProvider.php 文件,引入SmsbaoSmsImpl類(lèi)并在25行左右增加以下代碼:
|
1
2
3
|
if ($type == 'smsbao') { $this->strategy = new SmsbaoSmsImpl(); } |
好了經(jīng)過(guò)以上的添加,短信寶的短信平臺(tái)已經(jīng)替換成功了,可以正常使用了

報(bào)備一下短信寶的VIP模板,這樣就可以走短信寶的優(yōu)質(zhì)通道了,即便遇到敏感文字我們都不會(huì)人工審核,短信內(nèi)容3~5秒就可送達(dá)。
另外:我們已經(jīng)開(kāi)發(fā)好完整的SparkShop商城系統(tǒng)短信寶插件,點(diǎn)擊此鏈接 下載及查看安裝流程。
最新更新
電商類(lèi)
CMS類(lèi)
微信類(lèi)