public function __construct() { $this->error = new ErrorCase(); //-------读取配置文件 $incFileContents = file_get_contents(APP_ROOT_PATH . "public/qqv2_inc.php"); $this->inc = json_decode($incFileContents); if (empty($this->inc)) { $this->error->showError("20001"); } if (!es_session::is_set('QC_userData')) { self::$data = array(); } else { self::$data = es_session::get('QC_userData'); } }
//微信v3版跳转 //print_r($data['is_wap_url']); echo "<br>";echo $data['wap_notify_url'];exit; if ($data['wap_notify_url'] && $data['is_wap_url'] == 1) { Header("location:" . $data['wap_notify_url']); exit; } //在支付界面时,清空购买车,但如果清空了,用户点:返回 后,再去购买时,会购买空商品,这个需要注意处理一下 $session_cart_data = es_session::get("cart_data"); unset($session_cart_data); es_session::set("cart_data", $session_cart_data); es_session::set("cart_data", array()); es_session::delete("cart_data"); } if ($class == 'index') { //已经执行过定位时,首页不再做定位操作 if (es_session::is_set('m_latitude')) { $GLOBALS['tmpl']->assign('has_location', 1); } else { $GLOBALS['tmpl']->assign('has_location', 0); } } //echo $tmpl_dir; exit; //print_r($request_param);exit; $GLOBALS['tmpl']->assign('request', $request_param); $GLOBALS['tmpl']->assign('is_ajax', intval($request_param['is_ajax'])); $GLOBALS['tmpl']->assign('data', $data); $GLOBALS['tmpl']->assign('APP_ROOT', APP_ROOT); $GLOBALS['tmpl']->assign("PC_URL", get_domain() . str_replace('/wap', "", APP_ROOT)); if (es_session::get('user_info')) { $GLOBALS['tmpl']->assign('is_login', 1); //用户已登陆
/** * 发起一个腾讯API请求 * @param $command 接口名称 如:t/add * @param $params 接口参数 array('content'=>'test'); * @param $method 请求方式 POST|GET * @param $multi 图片信息 * @return string */ public static function api($command, $params = array(), $method = 'GET', $multi = false) { if (es_session::is_set("t_access_token")) { //OAuth 2.0 方式 //鉴权参数 $params['access_token'] = es_session::get("t_access_token"); $params['oauth_consumer_key'] = OAuth::$client_id; $params['openid'] = es_session::get("t_openid"); $params['oauth_version'] = '2.a'; $params['clientip'] = Common::getClientIp(); $params['scope'] = 'all'; $params['appfrom'] = 'php-sdk2.0beta'; $params['seqid'] = time(); $params['serverip'] = $_SERVER['SERVER_ADDR']; $url = self::$apiUrlHttps . trim($command, '/'); } elseif (es_session::is_set("t_openid") && es_session::is_set("t_openkey")) { //openid & openkey方式 $params['appid'] = OAuth::$client_id; $params['openid'] = es_session::get("t_openid"); $params['openkey'] = es_session::get("t_openkey"); $params['clientip'] = Common::getClientIp(); $params['reqtime'] = time(); $params['wbversion'] = '1'; $params['pf'] = 'php-sdk2.0beta'; $url = self::$apiUrlHttp . trim($command, '/'); //生成签名 $urls = @parse_url($url); $sig = SnsSign::makeSig($method, $urls['path'], $params, OAuth::$client_secret . '&'); $params['sig'] = $sig; } //请求接口 $r = Http::request($url, $params, $method, $multi); /* $http = new Http2(); $r = $http->request($url, $method, $params, $multi); */ $r = preg_replace('/[^\\x20-\\xff]*/', "", $r); //清除不可见字符 $r = iconv("utf-8", "utf-8//ignore", $r); //UTF-8转码 //调试信息 if (self::$debug) { echo '<pre>'; echo '接口:' . $url; echo '<br>请求参数:<br>'; print_r($params); echo '返回结果:' . $r; echo '</pre>'; } return $r; }
function LOGIN_DES_KEY() { if (!es_session::is_set("DES_KEY")) { require_once APP_ROOT_PATH . "system/utils/es_string.php"; es_session::set("DES_KEY", es_string::rand_string(50)); } return es_session::get("DES_KEY"); }
public function callback() { OAuth::init($this->api['config']['app_key'], $this->api['config']['app_secret']); Tencent::$debug = $debug; $callback = SITE_DOMAIN . APP_ROOT . "/api_callback.php?c=Tencent"; if (es_session::is_set('t_access_token') || es_session::is_set('t_openid') && es_session::is_set('t_openkey')) { //用户已授权 //echo '<pre><h3>已授权</h3>用户信息:<br>'; //获取用户信息 $r = Tencent::api('user/info'); $json_data = json_decode($r, true); //print_r($json_data); // echo '</pre>'; } else { if ($_GET['code']) { //已获得code $code = $_GET['code']; $openid = $_GET['openid']; $openkey = $_GET['openkey']; //获取授权token $url = OAuth::getAccessToken($code, $callback); $r = Http::request($url); parse_str($r, $out); //存储授权数据 if ($out['access_token']) { es_session::set('t_access_token', $out['access_token']); es_session::set('refresh_token', $out['refresh_token']); es_session::set('expires_in', $out['expires_in']); es_session::set('t_code', $code); es_session::set('t_openid', $openid); es_session::set('t_openkey', $openkey); //验证授权 $r = OAuth::checkOAuthValid(); if ($r) { app_redirect($callback); //刷新页面 } else { exit('<h3>授权失败,请重试</h3>'); } } else { exit($r); } } else { //获取授权code if ($_GET['openid'] && $_GET['openkey']) { //应用频道 s_session::set('t_openid', $_GET['openid']); es_session::set('t_openkey', $_GET['openkey']); //验证授权 $r = OAuth::checkOAuthValid(); if ($r) { app_redirect($callback); //刷新页面 } else { exit('<h3>授权失败,请重试</h3>'); } } else { $url = OAuth::getAuthorizeURL($callback); app_redirect($url); } } } if ($json_data['msg'] != "ok") { echo '<pre><h3>出错了</h3><pre>'; die; } $is_bind = intval($_REQUEST['is_bind']); $tencent_id = $json_data['data']['openid']; $msg['field'] = 'tencent_id'; $msg['id'] = $tencent_id; $msg['name'] = $json_data['data']['name']; es_session::set("api_user_info", $msg); $user_data = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user where tencent_id = '" . $tencent_id . "' and tencent_id <> ''"); if ($user_data) { $user_current_group = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_group where id = " . intval($user_data['group_id'])); $user_group = $GLOBALS['db']->getRow("select * from " . DB_PREFIX . "user_group where score <=" . intval($user_data['score']) . " order by score desc"); if ($user_current_group['score'] < $user_group['score']) { $user_data['group_id'] = intval($user_group['id']); } //$GLOBALS['db']->query("update ".DB_PREFIX."user set tencent_app_key ='".$last_key['oauth_token']."',tencent_app_secret = '".$last_key['oauth_token_secret']."', login_ip = '".get_client_ip()."',login_time= ".TIME_UTC.",group_id=".intval($user_data['group_id'])." where id =".$user_data['id']); //$GLOBALS['db']->query("update ".DB_PREFIX."deal_cart set user_id = ".intval($user_data['id'])." where session_id = '".es_session::id()."'"); es_session::delete("api_user_info"); if ($is_bind) { if (intval($user_data['id']) != intval($GLOBALS['user_info']['id'])) { showErr("该帐号已经被别的会员绑定过,请直接用帐号登录", 0, url("shop", "uc_center#setweibo")); } else { es_session::set("user_info", $user_data); app_redirect(url("shop", "uc_center#setweibo")); } } else { es_session::set("user_info", $user_data); app_recirect_preview(); } } elseif ($is_bind == 1 && $GLOBALS['user_info']) { //当有用户身份且要求绑定时 $GLOBALS['db']->query("update " . DB_PREFIX . "user set tencent_id= '" . $tencent_id . "' where id =" . $GLOBALS['user_info']['id']); app_redirect(url("index", "uc_center#setweibo")); } else { $this->create_user(); //app_redirect(url("index","user#api_login")); app_recirect_preview(); } }