文件
mashangyoujiu/Application/Vip/Controller/BaseController.class.php

181 行
7.2 KiB
PHP
可执行文件

<?php
namespace Vip\Controller;
use Think\Controller;
//[1.1.20]
class BaseController extends Controller
{
public static $SET;//全局静态配置
//微信缓存
protected static $_wxappid;
protected static $_wxappsecret;
protected static $_cardinfo;
public $REQUEST_URL;
public function storeCardInfo()
{
//通过门店id 获取会员卡信息
$where['merchantid'] = session('merchantid');
$cardinfo = M('wx_membercard')->Field('id,card_id')->where($where)->find();
return $cardinfo;
}
Public function _initialize()
{
$title = 'http';
if ($_SERVER['HTTPS'] == 'on') {
$title .= 's';
}
$this->REQUEST_URL = $title . '://' . $_SERVER['HTTP_HOST'];
//定义全局门店id
$merchantid = I('get.merchantid');
$merchantid_1 = session('merchantid');
//存储商户id
if (!empty($merchantid)) {
if (!empty($_SESSION['sqmode']) && session('wxuser')['merchantid'] != $merchantid) {
session('sqmode', null);
}
session('merchantid', $merchantid);
} else if (empty($merchantid_1)) {
$this->tipsMsg(0, '未知的门店信息');
exit;
}
self::$SET = $_SESSION['SET'] = $this->checkSet();
$appset = self::$SET;
// print_r($appset);
$url = 'http';
if ($_SERVER["HTTPS"] == "on") {
$url = $url . 's';
}
$_url = $url . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
// echo !$_SESSION['sqmode'];exit;
if ($appset['type'] == 1) {
//用户自定义配置微信公众号
self::$_wxappid = self::$SET['appid'];
self::$_wxappsecret = self::$SET['appsecret'];
if (!$_SESSION['sqmode']) {
if (strpos($_SERVER["HTTP_USER_AGENT"], "MicroMessenger")) {
//判断code是否存在
if ($_GET['code']) {
if ($_GET['code'] != 'authdeny') {
//用户授权
$options['appid'] = self::$_wxappid;
$options['appsecret'] = self::$_wxappsecret;
$wx = new \Util\Wx\Wechat($options);
$re = $wx->getOauthAccessToken($_GET['code']);//获取access_token和openid
// var_dump($re);
$access_token = $re['access_token'];
$openid = $re['openid'];
if ($re) {
$_SESSION['sqmode'] = 'wecha';
$_SESSION['openid'] = $openid;
}
} else {
$this->tipsMsg(0, '本应用需要您的授权才可以使用!');
}
} else {
$options['appid'] = self::$_wxappid;
$options['appsecret'] = self::$_wxappsecret;
$wx = new \Util\Wx\Wechat($options);
$squrl = $wx->getOauthRedirect($_url, '1', 'snsapi_base');
header("Location:" . $squrl);
exit;
}
} else {
$this->tipsMsg(0, '请使用微信浏览器访问本应用!');
}
}
} else if ($appset['type'] == 2) {
//第三方授权微信公众号
$appinfo = M('appweixin')->where('id = 1')->find();
$options['appid'] = self::$SET['authorizer_appid'];
if (!$_SESSION['sqmode']) {
if (strpos($_SERVER["HTTP_USER_AGENT"], "MicroMessenger")) {
//判断code是否存在
if ($_GET['code']) {
if ($_GET['code'] != 'authdeny') {
$wx = new \Util\Wx\Wechat($options);
$token = get_acc_token();
$re = $wx->getOauthAccessTokens($_GET['code'], $appinfo['appid'], $token);//获取access_token和openid
$access_token = $re['access_token'];
$openid = $re['openid'];
if ($re) {
$_SESSION['sqmode'] = 'wecha';
$_SESSION['openid'] = $openid;
}
} else {
$this->tipsMsg(0, '本应用需要您的授权才可以使用!');
}
} else {
$wx = new \Util\Wx\Wechat($options);
$squrl = $wx->getOauthRedirects($_url, '1', 'snsapi_base', $appinfo['appid']);
header("Location:" . $squrl);
exit;
}
} else {
$this->tipsMsg(0, '请使用微信浏览器访问本应用!');
}
}
} else {
$this->tipsMsg(0, '商户未配置微信公众号');
}
//查找用户是否激活会员卡
$map['openid'] = $_SESSION['openid'];
$map['merchantid'] = session('merchantid');
$map['status'] = array('neq', 2);
$userinfo = D('Vip')->getFind($map);
$config = M('vip_config')->where(array('merchantid' => $map['merchantid']))->find();
if ($config['viptemplatesign']) {
$hasfile = file_exists('./VipTemplate/' . $config['viptemplatesign'] . '/Index/index.html');
if ($hasfile) {
C('VIEW_PATH', './VipTemplate/' . $config['viptemplatesign'] . '/');
$config['style_model'] = 1;
}
}
$userinfo['style_model'] = $config['style_model'] ? $config['style_model'] : 1;
if (empty($userinfo) || $userinfo['is_register'] == 0) {
//未激活会员卡去激活会员卡
session('sqmode', null);
session('sq_sqmode', null);
session('userinfo', null);
session('openid', null);
session('vid', null);
$this->redirect('Register/index');
} else {
session('userinfo', $userinfo);
session('vid', $userinfo['id']);
}
}
//第三方授权功能
//设置全局变量 全局缓存SET
public function checkSet()
{
$merchantid = session('merchantid');
$set = M('wxconfig')->where(array('merchantid' => $merchantid))->find();
return $set ? $set : $this->error('系统全局设置未定义!');
}
//禁止不动的失败提示的信息
public function diemsg($status, $msg)
{
//成功为1,失败为0
$this->error($msg);
$this->display('Base_diemsg');
die();
}
public function tipsMsg($status, $msg)
{
$this->assign('status', $status);
$this->assign('msg', $msg);
$this->display('Index/tipsMsg');
exit;
}
}