From a4b758d33b51ad771a11237fb72bc856dd9059b2 Mon Sep 17 00:00:00 2001 From: chengkun <chengkun@ishangstudy.com> Date: Thu, 29 May 2025 18:22:55 +0800 Subject: [PATCH] 短信开发 --- app/include/public.function.php | 10 app/template/admin/admin_settpl.htm | 6 app/model/notice.model.php | 185 +++++++++-------- admin/model/msgconfig.class.php | 311 +++++++++++++++--------------- app/template/admin/admin_msg_config.htm | 64 +++--- 5 files changed, 297 insertions(+), 279 deletions(-) diff --git a/admin/model/msgconfig.class.php b/admin/model/msgconfig.class.php index beeb277..e4ee5ef 100644 --- a/admin/model/msgconfig.class.php +++ b/admin/model/msgconfig.class.php @@ -1,172 +1,173 @@ <?php -class msgconfig_controller extends adminCommon{ - function index_action(){ - $cacheM = $this->MODEL('cache'); - $options = array('city'); - - $cache = $cacheM -> GetCache($options); - - - $this -> yunset($cache); - - $this->yuntpl(array('admin/admin_msg_config')); - - } - - //保存 - function save_action(){ - - $configM = $this->MODEL('config'); - if($_POST['config']){ - - unset($_POST['config']); - $configM->setConfig($_POST); - - $this->web_config(); - - $this->ACT_layer_msg( "短信配置设置成功!",9,1,2,1); - - } - } - - //短信模板列表 - function tpl_action(){ - - $this->yuntpl(array('admin/admin_msg_tpl')); - - } - - //短信模板设置 - function settpl_action(){ - - include(CONFIG_PATH."db.tpl.php"); - - $this->yunset("arr_tpl",$arr_tpl); - - $templatesM = $this->MODEL("templates"); - - if($_POST['config']){ - - $configNum = $templatesM->getNum(array('name'=>trim($_POST['name']))); - - $content = str_replace("amp;nbsp;","nbsp;",$_POST['content']); - - if($configNum>0){ - - $templatesM->upInfo(array('name'=>trim($_POST['name'])),array('content'=>$content,'title'=>trim($_POST['title']))); - - }else{ - - $templatesM->addInfo(array('name'=>trim($_POST['name']),'content'=>$content,'title'=>trim($_POST['title']))); - - } - - $this->ACT_layer_msg( "短信模版配置设置成功!",9,$_SERVER['HTTP_REFERER'],2,1); - - } - - $row = $templatesM->getInfo(array('name'=>$_GET['name'])); - - $this->yunset("row",$row); - - $this->yuntpl(array('admin/admin_settpl')); - - } - - function get_restnum_action(){ - - - $returnArr['msgnum'] = $returnArr['businessnum'] = 0; - //短信检测 - - $url = 'https://u.phpyun.com/feature'; - $url .= '?appKey='.$this->config['sy_msg_appkey'].'&appSecret='.$this->config['sy_msg_appsecret']; - - if (extension_loaded('curl')){ - - $return = CurlGet($url); - - }else if(function_exists('file_get_contents')){ - - $return = file_get_contents($url); - - } - - if($return){ - $msgInfo = json_decode($return,true); - if($msgInfo['code'] == '200'){ - $returnArr['msgnum'] = $msgInfo['num']; - } - unset($return); - } - //空号检测 - $url = 'https://u.phpyun.com/feature'; - $url .= '?appKey='.$this->config['sy_kh_appkey'].'&appSecret='.$this->config['sy_kh_appsecret']; - - if (extension_loaded('curl')){ - - $return = CurlGet($url); - - }else if(function_exists('file_get_contents')){ - - $return = file_get_contents($url); - - } - - if($return){ - $msgInfo = json_decode($return,true); - if($msgInfo['code'] == '200'){ - $returnArr['khnum'] = $msgInfo['num']; - } - unset($return); - } - //天眼查检测 - $url = 'https://u.phpyun.com/feature'; - $url .= '?appKey='.$this->config['sy_tyc_appkey'].'&appSecret='.$this->config['sy_tyc_appsecret']; - - if (extension_loaded('curl')){ - - $return = CurlGet($url); - - }else if(function_exists('file_get_contents')){ - - $return = file_get_contents($url); - - } - if($return){ - $msgInfo = json_decode($return,true); - if($msgInfo['code'] == '200'){ - $returnArr['businessnum'] = $msgInfo['num']; - } - } - - - echo json_encode($returnArr);die; - } - - - function get_restnums_action(){ +class msgconfig_controller extends adminCommon { + function index_action() { + $cacheM = $this->MODEL('cache'); + $options = array('city'); + + $cache = $cacheM->GetCache($options); + + + $this->yunset($cache); + + $this->yuntpl(array('admin/admin_msg_config')); + + } + + //保存 + function save_action() { + + $configM = $this->MODEL('config'); + if ($_POST['config']) { + + unset($_POST['config']); + $configM->setConfig($_POST); + + $this->web_config(); + + $this->ACT_layer_msg("短信配置设置成功!", 9, 1, 2, 1); + + } + } + + //短信模板列表 + function tpl_action() { + + $this->yuntpl(array('admin/admin_msg_tpl')); + + } + + //短信模板设置 + function settpl_action() { + + include(CONFIG_PATH . "db.tpl.php"); + + $this->yunset("arr_tpl", $arr_tpl); + + $templatesM = $this->MODEL("templates"); + + if ($_POST['config']) { + + $configNum = $templatesM->getNum(array('name' => trim($_POST['name']))); + + $content = str_replace("amp;nbsp;", "nbsp;", $_POST['content']); + + if ($configNum > 0) { + + $templatesM->upInfo(array('name' => trim($_POST['name'])), array('content' => $content, 'template_id' => $_POST['template_id'], 'title' => trim($_POST['title']))); + + } else { + + $templatesM->addInfo(array('name' => trim($_POST['name']), 'content' => $content, 'template_id' => $_POST['template_id'], 'title' => trim($_POST['title']))); + + } + + $this->ACT_layer_msg("短信模版配置设置成功!", 9, $_SERVER['HTTP_REFERER'], 2, 1); + + } + + $row = $templatesM->getInfo(array('name' => $_GET['name'])); + + $this->yunset("row", $row); + + $this->yuntpl(array('admin/admin_settpl')); + + } + + function get_restnum_action() { + + + $returnArr['msgnum'] = $returnArr['businessnum'] = 0; + //短信检测 + + $url = 'https://u.phpyun.com/feature'; + $url .= '?appKey=' . $this->config['sy_msg_appkey'] . '&appSecret=' . $this->config['sy_msg_appsecret']; + + if (extension_loaded('curl')) { + + $return = CurlGet($url); + + } else if (function_exists('file_get_contents')) { + + $return = file_get_contents($url); + + } + + if ($return) { + $msgInfo = json_decode($return, true); + if ($msgInfo['code'] == '200') { + $returnArr['msgnum'] = $msgInfo['num']; + } + unset($return); + } + //空号检测 + $url = 'https://u.phpyun.com/feature'; + $url .= '?appKey=' . $this->config['sy_kh_appkey'] . '&appSecret=' . $this->config['sy_kh_appsecret']; + + if (extension_loaded('curl')) { + + $return = CurlGet($url); + + } else if (function_exists('file_get_contents')) { + + $return = file_get_contents($url); + + } + + if ($return) { + $msgInfo = json_decode($return, true); + if ($msgInfo['code'] == '200') { + $returnArr['khnum'] = $msgInfo['num']; + } + unset($return); + } + //天眼查检测 + $url = 'https://u.phpyun.com/feature'; + $url .= '?appKey=' . $this->config['sy_tyc_appkey'] . '&appSecret=' . $this->config['sy_tyc_appsecret']; + + if (extension_loaded('curl')) { + + $return = CurlGet($url); + + } else if (function_exists('file_get_contents')) { + + $return = file_get_contents($url); + + } + if ($return) { + $msgInfo = json_decode($return, true); + if ($msgInfo['code'] == '200') { + $returnArr['businessnum'] = $msgInfo['num']; + } + } + + + echo json_encode($returnArr); + die; + } + + + function get_restnums_action() { $user = trim($this->config['sy_msg_appkey']); $pass = trim($this->config['sy_msg_appsecret']); $url = 'http://api.smsbao.com/query'; - $url.= '?u='.$user.'&p='.md5($pass); - if(function_exists('file_get_contents')){ + $url .= '?u=' . $user . '&p=' . md5($pass); + if (function_exists('file_get_contents')) { $file_contents = file_get_contents($url); - }else{ + } else { $ch = curl_init(); $timeout = 5; - curl_setopt ($ch, CURLOPT_URL, $url); - curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); - curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $file_contents = curl_exec($ch); curl_close($ch); } $result = explode(",", $file_contents); echo $result['1']; - + } - + } ?> \ No newline at end of file diff --git a/app/include/public.function.php b/app/include/public.function.php index 4c22719..1a3f722 100644 --- a/app/include/public.function.php +++ b/app/include/public.function.php @@ -1518,13 +1518,15 @@ return $str; } +/** + * @desc 判断短信功能是否开启 + * @param $config + * @return bool + */ function checkMsgOpen($config) { - - if ($config["sy_msg_appkey"] == "" || $config["sy_msg_appsecret"] == "" || $config['sy_msg_isopen'] != '1') { - + if ($config["sy_sms_secret_id"] == "" || $config["sy_sms_secret_key"] == "" || $config['sy_sms_sdk_app_id'] == '') { return FALSE; } else { - return TRUE; } } diff --git a/app/model/notice.model.php b/app/model/notice.model.php index 23122e5..d9a1015 100644 --- a/app/model/notice.model.php +++ b/app/model/notice.model.php @@ -68,18 +68,17 @@ * 获取邮件、短信模板 * @param array $data 传入参数 * @param string $type 模板类型:email邮箱; msg短信 - * @return mixed + * @return array */ public function getTpl($data, $type) { $name = $type . $data['type']; - $row = $this->select_once('templates', array('name' => $name)); if ($row) { $tpl['title'] = $this->_tpl($row['title'], $data); $tpl['content'] = $this->_tpl($row['content'], $data); - + $tpl['template_id'] = $row['template_id']; return $tpl; } else { return array('status' => -1, 'msg' => '信息模板有误,请联系管理员'); @@ -235,12 +234,12 @@ } /** - * @desc 发送短信 + * @desc 发送短信接口 * @param $type * @param $data - * @return bool|string + * @return array */ - private function postSMS($type = "msgsend", $data = '') { + private function postSMS($type = "msgsend", $data = []) { $sing = $this->config['sy_msg_appsing']; $data['content'] = str_replace(array(" ", " ", "\t", "\n", "\r"), array("", "", "", "", ""), $data['content']); $url = 'http://api.smsbao.com/sms'; @@ -285,6 +284,7 @@ } /** + * @desc 发送短信 * $data['moblie'] / $data['mobile'] 手机号(必填) * $data['content'] 短信内容(必填) * @@ -297,30 +297,29 @@ return array('status' => -1, 'msg' => '还没有配置短信,请联系管理员!'); } - $data['mobile'] = $data['moblie'] ? $data['moblie'] : $data['mobile']; if (!$this->_isKey('mobile', $data) || !CheckMobile($data['mobile'])) { return array('status' => -1, 'msg' => '手机号错误'); } + if ($this->config['sy_web_mobile'] != '') { $regnamer = @explode(';', $this->config['sy_web_mobile']); if (in_array($data['mobile'], $regnamer)) { return array('status' => -1, 'msg' => '该手机号已被禁止使用'); } } - if (!$this->_isKey('content', $data) || $data['content'] == '') { return array('status' => -1, 'msg' => '短信内容为空'); } //发送短信 $row = array( - - 'appsecret' => $this->config['sy_msg_appsecret'], - 'appkey' => $this->config['sy_msg_appkey'], - 'appsing' => $this->config['sy_msg_appsing'], - 'phone' => $data['mobile'], - 'content' => $data['content'], - 'mid' => isset($data['mid']) ? $data['mid'] : '' + 'sy_sms_secret_id' => $this->config['sy_sms_secret_id'], + 'sy_sms_secret_key' => $this->config['sy_sms_secret_key'], + 'sy_sms_sdk_app_id' => $this->config['sy_sms_sdk_app_id'], + 'sy_sms_sign_name' => $this->config['sy_sms_sign_name'], + 'template_id' => $data['template_id'], + 'phone' => $data['mobile'], + 'code' => $data['code'], ); $location = ''; @@ -363,7 +362,9 @@ } } if (!isset($re['code'])) { - $re = $this->postSMS('msgsend', $row); + ///// 发送短信 ///// +// $re = $this->postSMS('msgsend', $row); + $re = $this->sendSmsHttpRequest($row); } //短信记录保存数据库 $sql_data = array( @@ -376,7 +377,7 @@ 'location' => $location ); - if (trim($re) == '0') { + if ($re['code'] == 1) { //检查是否需要发送系统预警 include_once('warning.model.php'); @@ -425,10 +426,11 @@ return $tpl; } $content = $tpl['content']; + $template_id = $tpl['template_id']; } $data['content'] = $content; - + $data['template_id'] = $template_id; return $this->sendSMS($data); } @@ -535,6 +537,7 @@ $today = strtotime('today'); $code = gt_Generate_code($length); //验证码 $lastSend = []; + $result = []; if ($kind == 'msg') { ///// 短信 ///// if (!checkMsgOpen($this->config)) { @@ -574,6 +577,7 @@ ///// 获取企业认证信息 ///// $lastSend = $this->select_once('company_cert', array('check' => $sended, 'type' => 7, 'orderby' => 'id,desc'), '`ctime`,`type`'); } else { + ///// 获取企业认证信息 ///// $lastSend = $this->select_once('company_cert', array('check' => $sended, 'type' => 2, 'orderby' => 'id,desc'), '`ctime`,`type`'); } if ($lastSend['ctime'] > $overtime) { @@ -685,13 +689,13 @@ /** * 按类别发送验证码 - * @param $sended // 发送对象 + * @param $sended // 发送对象-手机号 * @param $type // 验证码类别 * @param $code // 验证码 * @param $kind // 发送类别 * @param $user // 用户信息 * @param $port // 端口 - * @return array|mixed|number[]|string[] + * @return array|number[]|string[] */ private function sendType($sended, $type, $code, $kind = 'msg', $user = array(), $port = null) { $finfo = $this->forsend($user); //用户信息 @@ -705,7 +709,7 @@ ); $result = []; if ($kind == 'msg') { - $data['moblie'] = $sended; + $data['mobile'] = $sended; $data['port'] = $port; $result = $this->sendSMSType($data); } elseif ($kind == 'email') { @@ -798,96 +802,103 @@ * @param $msg * @return string */ - function sign($key, $msg) { + protected function sign($key, $msg) { return hash_hmac("sha256", $msg, $key, true); } /** * 发送短信接口-腾讯云 - * @param $params + * @param $data * @return array */ - public function sendSmsHttpRequest($params = []) { + public function sendSmsHttpRequest($data = []) { // 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密 // 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305 // 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取 + $secret_id = $data['sy_sms_secret_id']; + $secret_key = $data['sy_sms_secret_key']; + $token = ""; + + $service = "sms"; + $host = "sms.tencentcloudapi.com"; + $req_region = "ap-guangzhou"; + $version = "2021-01-11"; + $action = "SendSms"; + + //////数字转字符串 ////// + $params = [ + 'PhoneNumberSet' => ['+86' . $data['phone']], + 'SmsSdkAppId' => $data['sy_sms_sdk_app_id'], + 'TemplateId' => $data['template_id'], + 'SignName' => $data['sy_sms_sign_name'], + 'TemplateParamSet' => [strval($data['code'])] + ]; + $payload = json_encode($params, JSON_UNESCAPED_UNICODE); + var_dump($payload); + $endpoint = "https://sms.tencentcloudapi.com"; + $algorithm = "TC3-HMAC-SHA256"; + $timestamp = time(); + $date = gmdate("Y-m-d", $timestamp); + + // ************* 步骤 1:拼接规范请求串 ************* + $http_request_method = "POST"; + $canonical_uri = "/"; + $canonical_querystring = ""; + $ct = "application/json; charset=utf-8"; + $canonical_headers = "content-type:" . $ct . "\nhost:" . $host . "\nx-tc-action:" . strtolower($action) . "\n"; + $signed_headers = "content-type;host;x-tc-action"; + $hashed_request_payload = hash("sha256", $payload); + $canonical_request = "$http_request_method\n$canonical_uri\n$canonical_querystring\n$canonical_headers\n$signed_headers\n$hashed_request_payload"; + + // ************* 步骤 2:拼接待签名字符串 ************* + $credential_scope = "$date/$service/tc3_request"; + $hashed_canonical_request = hash("sha256", $canonical_request); + $string_to_sign = "$algorithm\n$timestamp\n$credential_scope\n$hashed_canonical_request"; + + // ************* 步骤 3:计算签名 ************* + $secret_date = $this->sign("TC3" . $secret_key, $date); + $secret_service = $this->sign($secret_date, $service); + $secret_signing = $this->sign($secret_service, "tc3_request"); + $signature = hash_hmac("sha256", $string_to_sign, $secret_signing); + + // ************* 步骤 4:拼接 Authorization ************* + $authorization = "$algorithm Credential=$secret_id/$credential_scope, SignedHeaders=$signed_headers, Signature=$signature"; + + // ************* 步骤 5:构造并发起请求 ************* + $headers = [ + "Authorization" => $authorization, + "Content-Type" => "application/json; charset=utf-8", + "Host" => $host, + "X-TC-Action" => $action, + "X-TC-Timestamp" => $timestamp, + "X-TC-Version" => $version + ]; + if ($req_region) { + $headers["X-TC-Region"] = $req_region; + } + if ($token) { + $headers["X-TC-Token"] = $token; + } try { - $secret_id = "SecretId"; - $secret_key = "SecretKey"; - $token = ""; - - $service = "sms"; - $host = "sms.tencentcloudapi.com"; - $req_region = "ap-guangzhou"; - $version = "2021-01-11"; - $action = "SendSms"; -// $params = [ -// 'PhoneNumberSet' => '18019261992', -// 'SmsSdkAppId' => '2343224242', -// 'TemplateId' => '54645454' -// ]; - $payload = json_encode($params); - $endpoint = "https://sms.tencentcloudapi.com"; - $algorithm = "TC3-HMAC-SHA256"; - $timestamp = time(); - $date = gmdate("Y-m-d", $timestamp); - - // ************* 步骤 1:拼接规范请求串 ************* - $http_request_method = "POST"; - $canonical_uri = "/"; - $canonical_querystring = ""; - $ct = "application/json; charset=utf-8"; - $canonical_headers = "content-type:" . $ct . "\nhost:" . $host . "\nx-tc-action:" . strtolower($action) . "\n"; - $signed_headers = "content-type;host;x-tc-action"; - $hashed_request_payload = hash("sha256", $payload); - $canonical_request = "$http_request_method\n$canonical_uri\n$canonical_querystring\n$canonical_headers\n$signed_headers\n$hashed_request_payload"; - - // ************* 步骤 2:拼接待签名字符串 ************* - $credential_scope = "$date/$service/tc3_request"; - $hashed_canonical_request = hash("sha256", $canonical_request); - $string_to_sign = "$algorithm\n$timestamp\n$credential_scope\n$hashed_canonical_request"; - - // ************* 步骤 3:计算签名 ************* - $secret_date = sign("TC3" . $secret_key, $date); - $secret_service = sign($secret_date, $service); - $secret_signing = sign($secret_service, "tc3_request"); - $signature = hash_hmac("sha256", $string_to_sign, $secret_signing); - - // ************* 步骤 4:拼接 Authorization ************* - $authorization = "$algorithm Credential=$secret_id/$credential_scope, SignedHeaders=$signed_headers, Signature=$signature"; - - // ************* 步骤 5:构造并发起请求 ************* - $headers = [ - "Authorization" => $authorization, - "Content-Type" => "application/json; charset=utf-8", - "Host" => $host, - "X-TC-Action" => $action, - "X-TC-Timestamp" => $timestamp, - "X-TC-Version" => $version - ]; - if ($req_region) { - $headers["X-TC-Region"] = $req_region; - } - if ($token) { - $headers["X-TC-Token"] = $token; - } - $ch = curl_init(); + curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); + curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_URL, $endpoint); - curl_setopt($ch, CURLOPT_POST, true); + curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $payload); curl_setopt($ch, CURLOPT_HTTPHEADER, array_map(function ($k, $v) { return "$k: $v"; }, array_keys($headers), $headers)); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); $response = curl_exec($ch); curl_close($ch); - $result = json_decode($response, TRUE); + if (!$result['Response']['RequestId']) { throw new Exception("请求失败", 10000); } + $result_result = [ 'code' => 1, 'msg' => 'ok', diff --git a/app/template/admin/admin_msg_config.htm b/app/template/admin/admin_msg_config.htm index 98a06e5..fadb355 100644 --- a/app/template/admin/admin_msg_config.htm +++ b/app/template/admin/admin_msg_config.htm @@ -15,11 +15,6 @@ <script src="{yun:}$config.sy_weburl{/yun}/js/layui/layui.js?v={yun:}$config.cachecode{/yun}" language="javascript"></script> <script src="{yun:}$config.sy_weburl{/yun}/js/layui/custom_layer.js?v={yun:}$config.cachecode{/yun}"></script> <title>后台管理</title> - <style> - .table_form .layui-input-block{ - margin-left: 0; - } - </style> </head> <body class="body_ifm"> @@ -50,18 +45,33 @@ </div> </td> </tr> - <tr> - <th width="220">短信宝账号:</th> - <td><input class="tty_input t_w250" type="text" name="sy_msg_appkey" id="sy_msg_appkey" value="{yun:}$config.sy_msg_appkey{/yun}" size="30" /> + <th width="220">SecretId:</th> + <td> + <input class="tty_input t_w250" type="text" name="sy_sms_secret_id" id="sy_sms_secret_id" value="{yun:}$config.sy_sms_secret_id{/yun}" size="30" /> + <span class="admin_web_tip">腾讯云SecretId</span> + </td> </tr> <tr class="admin_table_trbg"> - <th width="220">短信宝密码:</th> - <td><input class="tty_input t_w250" type="password" name="sy_msg_appsecret" id="sy_msg_appsecret" value="{yun:}$config.sy_msg_appsecret{/yun}" size="50" /> + <th width="220">SecretKey:</th> + <td> + <input class="tty_input t_w250" type="password" name="sy_sms_secret_key" id="sy_sms_secret_key" value="{yun:}$config.sy_sms_secret_key{/yun}" size="50" /> + <span class="admin_web_tip">腾讯云SecretKey</span> + </td> </tr> <tr> - <th width="220">短信宝签名:</th> - <td><input class="tty_input t_w250" type="text" name="sy_msg_appsing" id="sy_msg_appsing" value="{yun:}$config.sy_msg_appsing{/yun}" size="50" /> + <th width="220">SmsSdkAppId:</th> + <td> + <input class="tty_input t_w250" type="text" name="sy_sms_sdk_app_id" id="sy_sms_sdk_app_id" value="{yun:}$config.sy_sms_sdk_app_id{/yun}" size="50" /> + <span class="admin_web_tip">腾讯云短信SmsSdkAppId</span> + </td> + </tr> + <tr> + <th width="220">短信签名:</th> + <td> + <input class="tty_input t_w250" type="text" name="sy_sms_sign_name" id="sy_sms_sign_name" value="{yun:}$config.sy_sms_sign_name{/yun}" size="50" /> + <span class="admin_web_tip">腾讯云短信签名</span> + </td> </tr> <tr class="admin_table_trbg"> <th width="220">单IP每日最大发信:</th> @@ -76,6 +86,7 @@ <th width="220">单手机号认证类短信发送频率:</th> <td><input class="tty_input t_w250" type="text" name="cert_msgtime" id="cert_msgtime" value="{yun:}$config.cert_msgtime{/yun}" size="30" />分钟</td> </tr> + <tr class="admin_table_trbg"> <th width="220" class="t_fr">短信验证码时效:</th> <td> @@ -84,17 +95,17 @@ </div> </td> </tr> - <tr> + <!-- <tr> <th width="220">剩余短信数量:</th> <td><input class="tty_input t_w250" type="text" name="rest_msgnum" id="rest_msgnum" value="0" disabled="disabled" />条</td> - </tr> + </tr> --> - <tr class="admin_table_trbg"> + <!-- <tr class="admin_table_trbg"> <th width="220">购买短信:</th> <td> <div class="yun_admin_divh"><a href="http://www.smsbao.com/reg?r=11641" target="_blank" style=" color:#CC3300; text-decoration:underline; "> 短信购买地址</a></div> </td> - </tr> + </tr> --> <!-- <tr> <th colspan="2" class="admin_bold_box"> @@ -161,14 +172,10 @@ <input class="layui-btn tty_cz" type="reset" value="重置" /> </td> </tr> - - </table> <input type="hidden" id="pytoken" name="pytoken" value="{yun:}$pytoken{/yun}"> </form> - </div> - </div> </div> <script> @@ -180,24 +187,18 @@ $(function () { $("#config").click(function () { - var msgtime = $("#moblie_codetime").val(); - if (parseInt(msgtime) < 2) { - parent.layer.msg('短信验证时效因大于两分钟!', 2, 8); return false; - } else { - loadlayer(); - $.post("index.php?m=msgconfig&c=save", { config: $("#config").val(), sy_msg_isopen: $("input[name=sy_msg_isopen]:checked").val(), - sy_msg_appkey: $("#sy_msg_appkey").val(), - sy_msg_appsecret: $("#sy_msg_appsecret").val(), - sy_msg_appsing: $("#sy_msg_appsing").val(), - + sy_sms_secret_id: $("#sy_sms_secret_id").val(), + sy_sms_secret_key: $("#sy_sms_secret_key").val(), + sy_sms_sdk_app_id: $("#sy_sms_sdk_app_id").val(), + sy_sms_sign_name: $("#sy_sms_sign_name").val(), sy_kh_isopen: $("input[name=sy_kh_isopen]:checked").val(), sy_kh_appkey: $("#sy_kh_appkey").val(), @@ -219,7 +220,6 @@ parent.layer.closeAll('loading'); config_msg(data); }); - } }); @@ -235,8 +235,6 @@ $("#rest_businessnum").val(data.businessnum); } }); - - }) </script> </div> diff --git a/app/template/admin/admin_settpl.htm b/app/template/admin/admin_settpl.htm index be38468..aad0117 100644 --- a/app/template/admin/admin_settpl.htm +++ b/app/template/admin/admin_settpl.htm @@ -68,6 +68,12 @@ </td> </tr> {yun:}else{/yun} + <tr> + <th width="150">短信模板ID:</th> + <td> + <input class="input-text" type="text" name="template_id" id="template_id" value="{yun:}$row.template_id{/yun}" size="60" /> + </td> + </tr> <tr class="email"> <th width="150" class="t_fr">内容:</th> <td> -- Gitblit v1.9.0