linwu 2 éve
szülő
commit
51d4894d28

+ 9 - 15
app/admin/controller/Alisms.php

@@ -2,14 +2,14 @@
 namespace app\admin\controller;
 
 use app\admin\BaseController;
-use app\common\model\Alisms as AlismsModel;
+use app\common\model\Config as ConfigModel;
 
 class Alisms extends BaseController
 {
 	
 	public function index()
 	{
-		$alisms = AlismsModel::where(1)->find();
+		$alisms = ConfigModel::getConfigValue(['sms_ali_accesskeyid','sms_ali_accesskeysecret','sms_ali_signname','sms_ali_register','sms_ali_getpassword','sms_ali_mobilelogin']);
 		return view('set/alisms',[
 			'alisms' => $alisms 
 		]);
@@ -17,21 +17,15 @@ class Alisms extends BaseController
 	
 	public function editAlisms()
 	{
-		$alisms = AlismsModel::where(1)->find();
 		$data = array(
-			'accesskeyid'		=> input('accesskeyid/s'),
-			'accesskeysecret'	=> input('accesskeysecret/s'),
-			'signname'			=> input('signname/s'),
-			'register'			=> input('register/s'),
-			'getpassword'		=> input('getpassword/s'),
-			'mobilelogin'		=> input('mobilelogin/s')
+			'sms_ali_accesskeyid'		=> input('sms_ali_accesskeyid/s'),
+			'sms_ali_accesskeysecret'	=> input('sms_ali_accesskeysecret/s'),
+			'sms_ali_signname'			=> input('sms_ali_signname/s'),
+			'sms_ali_register'			=> input('sms_ali_register/s'),
+			'sms_ali_getpassword'		=> input('sms_ali_getpassword/s'),
+			'sms_ali_mobilelogin'		=> input('sms_ali_mobilelogin/s')
 		);
-		if ($alisms==null){
-			AlismsModel::create($data);
-		}else{
-			$data['id'] = $alisms->id;
-			AlismsModel::update($data);
-		}
+        ConfigModel::setConfigValue($data);
 		exit(json_encode(array(
 			'code' 	=> 0,
 			'msg'   => ""

+ 32 - 0
app/admin/controller/Chuanglansms.php

@@ -0,0 +1,32 @@
+<?php
+namespace app\admin\controller;
+
+use app\admin\BaseController;
+use app\common\model\Config as ConfigModel;
+
+class Chuanglansms extends BaseController
+{
+	
+	public function index()
+	{
+		$sms = ConfigModel::getConfigValue(['sms_chuanglan_appkey','sms_chuanglan_secret']);
+		return view('set/chuanglansms',[
+			'sms' => $sms
+		]);
+	}
+	
+	public function editSms()
+	{
+		$data = array(
+			'sms_chuanglan_appkey'		=> input('sms_chuanglan_appkey/s'),
+			'sms_chuanglan_secret'	=> input('sms_chuanglan_secret/s'),
+		);
+        ConfigModel::setConfigValue($data);
+		exit(json_encode(array(
+			'code' 	=> 0,
+			'msg'   => ""
+		)));
+	}
+	
+}
+	

+ 11 - 0
app/admin/controller/Index.php

@@ -2,6 +2,7 @@
 
 namespace app\admin\controller;
 
+use chuanglan\Chuanglan;
 use payment\wechat\WechatTransfers;
 
 class Index
@@ -24,4 +25,14 @@ class Index
         $res = $transfers->transfers($batch_name,$detail);
         halt($res);
     }
+
+    public function t2()
+    {
+        halt(22);
+        $msg = '福利商城有订单已超过24小时未发货,订单号:请及时发货';
+        $mobile = '13313826760';
+        $sms = new Chuanglan();
+        $res = $sms->send($mobile,['message'=>$msg]);
+        halt($res);
+    }
 }

+ 6 - 6
app/admin/view/set/alisms.html

@@ -9,14 +9,14 @@
 						<div class="layui-form-item">
 							<label class="layui-form-label">密钥 ID</label>
 							<div class="layui-input-block">
-								<input type="text" placeholder="请输入 AccessKey ID" name="accesskeyid" value="{$alisms['accesskeyid']}" class="layui-input">
+								<input type="text" placeholder="请输入 AccessKey ID" name="sms_ali_accesskeyid" value="{$alisms['sms_ali_accesskeyid']}" class="layui-input">
 								<div class="layui-form-mid layui-word-aux">访问阿里云API的密钥:AccessKey ID</div>
 							</div>
 						</div>
 						<div class="layui-form-item">
 							<label class="layui-form-label">密钥 Secret</label>
 							<div class="layui-input-block">
-								<input type="text" placeholder="请输入 AccessKey Secret" name="accesskeysecret" value="{$alisms['accesskeysecret']}"
+								<input type="text" placeholder="请输入 AccessKey Secret" name="sms_ali_accesskeysecret" value="{$alisms['sms_ali_accesskeysecret']}"
 								 class="layui-input">
 								<div class="layui-form-mid layui-word-aux">访问阿里云API的密钥:AccessKey Secret</div>
 							</div>
@@ -24,28 +24,28 @@
 						<div class="layui-form-item">
 							<label class="layui-form-label">签名名称</label>
 							<div class="layui-input-block">
-								<input type="text" name="signname" value="{$alisms['signname']}" class="layui-input">
+								<input type="text" name="sms_ali_signname" value="{$alisms['sms_ali_signname']}" class="layui-input">
 								<div class="layui-form-mid layui-word-aux"></div>
 							</div>
 						</div>
 						<div class="layui-form-item">
 							<label class="layui-form-label">注册验证</label>
 							<div class="layui-input-block">
-								<input type="text" name="register" value="{$alisms['register']}" class="layui-input">
+								<input type="text" name="sms_ali_register" value="{$alisms['sms_ali_register']}" class="layui-input">
 								<div class="layui-form-mid layui-word-aux">注册验证模版CODE,验证码变量名称:code</div>
 							</div>
 						</div>
 						<div class="layui-form-item">
 							<label class="layui-form-label">密码重置</label>
 							<div class="layui-input-block">
-								<input type="text" name="getpassword" value="{$alisms['getpassword']}" class="layui-input">
+								<input type="text" name="sms_ali_getpassword" value="{$alisms['sms_ali_getpassword']}" class="layui-input">
 								<div class="layui-form-mid layui-word-aux">密码重置模版CODE,验证码变量名称:code</div>
 							</div>
 						</div>
 						<div class="layui-form-item">
 							<label class="layui-form-label">登录验证</label>
 							<div class="layui-input-block">
-								<input type="text" name="mobilelogin" value="{$alisms['mobilelogin']}" class="layui-input">
+								<input type="text" name="sms_ali_mobilelogin" value="{$alisms['sms_ali_mobilelogin']}" class="layui-input">
 								<div class="layui-form-mid layui-word-aux">登录验证模版CODE,验证码变量名称:code</div>
 							</div>
 						</div>

+ 60 - 0
app/admin/view/set/chuanglansms.html

@@ -0,0 +1,60 @@
+<div class="layui-fluid">
+	<div class="layui-row layui-col-space15">
+		<div class="layui-col-md12">
+			<div class="layui-card">
+				<div class="layui-card-header">创蓝短信接口参数</div>
+				<div class="layui-card-body" pad15>
+
+					<div class="layui-form layui-form-pane" lay-filter="LAY-set-sms-form">
+						<div class="layui-form-item">
+							<label class="layui-form-label">密钥 ID</label>
+							<div class="layui-input-block">
+								<input type="text" placeholder="请输入 AccessKey ID" name="sms_chuanglan_appkey" value="{$sms['sms_chuanglan_appkey']}" class="layui-input">
+								<div class="layui-form-mid layui-word-aux">访问创蓝API的密钥:app key</div>
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<label class="layui-form-label">密钥 Secret</label>
+							<div class="layui-input-block">
+								<input type="text" placeholder="请输入 AccessKey Secret" name="sms_chuanglan_secret" value="{$sms['sms_chuanglan_secret']}"
+								 class="layui-input">
+								<div class="layui-form-mid layui-word-aux">访问创蓝API的密钥:secret key</div>
+							</div>
+						</div>
+						<div class="layui-form-item">
+							<div class="layui-input-block">
+								<button class="layui-btn" lay-submit lay-filter="LAY-set-sms-form-submit">确认修改</button>
+							</div>
+						</div>
+					</div>
+
+				</div>
+			</div>
+		</div>
+	</div>
+</div>
+
+<script>
+	layui.config({
+		base: '/static/echoui/' //静态资源所在路径
+	}).extend({
+		index: 'lib/index' //主入口模块
+	}).use(['index', 'set'], function() {
+		var $ = layui.$,
+			setter = layui.setter,
+			admin = layui.admin,
+			form = layui.form
+		form.render();
+
+		form.on('submit(LAY-set-sms-form-submit)', function(obj) {
+			admin.req({
+				url: setter.baseAdminUrl + 'chuanglansms/editsms',
+				data: obj.field,
+				done: function(res) {
+					layer.msg("提交成功", { icon: 1 });
+				}
+			});
+
+		});
+	});
+</script>

+ 54 - 0
app/common/model/Config.php

@@ -0,0 +1,54 @@
+<?php
+
+namespace app\common\model;
+
+use think\Model;
+
+class Config extends Model
+{
+    // 设置字段信息
+    protected $schema = [
+        'id'     => 'int',
+        'code'   => 'string',
+        'value'  => 'string',
+        'remark' => 'string',
+    ];
+
+    public static function getConfigValue($code)
+    {
+        $res = [];
+        if (is_array($code)) {
+            $list = self::where('code', 'in', $code)->select();
+            foreach ($list as $v) {
+                $res[$v['code']] = $v['value'];
+            }
+        } elseif (is_string($code)) {
+            $info = self::where('code', $code)->find();
+            $res  = $info['value'];
+        }
+
+        return $res;
+    }
+
+    public static function setConfigValue($code, $value = '')
+    {
+        if (is_array($code)) {
+            foreach ($code as $k => $v) {
+                self::setConfigValueSingle($k, $v);
+            }
+        } elseif (is_string($code)) {
+            self::setConfigValueSingle($code, $value);
+        }
+    }
+
+    public static function setConfigValueSingle($code, $value = '')
+    {
+        $info = self::where('code', $code)->find();
+        if (empty($info)) {
+            self::create(['code' => $code, 'value' => $value]);
+        } else {
+            $info->value = $value;
+            $info->save();
+        }
+    }
+}

+ 10 - 13
app/mainapp/controller/Login.php

@@ -2,18 +2,15 @@
 
 namespace app\mainapp\controller;
 
-use think\facade\Session;
-use app\common\model\Alisms as AlismsModel;
 use app\common\model\User as UserModel;
 use app\common\model\UserIntegral as UserIntegralModel;
 use app\common\model\UserAuths as UserAuthsModel;
 use app\common\model\UserGroups as UserGroupsModel;
 use app\common\model\UserParam as UserParamModel;
 use app\common\model\UserPart as UserPartModel;
-use app\common\model\Agent as AgentModel;
-use app\common\model\Broker as BrokerModel;
 
 use alisms\SignatureHelper;
+use chuanglan\Chuanglan;
 use echowx\WxProgram;
 
 use app\common\validate\User as UserValidate;
@@ -316,7 +313,7 @@ class Login
         $params                  = [];
         $security                = false;
         $params["PhoneNumbers"]  = $mobile;
-        $params["SignName"]      = $alisms['signname'];
+        $params["SignName"]      = $alisms['sms_ali_signname'];
         $params["TemplateCode"]  = $temp;
         $params['TemplateParam'] = $dataarr;
         if (!empty($params["TemplateParam"]) && is_array($params["TemplateParam"])) {
@@ -324,8 +321,8 @@ class Login
         }
         $helper  = new SignatureHelper();
         $content = $helper->request(
-            $alisms['accesskeyid'],
-            $alisms['accesskeysecret'],
+            $alisms['sms_ali_accesskeyid'],
+            $alisms['sms_ali_accesskeysecret'],
             "dysmsapi.aliyuncs.com",
             array_merge($params, [
                 "RegionId" => "cn-hangzhou",
@@ -351,8 +348,8 @@ class Login
             page_result(1, "该手机号已注册");
         }
         $smscode = mt_rand(100000, 999999);
-        $alisms  = AlismsModel::where(1)->find();
-        $this->aliSendSms($identifier, $alisms['register'], ['code' => $smscode], $alisms);
+        $sms = new Chuanglan();
+        $sms->send($identifier,['message'=>"尊敬的用户,您的短信验证码为{$smscode},5分钟内有效。若非本人操作请忽略。"]);
         page_result(0, "", ['smscodepass' => md5($identifier . $smscode)]);
     }
 
@@ -369,8 +366,8 @@ class Login
             page_result(1, "用户记录不存在");
         }
         $smscode = mt_rand(100000, 999999);
-        $alisms  = AlismsModel::where(1)->find();
-        $this->aliSendSms($identifier, $alisms['getpassword'], ['code' => $smscode], $alisms);
+        $sms = new Chuanglan();
+        $sms->send($identifier,['message'=>"尊敬的用户,您的短信验证码为{$smscode},5分钟内有效。若非本人操作请忽略。"]);
         page_result(0, "", ['smscodepass' => md5($identifier . $smscode)]);
     }
 
@@ -387,8 +384,8 @@ class Login
         // 	page_result(1, "用户记录不存在");
         // }
         $smscode = mt_rand(100000, 999999);
-        $alisms  = AlismsModel::where(1)->find();
-        $this->aliSendSms($identifier, $alisms['mobilelogin'], ['code' => $smscode], $alisms);
+        $sms = new Chuanglan();
+        $sms->send($identifier,['message'=>"尊敬的用户,您的短信验证码为{$smscode},5分钟内有效。若非本人操作请忽略。"]);
         page_result(0, "", ['smscodepass' => md5($identifier . $smscode)]);
     }
 

+ 74 - 0
extend/chuanglan/Chuanglan.php

@@ -0,0 +1,74 @@
+<?php
+/**
+ * 手机短信类
+ */
+
+namespace chuanglan;
+
+use think\facade\Log;
+use app\common\model\Config as ConfigModel;
+
+class Chuanglan
+{
+
+    /**
+     * 创蓝短信
+     * @param $mobile
+     * @param $smslog_param
+     * @return array
+     */
+    public function send($mobile, $smslog_param)
+    {
+        $sms = ConfigModel::getConfigValue(['sms_chuanglan_appkey','sms_chuanglan_secret']);
+        if (empty($sms['sms_chuanglan_appkey']) || empty($sms['sms_chuanglan_secret'])) {
+            return ['code' => false, 'msg' => '请绑定模板参数'];
+        }
+
+        if (empty($smslog_param['params'])) {
+            $url = 'http://smssh1.253.com/msg/send/json';
+            //创蓝接口参数
+            $postArr = [
+                'account'  => $sms['sms_chuanglan_appkey'],
+                'password' => $sms['sms_chuanglan_secret'],
+                'msg'      => $smslog_param['message'],
+                'phone'    => $mobile,
+                'report'   => 'true',
+            ];
+        } else {
+            $params_str = $mobile . ',' . implode(',', $smslog_param['params']);
+            $url        = 'http://smssh1.253.com/msg/variable/json';
+            //创蓝接口参数
+            $postArr = [
+                'account'  => config('ds_config.smscf_chaunglan_appkey'),
+                'password' => config('ds_config.smscf_chaunglan_secret'),
+                'msg'      => $smslog_param['message'],
+                'params'   => $params_str,
+                'report'   => 'true',
+            ];
+        }
+        $postFields = json_encode($postArr);
+        $ch         = curl_init();
+        curl_setopt($ch, CURLOPT_URL, $url);
+        curl_setopt($ch, CURLOPT_HTTPHEADER, [
+                'Content-Type: application/json; charset=utf-8'   //json版本需要填写  Content-Type: application/json;
+            ]
+        );
+        curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); //若果报错 name lookup timed out 报错时添加这一行代码
+        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+        curl_setopt($ch, CURLOPT_POST, 1);
+        curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
+        curl_setopt($ch, CURLOPT_TIMEOUT, 60);
+        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
+        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
+        $ret = curl_exec($ch);
+        curl_close($ch);
+        $rsp = json_decode($ret, true);
+
+        if ($rsp['code'] != 0) {
+            Log::record('短信发送失败:' . json_encode($rsp) . "。原始参数:" . json_encode($postArr));
+            return ['code' => false, 'msg' => $rsp['errorMsg']];
+        } else {
+            return ['code' => true];
+        }
+    }
+}