You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
407 lines
16 KiB
407 lines
16 KiB
<?php
|
|
|
|
/**
|
|
* ECSHOP 短信模块 之 控制器
|
|
* ============================================================================
|
|
* 版权所有 2005-2016 上海商创网络科技有限公司,并保留所有权利。
|
|
* 网站地址: http://www.ecmoban.com;
|
|
* ----------------------------------------------------------------------------
|
|
* 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和
|
|
* 使用;不允许对程序代码以任何形式任何目的的再发布。
|
|
* ============================================================================
|
|
* $Author: yehuaixiao $
|
|
* $Id: sms.php 17155 2010-05-06 06:29:05Z yehuaixiao $
|
|
*/
|
|
|
|
define('IN_ECS', true);
|
|
|
|
require(dirname(__FILE__) . '/includes/init.php');
|
|
require_once(ROOT_PATH . 'includes/cls_sms.php');
|
|
|
|
$action = isset($_REQUEST['act']) ? $_REQUEST['act'] : 'display_my_info';
|
|
$sms = new sms();
|
|
|
|
switch ($action)
|
|
{
|
|
// /* 注册短信服务。*/
|
|
// case 'register' :
|
|
// $email = isset($_POST['email']) ? $_POST['email'] : '';
|
|
// $password = isset($_POST['password']) ? $_POST['password'] : '';
|
|
// $domain = isset($_POST['domain']) ? $_POST['domain'] : '';
|
|
// $phone = isset($_POST['phone']) ? $_POST['phone'] : '';
|
|
//
|
|
// $result = $sms->register($email, $password, $domain, $phone);
|
|
//
|
|
// $link[] = array('text' => $_LANG['back'],
|
|
// 'href' => 'sms.php?act=display_my_info');
|
|
//
|
|
// if ($result === true)//注册成功
|
|
// {
|
|
// sys_msg($_LANG['register_ok'], 0, $link);
|
|
// }
|
|
// else
|
|
// {
|
|
// @$error_detail = $_LANG['server_errors'][$sms->errors['server_errors']['error_no']]
|
|
// . $_LANG['api_errors']['register'][$sms->errors['api_errors']['error_no']];
|
|
// sys_msg($_LANG['register_error'] . $error_detail, 1, $link);
|
|
// }
|
|
//
|
|
// break;
|
|
//
|
|
// /* 启用短信服务。 */
|
|
// case 'enable' :
|
|
// $username = isset($_POST['email']) ? $_POST['email'] : '';
|
|
// //由于md5函数对空串也加密,所以要进行判空操作
|
|
// $password = isset($_POST['password']) && $_POST['password'] !== ''
|
|
// ? md5($_POST['password'])
|
|
// : '';
|
|
//
|
|
// $result = $sms->restore($username, $password);
|
|
//
|
|
// $link[] = array('text' => $_LANG['back'],
|
|
// 'href' => 'sms.php?act=display_my_info');
|
|
//
|
|
// if ($result === true)//启用成功
|
|
// {
|
|
// sys_msg($_LANG['enable_ok'], 0, $link);
|
|
// }
|
|
// else
|
|
// {
|
|
// @$error_detail = $_LANG['server_errors'][$sms->errors['server_errors']['error_no']]
|
|
// . $_LANG['api_errors']['auth'][$sms->errors['api_errors']['error_no']];
|
|
// sys_msg($_LANG['enable_error'] . $error_detail, 1, $link);
|
|
// }
|
|
//
|
|
// break;
|
|
//
|
|
// /* 注销短信特服信息 */
|
|
// case 'disable' :
|
|
// $result = $sms->clear_my_info();
|
|
//
|
|
// $link[] = array('text' => $_LANG['back'],
|
|
// 'href' => 'sms.php?act=display_my_info');
|
|
//
|
|
// if ($result === true)//注销成功
|
|
// {
|
|
// sys_msg($_LANG['disable_ok'], 0, $link);
|
|
// }
|
|
// else
|
|
// {
|
|
// sys_msg($_LANG['disable_error'], 1, $link);
|
|
// }
|
|
//
|
|
// break;
|
|
|
|
/* 显示短信发送界面,如果尚未注册或启用短信服务则显示注册界面。 */
|
|
case 'display_send_ui' :
|
|
/* 检查权限 */
|
|
admin_priv('sms_send');
|
|
|
|
/*if ($sms->has_registered())
|
|
{
|
|
$smarty->assign('ur_here', $_LANG['03_sms_send']);
|
|
$special_ranks = get_rank_list();
|
|
$send_rank['1_0'] = $_LANG['user_list'];
|
|
foreach($special_ranks as $rank_key => $rank_value)
|
|
{
|
|
$send_rank['2_' . $rank_key] = $rank_value;
|
|
}
|
|
assign_query_info();
|
|
$smarty->assign('send_rank', $send_rank);
|
|
$smarty->display('sms_send_ui.htm');
|
|
}
|
|
else
|
|
{
|
|
$smarty->assign('ur_here', $_LANG['register_sms']);
|
|
$smarty->assign('sms_site_info', $sms->get_site_info());
|
|
assign_query_info();
|
|
$smarty->display('sms_register_ui.htm');
|
|
}*/
|
|
|
|
$smarty->display('sms_register_ui.htm');
|
|
|
|
break;
|
|
|
|
/* 发送短信 */
|
|
case 'send_sms' :
|
|
$send_num = isset($_POST['send_num']) ? $_POST['send_num'] : '';
|
|
|
|
if(isset($send_num))
|
|
{
|
|
$phone = $send_num.',';
|
|
}
|
|
|
|
$send_rank = isset($_POST['send_rank']) ? $_POST['send_rank'] : 0;
|
|
|
|
if ($send_rank != 0)
|
|
{
|
|
$rank_array = explode('_', $send_rank);
|
|
|
|
if($rank_array['0'] == 1)
|
|
{
|
|
$sql = 'SELECT mobile_phone FROM ' . $ecs->table('users') . "WHERE mobile_phone <>'' ";
|
|
$row = $db->query($sql);
|
|
while ($rank_rs = $db->fetch_array($row))
|
|
{
|
|
$value[] = $rank_rs['mobile_phone'];
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$rank_sql = "SELECT * FROM " . $ecs->table('user_rank') . " WHERE rank_id = '" . $rank_array['1'] . "'";
|
|
$rank_row = $db->getRow($rank_sql);
|
|
//$sql = 'SELECT mobile_phone FROM ' . $ecs->table('users') . "WHERE mobile_phone <>'' AND rank_points > " .$rank_row['min_points']." AND rank_points < ".$rank_row['max_points']." ";
|
|
|
|
if($rank_row['special_rank']==1)
|
|
{
|
|
$sql = 'SELECT mobile_phone FROM ' . $ecs->table('users') . " WHERE mobile_phone <>'' AND user_rank = '" . $rank_array['1'] . "'";
|
|
}
|
|
else
|
|
{
|
|
$sql = 'SELECT mobile_phone FROM ' . $ecs->table('users') . "WHERE mobile_phone <>'' AND rank_points > " .$rank_row['min_points']." AND rank_points < ".$rank_row['max_points']." ";
|
|
}
|
|
|
|
$row = $db->query($sql);
|
|
|
|
while ($rank_rs = $db->fetch_array($row))
|
|
{
|
|
$value[] = $rank_rs['mobile_phone'];
|
|
}
|
|
}
|
|
if(isset($value))
|
|
{
|
|
$phone .= implode(',',$value);
|
|
}
|
|
}
|
|
|
|
$msg = isset($_POST['msg']) ? $_POST['msg'] : '';
|
|
|
|
|
|
$send_date = isset($_POST['send_date']) ? $_POST['send_date'] : '';
|
|
|
|
$result = $sms->send($phone, $msg, $send_date, $send_num = 13);
|
|
|
|
$link[] = array('text' => $_LANG['back'] . $_LANG['03_sms_send'],
|
|
'href' => 'sms.php?act=display_send_ui');
|
|
|
|
if ($result === true)//发送成功
|
|
{
|
|
sys_msg($_LANG['send_ok'], 0, $link);
|
|
}
|
|
else
|
|
{
|
|
@$error_detail = $_LANG['server_errors'][$sms->errors['server_errors']['error_no']]
|
|
. $_LANG['api_errors']['send'][$sms->errors['api_errors']['error_no']];
|
|
sys_msg($_LANG['send_error'] . $error_detail, 1, $link);
|
|
}
|
|
|
|
break;
|
|
|
|
// /* 显示发送记录的查询界面,如果尚未注册或启用短信服务则显示注册界面。 */
|
|
// case 'display_send_history_ui' :
|
|
// /* 检查权限 */
|
|
// admin_priv('send_history');
|
|
// if ($sms->has_registered())
|
|
// {
|
|
// $smarty->assign('ur_here', $_LANG['05_sms_send_history']);
|
|
// assign_query_info();
|
|
// $smarty->display('sms_send_history_query_ui.htm');
|
|
// }
|
|
// else
|
|
// {
|
|
// $smarty->assign('ur_here', $_LANG['register_sms']);
|
|
// $smarty->assign('sms_site_info', $sms->get_site_info());
|
|
// assign_query_info();
|
|
// $smarty->display('sms_register_ui.htm');
|
|
// }
|
|
//
|
|
// break;
|
|
//
|
|
// /* 获得发送记录,如果客户端支持XSLT,则直接发送XML格式的文本到客户端;
|
|
// 否则在服务器端把XML转换成XHTML后发送到客户端。
|
|
// */
|
|
// case 'get_send_history' :
|
|
// $start_date = isset($_POST['start_date']) ? $_POST['start_date'] : '';
|
|
// $end_date = isset($_POST['end_date']) ? $_POST['end_date'] : '';
|
|
// $page_size = isset($_POST['page_size']) ? $_POST['page_size'] : 20;
|
|
// $page = isset($_POST['page']) ? $_POST['page'] : 1;
|
|
//
|
|
// $is_xslt_supported = isset($_POST['is_xslt_supported']) ? $_POST['is_xslt_supported'] : 'no';
|
|
// if ($is_xslt_supported === 'yes')
|
|
// {
|
|
// $xml = $sms->get_send_history_by_xml($start_date, $end_date, $page_size, $page);
|
|
// header('Content-Type: application/xml; charset=utf-8');
|
|
// //TODO:判断错误信息,链上XSLT
|
|
// echo $xml;
|
|
// }
|
|
// else
|
|
// {
|
|
// $result = $sms->get_send_history($start_date, $end_date, $page_size, $page);
|
|
//
|
|
// if ($result !== false)
|
|
// {
|
|
// $smarty->assign('sms_send_history', $result);
|
|
// $smarty->assign('ur_here', $_LANG['05_sms_send_history']);
|
|
//
|
|
// /* 分页信息 */
|
|
// $turn_page = array( 'total_records' => $result['count'],
|
|
// 'total_pages' => intval(ceil($result['count']/$page_size)),
|
|
// 'page' => $page,
|
|
// 'page_size' => $page_size);
|
|
// $smarty->assign('turn_page', $turn_page);
|
|
// $smarty->assign('start_date', $start_date);
|
|
// $smarty->assign('end_date', $end_date);
|
|
//
|
|
// assign_query_info();
|
|
//
|
|
// $smarty->display('sms_send_history.htm');
|
|
// }
|
|
// else
|
|
// {
|
|
// $link[] = array('text' => $_LANG['back_send_history'],
|
|
// 'href' => 'sms.php?act=display_send_history_ui');
|
|
//
|
|
// @$error_detail = $_LANG['server_errors'][$sms->errors['server_errors']['error_no']]
|
|
// . $_LANG['api_errors']['get_history'][$sms->errors['api_errors']['error_no']];
|
|
//
|
|
// sys_msg($_LANG['history_query_error'] . $error_detail, 1, $link);
|
|
// }
|
|
// }
|
|
//
|
|
// break;
|
|
//
|
|
// /* 显示充值页面 */
|
|
// case 'display_charge_ui' :
|
|
// /* 检查权限 */
|
|
// admin_priv('sms_charge');
|
|
// if ($sms->has_registered())
|
|
// {
|
|
// $smarty->assign('ur_here', $_LANG['04_sms_charge']);
|
|
// assign_query_info();
|
|
// $sms_charge = array();
|
|
// $sms_charge['charge_url'] = $sms->get_url('charge');
|
|
// $sms_charge['login_info'] = $sms->get_login_info();
|
|
// $smarty->assign('sms_charge', $sms_charge);
|
|
// $smarty->display('sms_charge_ui.htm');
|
|
// }
|
|
// else
|
|
// {
|
|
// $smarty->assign('ur_here', $_LANG['register_sms']);
|
|
// $smarty->assign('sms_site_info', $sms->get_site_info());
|
|
// assign_query_info();
|
|
// $smarty->display('sms_register_ui.htm');
|
|
// }
|
|
//
|
|
// break;
|
|
//
|
|
// /* 显示充值记录的查询界面,如果尚未注册或启用短信服务则显示注册界面。 */
|
|
// case 'display_charge_history_ui' :
|
|
// /* 检查权限 */
|
|
// admin_priv('charge_history');
|
|
// if ($sms->has_registered())
|
|
// {
|
|
// $smarty->assign('ur_here', $_LANG['06_sms_charge_history']);
|
|
// assign_query_info();
|
|
// $smarty->display('sms_charge_history_query_ui.htm');
|
|
// }
|
|
// else
|
|
// {
|
|
// $smarty->assign('ur_here', $_LANG['register_sms']);
|
|
// $smarty->assign('sms_site_info', $sms->get_site_info());
|
|
// assign_query_info();
|
|
// $smarty->display('sms_register_ui.htm');
|
|
// }
|
|
//
|
|
// break;
|
|
//
|
|
// /* 获得充值记录,如果客户端支持XSLT,则直接发送XML格式的文本到客户端;
|
|
// 否则在服务器端把XML转换成XHTML后发送到客户端。
|
|
// */
|
|
// case 'get_charge_history' :
|
|
// $start_date = isset($_POST['start_date']) ? $_POST['start_date'] : '';
|
|
// $end_date = isset($_POST['end_date']) ? $_POST['end_date'] : '';
|
|
// $page_size = isset($_POST['page_size']) ? $_POST['page_size'] : 20;
|
|
// $page = isset($_POST['page']) ? $_POST['page'] : 1;
|
|
//
|
|
// $is_xslt_supported = isset($_POST['is_xslt_supported']) ? $_POST['is_xslt_supported'] : 'no';
|
|
// if ($is_xslt_supported === 'yes')
|
|
// {
|
|
// $xml = $sms->get_charge_history_by_xml($start_date, $end_date, $page_size, $page);
|
|
// header('Content-Type: application/xml; charset=utf-8');
|
|
// //TODO:判断错误信息,链上XSLT
|
|
// echo $xml;
|
|
// }
|
|
// else
|
|
// {
|
|
// $result = $sms->get_charge_history($start_date, $end_date, $page_size, $page);
|
|
// if ($result !== false)
|
|
// {
|
|
// $smarty->assign('sms_charge_history', $result);
|
|
//
|
|
// /* 分页信息 */
|
|
// $turn_page = array( 'total_records' => $result['count'],
|
|
// 'total_pages' => intval(ceil($result['count']/$page_size)),
|
|
// 'page' => $page,
|
|
// 'page_size' => $page_size);
|
|
// $smarty->assign('turn_page', $turn_page);
|
|
// $smarty->assign('start_date', $start_date);
|
|
// $smarty->assign('end_date', $end_date);
|
|
//
|
|
// assign_query_info();
|
|
//
|
|
// $smarty->display('sms_charge_history.htm');
|
|
// }
|
|
// else
|
|
// {
|
|
// $link[] = array('text' => $_LANG['back_charge_history'],
|
|
// 'href' => 'sms.php?act=display_charge_history_ui');
|
|
//
|
|
// @$error_detail = $_LANG['server_errors'][$sms->errors['server_errors']['error_no']]
|
|
// . $_LANG['api_errors']['get_history'][$sms->errors['api_errors']['error_no']];
|
|
//
|
|
// sys_msg($_LANG['history_query_error'] . $error_detail, 1, $link);
|
|
// }
|
|
// }
|
|
//
|
|
// break;
|
|
//
|
|
// /* 显示我的短信服务个人信息 */
|
|
// default :
|
|
// /* 检查权限 */
|
|
// admin_priv('my_info');
|
|
// $sms_my_info = $sms->get_my_info();
|
|
// if (!$sms_my_info)
|
|
// {
|
|
// $link[] = array('text' => $_LANG['back'], 'href' => './');
|
|
// sys_msg($_LANG['empty_info'], 1, $link);
|
|
// }
|
|
//
|
|
// if (!$sms_my_info['sms_user_name'])//此处不用$sms->has_registered()能够减少一次数据库查询
|
|
// {
|
|
// $smarty->assign('ur_here', $_LANG['register_sms']);
|
|
// $smarty->assign('sms_site_info', $sms->get_site_info());
|
|
// assign_query_info();
|
|
// $smarty->display('sms_register_ui.htm');
|
|
// }
|
|
// else
|
|
// {
|
|
// /* 立即更新短信特服信息 */
|
|
// $sms->restore($sms_my_info['sms_user_name'], $sms_my_info['sms_password']);
|
|
//
|
|
// /* 再次获取个人数据,保证显示的数据是最新的 */
|
|
// $sms_my_info = $sms->get_my_info();//这里不再进行判空处理,主要是因为如果前个式子不出错,这里一般不会出错
|
|
//
|
|
// /* 格式化时间输出 */
|
|
// $sms_last_request = $sms_my_info['sms_last_request']
|
|
// ? $sms_my_info['sms_last_request']
|
|
// : 0;//赋0防出错
|
|
// $sms_my_info['sms_last_request'] = local_date('Y-m-d H:i:s O', $sms_my_info['sms_last_request']);
|
|
//
|
|
// $smarty->assign('sms_my_info', $sms_my_info);
|
|
// $smarty->assign('ur_here', $_LANG['02_sms_my_info']);
|
|
// assign_query_info();
|
|
// $smarty->display('sms_my_info.htm');
|
|
// }
|
|
}
|
|
|
|
?>
|