// +---------------------------------------------------------------------- declare (strict_types = 1); namespace app\mainapp; use think\App; use think\exception\ValidateException; use think\Validate; // use Firebase\JWT\JWT; // define('ACCESS_TOKEN_KEY', '1gHuiop975cdashyex9Ud23ldsvm2Xq'); //密钥 // // define('WECHATPAY_APPID', 'wxeac94e69d4e4da41'); define('NOTIFY_WECHAT_URL', 'https://zp.vlinke.com/index.php/mainapp/notify/orderwechat'); /** * 控制器基础类 */ abstract class BaseController { protected $wechatConfig = array( 'appid' => 'wxb97c1a98dd6f52c9', 'mch_id' => '1552581081', 'key' => 'xianchangaixiechunbingbrandy5211', 'sslcert_path' => '', 'sslkey_path' => '' ); protected $provincelist = array( ['value'=>"", 'title'=>"全部"], ['value'=>"北京市", 'title'=>"北京市"], ['value'=>"天津市", 'title'=>"天津市"], ['value'=>"河北省", 'title'=>"河北省"], ['value'=>"山西省", 'title'=>"山西省"], ['value'=>"内蒙古自治区", 'title'=>"内蒙古自治区"], ['value'=>"辽宁省", 'title'=>"辽宁省"], ['value'=>"吉林省", 'title'=>"吉林省"], ['value'=>"黑龙江省", 'title'=>"黑龙江省"], ['value'=>"上海市", 'title'=>"上海市"], ['value'=>"江苏省", 'title'=>"江苏省"], ['value'=>"浙江省", 'title'=>"浙江省"], ['value'=>"安徽省", 'title'=>"安徽省"], ['value'=>"福建省", 'title'=>"福建省"], ['value'=>"江西省", 'title'=>"江西省"], ['value'=>"山东省", 'title'=>"山东省"], ['value'=>"河南省", 'title'=>"河南省"], ['value'=>"湖北省", 'title'=>"湖北省"], ['value'=>"湖南省", 'title'=>"湖南省"], ['value'=>"广东省", 'title'=>"广东省"], ['value'=>"广西壮族自治区", 'title'=>"广西壮族自治区"], ['value'=>"海南省", 'title'=>"海南省"], ['value'=>"重庆市", 'title'=>"重庆市"], ['value'=>"四川省", 'title'=>"四川省"], ['value'=>"贵州省", 'title'=>"贵州省"], ['value'=>"云南省", 'title'=>"云南省"], ['value'=>"西藏自治区", 'title'=>"西藏自治区"], ['value'=>"陕西省", 'title'=>"陕西省"], ['value'=>"甘肃省", 'title'=>"甘肃省"], ['value'=>"青海省", 'title'=>"青海省"], ['value'=>"宁夏回族自治区", 'title'=>"宁夏回族自治区"], ['value'=>"新疆维吾尔自治区", 'title'=>"新疆维吾尔自治区"], ['value'=>"台湾省", 'title'=>"台湾省"], ['value'=>"香港特别行政区", 'title'=>"香港特别行政区"], ['value'=>"澳门特别行政区", 'title'=>"澳门特别行政区"] ); /** * Request实例 * @var \think\Request */ protected $request; /** * 应用实例 * @var \think\App */ protected $app; /** * 是否批量验证 * @var bool */ protected $batchValidate = false; /** * 控制器中间件 * @var array */ protected $middleware = []; /** * 控制器中间件 * @var array */ protected $access_administer = []; /** * 构造方法 * @access public * @param App $app 应用对象 */ public function __construct(App $app) { $this->app = $app; $this->request = $this->app->request; // 控制器初始化 // $this->initialize(); } // 初始化 protected function initialize() { // 验证登陆信息 $access_token = input('access_token'); if (empty($access_token)) { page_result(1001, "You do not have permission to access."); }else{ try { JWT::$leeway = 60; $decoded = JWT::decode($access_token, ACCESS_TOKEN_KEY, ['HS256']); $arr = (array)$decoded; if ($arr['exp'] < time()) { page_result(1001, "请重新登录。"); } else { $this->access_administer = $arr['data']; } } catch(\Exception $e) { page_result(1001, "Token验证失败,请重新登录。"); } } } /** * 验证数据 * @access protected * @param array $data 数据 * @param string|array $validate 验证器名或者验证规则数组 * @param array $message 提示信息 * @param bool $batch 是否批量验证 * @return array|string|true * @throws ValidateException */ protected function validate(array $data, $validate, array $message = [], bool $batch = false) { if (is_array($validate)) { $v = new Validate(); $v->rule($validate); } else { if (strpos($validate, '.')) { // 支持场景 list($validate, $scene) = explode('.', $validate); } $class = false !== strpos($validate, '\\') ? $validate : $this->app->parseClass('validate', $validate); $v = new $class(); if (!empty($scene)) { $v->scene($scene); } } $v->message($message); // 是否批量验证 if ($batch || $this->batchValidate) { $v->batch(true); } return $v->failException(true)->check($data); } }