NIUSHOPV5 采用 ThinkPHP6.0 + MySQL 開發(fā)語言框架采用 Thinkphp6 + Uni-app 設(shè)計開發(fā),代碼全新升級;支持實物商品、虛擬商品、電子卡密、服務(wù)項目及卡項套餐五大商品類型;支持拼團、砍價、秒殺、超級會員卡、禮品卡、分銷、直播等多種會員營銷方案。完全開源,二次開發(fā)非常方便,小編對他還是比較了解的,今天小編為大家講解 V5 版本的短信接口替換,使用的接口是我們短信寶群發(fā)平臺的短信接口,我們短信寶群發(fā)短信平臺非常穩(wěn)定,發(fā)送速度快,注冊還送測試短信,推薦大家使用。
├─smsbao插件目錄
│ ├─config 配置目錄
│ │ ├─diy_view.php 頁面DIY相關(guān)配置
│ │ ├─event.php 事件相關(guān)配置
│ │ ├─info.php 插件信息配置
│ │ ├─menu_shop.php 菜單欄配置
│ ├─event 事件目錄
│ │ ├─ DoEditSmsMessage.php 短信模板事件
│ │ ├─EnableCallBack.php 短信開關(guān)事件
│ │ ├─EnableSms.php 查詢啟用的短信插件
│ │ ├─Install.php 應(yīng)用安裝
│ │ ├─SendSms.php 短信發(fā)送
│ │ ├─SmsType.php 短信方式
│ │ ├─UnInstall.php 應(yīng)用卸載
│ └─model
│ │ ├─Config.php 短信核心配置
│ │ ├─Sms.php 核心發(fā)送類
│ └─shop
│ │ ├─controller 控制器
│ │ │ ├─Message.php 模板編輯類
│ │ │ ├─ Sms.php 核心發(fā)送類
│ │ ├─view 視圖
│ │ │ ├─message 模板編輯類
│ │ │ │ ├─edit.html 模板視圖
│ │ │ ├─ sms 核心發(fā)送類
│ │ │ │ ├─config.html 短信視圖
下面具體給大家說一下重要文件的作用及代碼
1:打開項目:addon\smsbao\config\info.php 填寫當前插件的基本信息
|
1
2
3
4
5
6
7
8
9
10
11
12
|
<?phpreturn [ 'name' => 'smsbao', 'title' => '短信寶短信', 'description' => '短信寶短信功能', 'type' => 'system', //插件類型 system :系統(tǒng)插件(自動安裝), business:業(yè)務(wù)插件 promotion:營銷插件 tool:工具插件 'status' => 1, 'author' => '', 'version' => '5.0.3', 'version_no' => '520220907001', 'content' => '',]; |
2:打開項目:addon\smsbao\config\event.php增加短信寶相關(guān)事件
|
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
|
<?php// 事件定義文件return [ 'bind' => [ ], 'listen' => [ //短信方式 'SmsType' => [ 'addon\smsbao\event\SmsType' ], 'DoEditSmsMessage' => [ 'addon\smsbao\event\DoEditSmsMessage' ], 'SendSms' => [ 'addon\smsbao\event\SendSms' ], //啟用回調(diào),使用這個短信,就要關(guān)閉其他短信插件 'EnableCallBack' => [ 'addon\smsbao\event\EnableCallBack' ], //查詢啟用的短信插件 'EnableSms' => [ 'addon\smsbao\event\EnableSms' ], 'SmsTemplateInfo' => [ 'addon\smsbao\event\SmsTemplateInfo' ] ], 'subscribe' => [ ],]; |
3:打開項目:\addon\smsbao\model\Sms.php 增加短信寶發(fā)送函數(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
|
class Sms extends BaseModel{ /** * 短信發(fā)送 * @param array $param * @return array|mixed * @throws InvalidArgumentException */ public function send($param = []) { $config_model = new Config(); $config_result = $config_model->getSmsConfig(); if ($config_result[ "data" ][ "is_use" ]) { $config = $config_result[ "data" ][ "value" ]; $sms_info = $param[ "message_info" ][ "sms_json_array" ];//消息類型模板 短信模板信息 if (empty($sms_info[ "smsbao" ])) return $this->error([], "消息模板尚未配置"); $sms_info = $sms_info[ "smsbao" ]; $var_parse = $param[ "var_parse" ];//變量解析 $smscontent = $sms_info['content']; foreach ($var_parse as $k=>$v){ $smscontent=str_replace('{'.$k.'}',$v,$smscontent); } $account = $param[ "sms_account" ];//發(fā)送手機號 $sms_config = [ // HTTP 請求的超時時間(秒) 'timeout' => 5.0, // 默認發(fā)送配置 'default' => [ // 網(wǎng)關(guān)調(diào)用策略,默認:順序調(diào)用 'strategy' => OrderStrategy::class, // 默認可用的發(fā)送網(wǎng)關(guān) 'gateways' => [ 'smsbao' ], ], // 可用的網(wǎng)關(guān)配置 'gateways' => [ "smsbao" => [ 'user' => $config[ "smsbao_key_id" ], 'password' => $config[ "smsbao_key_secret" ], ] ], ]; try { $easySms = new EasySms($sms_config); $easySms->send($account, [ 'content' => '【'.$config[ "smsbaosign" ].'】'.$smscontent,// 'template' => $sms_info[ "template_id" ], 'data' => $var_parse, ]); return $this->success([ "addon" => "smsbao", "addon_name" => "短信寶短信", "content" => $sms_info[ "content" ] ]); } catch (NoGatewayAvailableException $exception) { $message = $exception->getException('smsbao')->getMessage(); return $this->error([ "content" => $sms_info[ "content" ] ], $message ? : '短信發(fā)送異常'); } } }} |
4:打開項目:addon\smsbao\shop\view\message\edit.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
|
<div class="layui-form form-wrap"> <div class="layui-form-item"> <label class="layui-form-label">是否開啟:</label> <div class="layui-input-block"> <input type="checkbox" name="sms_is_open" value="1" {if $sms_is_open == 1}checked{/if} lay-skin="switch"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">數(shù)據(jù)值:</label> <div class="layui-input-block"> {foreach $message_variable_list as $message_variable_k => $message_variable_v} <button class="layui-btn layui-btn-primary number-con" onclick="clickBtn('{$message_variable_k}')">{$message_variable_v}</button> {/foreach} </div> </div> <div class="layui-form-item"> <label class="layui-form-label">短信內(nèi)容:</label> <div class="layui-input-block"> <textarea id="text_area" name="content" class="layui-textarea len-long">{if !empty($info)}{$info.content}{/if}</textarea> </div> <div class="word-aux">變量只能使用上方數(shù)據(jù)值中的變量,否則不會被解析</div> </div> <div class="form-row"> <button class="layui-btn" lay-submit lay-filter="save">保存</button> <button class="layui-btn layui-btn-primary" onclick="back()">返回</button> </div> <input type="hidden" name="keywords" value="{$keywords}"></div><script> layui.use('form', function() { var form = layui.form; var repeat_flag = false; //防重復標識 form.render(); /** * 監(jiān)聽提交 */ form.on('submit(save)', function(data) { if (repeat_flag) return; repeat_flag = true; $.ajax({ dataType: 'JSON', type: 'POST', data: data.field, success: function(res){ repeat_flag = false; if (res.code == 0) { layer.confirm('編輯成功', { title:'操作提示', btn: ['返回列表', '繼續(xù)操作'], yes: function(){ location.href = ns.url("shop/message/lists") }, btn2: function() { location.reload(); } }); }else{ layer.msg(res.message); } } }); }); }); function back(){ location.href = ns.url("shop/message/lists"); } function clickBtn(con) { var txtArea = $("#text_area")[0]; var content = txtArea.value;//文本域內(nèi)容 var start = txtArea.selectionStart; //光標的初始位置,selectionStart:選區(qū)開始位置;selectionEnd:選區(qū)結(jié)束位置。 txtArea.value = content.substring(0, txtArea.selectionStart) + '{' + con + '}' + content.substring(txtArea.selectionEnd, content.length); var position = start + con.length; $("#text_area").focus(); txtArea.setSelectionRange(position+1, position+1); //setSelectionRange()方法用來設(shè)置<input>元素當前選中的文本的開始和結(jié)束位置 }</script> |
5:打開項目:addon\smsbao\shop\view\sms\config.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
|
<div class="layui-form form-wrap"> <div class="layui-form-item"> <label class="layui-form-label">是否開啟:</label> <div class="layui-input-block" id="isOpen"> <input type="checkbox" name="status" lay-filter="isOpen" value="1" lay-skin="switch" {if condition="$info.is_use == 1"} checked {/if} /> </div> <div class="word-aux">當前使用短信寶配置</div> </div> <div class="layui-form-item"> <label class="layui-form-label">短信寶賬號:</label> <div class="layui-input-block"> <input type="text" name="smsbao_key_id" placeholder="請輸入短信寶賬號" {if $info.value } value="{$info.value.smsbao_key_id}" {/if} autocomplete="off" class="layui-input len-long"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">短信寶密碼:</label> <div class="layui-input-block"> <input type="text" name="smsbao_key_secret" placeholder="請輸入短信寶密碼" {if $info.value } value="{$info.value.smsbao_key_secret}" {/if} autocomplete="off" class="layui-input len-long"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">短信內(nèi)容簽名:</label> <div class="layui-input-block"> <input type="text" name="smsbaosign" placeholder="請輸入短信內(nèi)容簽名" {if $info.value } value="{$info.value.smsbaosign}" {/if} autocomplete="off" class="layui-input len-long"> </div> </div> <!-- 表單操作 --> <div class="form-row"> <button class="layui-btn" lay-submit lay-filter="save">保存</button> <button class="layui-btn layui-btn-primary" onclick="back()">返回</button> </div></div><script> layui.use('form', function() { var form = layui.form, repeat_flag = false; //防重復標識 form.render(); form.on('submit(save)', function(data) { if (repeat_flag) return; repeat_flag = true; $.ajax({ data: data.field, dataType: 'JSON', type: 'POST', success: function(res) { repeat_flag = false; if (res.code == 0) { layer.confirm('編輯成功', { title:'操作提示', btn: ['返回列表', '繼續(xù)操作'], yes: function(){ location.href = ns.url("shop/message/sms") }, btn2: function() { location.reload(); } }); }else{ layer.msg(res.message); } } }); }); }); function back() { location.href = ns.url("shop/message/sms"); }</script> |
經(jīng)過上面的替換,短信寶的短信平臺已經(jīng)替換成功了,可以正常使用了。進行測試發(fā)送:
報備一下短信寶的VIP模板,這樣就可以走短信寶的優(yōu)質(zhì)通道了,即便遇到敏感文字我們都不會人工審核,短信內(nèi)容3~5秒就可送達。
另外:我們已經(jīng)開發(fā)好完整的NIUSHOPV5單商戶多門店短信寶插件,點擊此鏈接?下載及查看安裝流
最新更新
電商類
CMS類
微信類