TPshop是用thinkphp開發的一款免費開源網店系統,二次開發非常方便,代碼清晰簡潔,通俗易懂,豐富的插件和多套模板支持,易擴展,是目前國內首家最為完善的開源商城系統。系統支持多語言版本,操作簡單,安全穩定,是廣大用戶二次開發的最佳選擇,我以替換短信接口為例,一步一步的手把手教大家開發過程,我們短信寶短信平臺非常穩定,而且快速,注冊還送免費測試短信,大家可以在我們短信寶平臺注冊一個賬號,進行測試。
首先我們要更換后臺的顯示界面文件。打開模版文件,替換一下模版文件。打開項目/application/admin/view2/system/sms.html文件,修改代碼26~56行,代碼如下圖所示:
|
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
|
<div class="explanation" id="explanation"> <div class="title" id="checkZoom"><i class="fa fa-lightbulb-o"></i> <h4 title="提示相關設置操作時應注意的要點">操作提示</h4> <span id="explanationZoom" title="收起提示"></span></div> <ul> <li>系統平臺全局設置,包括基礎設置、購物、短信、郵件、水印和分銷等相關模塊。</li> <li>有任何疑問,請咨詢短信寶客服</li> </ul></div><form method="post" enctype="multipart/form-data" name="form1" action="{:U('System/handle')}"> <input type="hidden" name="inc_type" value="{$inc_type}"> <div class="ncap-form-default"> <dl class="row"> <dt class="tit"> <label for="sms_appkey">短信寶賬號</label> </dt> <dd class="opt"> <input id="sms_appkey" name="sms_appkey" value="{$config.sms_appkey}" class="input-txt" type="text"/> <p class="notic">短信寶的用戶名,還未注冊短信寶的用戶請點擊<a href="http://www.gjrencai.com/reg" target="_blank">免費注冊</a></p> </dd> </dl> <dl class="row"> <dt class="tit"> <label for="sms_secretKey">短信寶密碼</label> </dt> <dd class="opt"> <input id="sms_secretKey" name="sms_secretKey" value="{$config.sms_secretKey}" class="input-txt" type="password"/> <p class="notic">短信寶賬號密碼</p> </dd> </dl> </div></form> |
項目/application/admin/view2/sms_template/sms_template_list.html文件,修改代碼6~13行,代碼如下圖所示:
|
1
2
3
4
5
6
7
8
|
<div class="fixed-bar"> <div class="item-title"> <div class="subject"> <h3>短信配置模板</h3> </div> </div></div> |
項目/application/admin/view2/sms_template/_sms_template.html文件,修改代碼15~61行,代碼如下圖所示:
|
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
|
<form class="form-horizontal" id="addEditSmsTemplate" method="post"> <div class="ncap-form-default"> <dl class="row"> <dt class="tit"> <label for="sms_sign"><em>*</em>短信簽名</label> </dt> <dd class="opt"> <input type="text" value="{$smsTpl.sms_sign}" name="sms_sign" id="sms_sign" class="input-txt"> <span class="err" id="err_sms_sign" style="display:none;">短信簽名不能為空 </span> <p class="notic">短信的簽名,如smsbao,簽名不能包含特殊字符,長度3-8個字符。</p> </dd> </dl> <dl class="row"> <dt class="tit"> <label for="send_scene"><em>*</em>發送場景</label> </dt> <dd class="opt"> <if condition="$send_scene_id gt 0 "> {$send_name} <input type="hidden" value="{$send_scene_id}" name="send_scene" id="send_scene" class="form-control" style="width:250px;"/> <else /> <select class="small form-control" name="send_scene" id="send_scene" onchange="changeContent(this.value);"> <option value="-1">請選擇使用場景</option> <foreach name="send_scene" item="v" key="k"> <option value="{$k}" <if condition=" $k eq $smsTpl.send_scene ">selected="selected"</if>>{$v[0]}</option> </foreach> </select> <span class="err" id="err_send_scene" style="display:none;">請選擇使用場景</span> </if> <span class="err"></span> <p class="notic">使用場景</p> </dd> </dl> <dl class="row"> <dt class="tit"> <label for="tpl_content"><em>*</em>短信模板內容</label> </dt> <dd class="opt"> <textarea id="tpl_content" name="tpl_content" class="tarea" rows="6" readonly="readonly">{$smsTpl.tpl_content}</textarea> <span class="err" id="err_tpl_content" style="display:none;">短信模板內容不能為空</span> <p class="notic">短信的模板內容</p> </dd> </dl> <div class="bot"><a href="JavaScript:void(0);" onclick="checkForm();" class="ncap-btn-big ncap-btn-green" id="submitBtn">確認提交</a></div></div><input type="hidden" name="tpl_id" value="{$smsTpl.tpl_id}"></label></form> |
經過替換之后,所有的顯示都變成短信寶短信平臺的了,第一步完成。接下來替換發送短信的接口文件,項目/application/home/controller/Api.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
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
/** * 前端發送短信方法: APP/WAP/PC 共用發送方法 */public function send_validate_code(){ $this->send_scene = C('SEND_SCENE'); $type = I('type'); $scene = I('scene'); //發送短信驗證碼使用場景 $mobile = I('mobile'); $sender = I('send'); $verify_code = I('verify_code'); $mobile = !empty($mobile) ? $mobile : $sender ; $session_id = I('unique_id' , session_id()); session("scene" , $scene); //注冊 if($scene == 1 && !empty($verify_code)){ $verify = new Verify(); if (!$verify->check($verify_code, 'user_reg')) { ajaxReturn(array('status'=>-1,'msg'=>'圖像驗證碼錯誤')); } } if($type == 'email'){ //發送郵件驗證碼 $logic = new UsersLogic(); $res = $logic->send_email_code($sender); ajaxReturn($res); }else{ //發送短信驗證碼 $res = checkEnableSendSms($scene); if($res['status'] != 1){ ajaxReturn($res); } //判斷是否存在驗證碼 $data = M('sms_log')->where(array('mobile'=>$mobile,'session_id'=>$session_id, 'status'=>1))->order('id DESC')->find(); //獲取時間配置 $sms_time_out = tpCache('sms.sms_time_out'); $sms_time_out = $sms_time_out ? $sms_time_out : 120; //120秒以內不可重復發送 if($data && (time() - $data['add_time']) < $sms_time_out){ $return_arr = array('status'=>-1,'msg'=>$sms_time_out.'秒內不允許重復發送'); ajaxReturn($return_arr); } //隨機一個驗證碼 $code = rand(1000, 9999); $user = session('user'); if ($scene == 6){ if(!$user['user_id']){ //登錄超時 ajaxReturn(array('status'=>-1,'msg'=>'登錄超時')); } $params = array('code'=>$code); if($user['nickname']){ $params['user_name'] = $user['nickname']; } } $params['code'] =$code; //發送短信 $resp = $this->sendsms_smsbao($scene , $mobile , $params, $session_id); if($resp == '0'){ //發送成功, 修改發送狀態位成功 M('sms_log')->where(array('mobile'=>$mobile,'code'=>$code,'session_id'=>$session_id , 'status' => 0))->save(array('status' => 1)); $return_arr = array('status'=>1,'msg'=>'發送成功,請注意查收'); }else{ $return_arr = array('status'=>-1,'msg'=>'發送失敗'.$resp); } ajaxReturn($return_arr); }}/** * 短信寶發送方法 */ private function sendsms_smsbao($scene,$sender , $params, $session_id){ $product = $config['sms_product']; $code = !empty($params['code']) ? $params['code'] : false; $consignee = !empty($params['consignee']) ? $params['consignee'] : false; $user_name = !empty($params['user_name']) ? $params['user_name'] : false; $order_sn = $params['order_sn']; $mobile = !empty($params['mobile']) ? $params['mobile'] : false; if(empty($unique_id)){ $session_id = session_id(); }else{ $session_id = $unique_id; } $smsParams = array( 1 => "{\"code\":\"$code\",\"product\":\"$product\"}", //1. 用戶注冊 2 => "{\"code\":\"$code\"}", //2. 用戶找回密碼 3 => "{\"consignee\":\"$consignee\",\"phone\":\"$mobile\"}",//3. 客戶下單 4 => "{\"order_sn\":\"$order_sn\"}",//4. 客戶支付 5 => "{\"user_name\":\"$user_name\",\"order_sn\":\"$order_sn\",\"consignee\":\"$consignee\"}", //5.商家發貨 6 => "{\"user_name\":\"$user_name\",\"code\":\"$code\"}"//6. 修改手機號碼 ); $smsParam = $smsParams[$scene]; //提取發送短信內容 $scenes = C('SEND_SCENE'); $msg = $scenes[$scene][1]; $params_arr = json_decode($smsParam); foreach ($params_arr as $k => $v) { $msg = str_replace('${' . $k . '}', $v, $msg); } //發送記錄存儲數據庫 $log_id = M('sms_log')->insertGetId(array('mobile' => $sender, 'code' => $code, 'add_time' => time(), 'session_id' => $session_id, 'status' => 0, 'scene' => $scene, 'msg' => $msg)); $config = tpCache('sms'); $sms_get_param['u']=$config['sms_appkey']; $sms_get_param['p']=md5($config['sms_secretKey']); $sms_get_param['m']=$sender; $sms_get_param['c']="【".$config['sms_product']."】".$msg; if ($resp == '0') { M('sms_log')->where(array('id' => $log_id))->save(array('status' => 1)); //修改發送狀態為成功 }else{ M('sms_log')->where(array('id' => $log_id))->update(array('error_msg'=>$resp)); //發送失敗, 將發送失敗信息保存數據庫 } return $resp; } |
經過上面的替換,短信寶的短信平臺已經替換成功了,可以正常使用了。
報備一下短信寶的VIP模版,這樣就可以走短信寶的優質通道,并且免審核了,短信內容3~5秒就可送達。
最新更新
電商類
CMS類
微信類