function get_weixin_openid($state = 0) { global $_GP; $settings = globaSetting(array("weixin_appId", "weixin_appSecret")); $appid = $settings['weixin_appId']; $secret = $settings['weixin_appSecret']; if (empty($appid) || empty($secret)) { message('微信公众号没有配置公众号AppId和公众号AppSecret!'); } if (!empty($_SESSION[MOBILE_WEIXIN_OPENID]) && !empty($_SESSION[MOBILE_SESSION_ACCOUNT]) && !empty($_SESSION[MOBILE_SESSION_ACCOUNT]['openid'])) { $weixinfans = mysqld_select("SELECT * FROM " . table('weixin_wxfans') . " WHERE weixin_openid=:weixin_openid ", array(':weixin_openid' => $_SESSION[MOBILE_SESSION_ACCOUNT]['openid'])); if (empty($weixinfans['weixin_openid']) || $_SESSION[MOBILE_WEIXIN_OPENID] != $_SESSION[MOBILE_SESSION_ACCOUNT]['openid']) { unset($_SESSION[MOBILE_WEIXIN_OPENID]); unset($_SESSION[MOBILE_SESSION_ACCOUNT]); } } if (empty($_SESSION[MOBILE_WEIXIN_OPENID]) || empty($_SESSION[MOBILE_SESSION_ACCOUNT]) || empty($_SESSION[MOBILE_SESSION_ACCOUNT]['openid'])) { if ($state == 1 || isset($_GP['code']) && isset($_GP['state']) && $_GP['state'] == 1) { $scope = "snsapi_userinfo"; if (isset($_GP['code']) && isset($_GP['state']) && $_GP['state'] == 1) { $from_user = xoauth($appid, $secret); $_SESSION[MOBILE_WEIXIN_OPENID] = $from_user; $sessionAccount = array('openid' => $from_user); $_SESSION[MOBILE_SESSION_ACCOUNT] = $sessionAccount; return $from_user; exit; } } else { $scope = "snsapi_base"; if (isset($_GP['code'])) { $from_user = xoauth($appid, $secret); $_SESSION[MOBILE_WEIXIN_OPENID] = $from_user; $sessionAccount = array('openid' => $from_user); $_SESSION[MOBILE_SESSION_ACCOUNT] = $sessionAccount; return $from_user; exit; } } $url = "http://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}"; $oauth2_code = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" . $appid . "&redirect_uri=" . urlencode($url) . "&response_type=code&scope=" . $scope . "&state=" . $state . "#wechat_redirect"; //$state 0 不拉取用户资料 1拉取用户资料 header("location:{$oauth2_code}"); exit; } else { return $_SESSION[MOBILE_WEIXIN_OPENID]; } }
function get_weixin_openid($state = 0) { global $_GP; $settings = globaSetting(array("weixin_appId", "weixin_appSecret")); $appid = $settings['weixin_appId']; $secret = $settings['weixin_appSecret']; if (empty($appid) || empty($secret)) { message('微信公众号没有配置公众号AppId和公众号AppSecret!'); } if (!empty($_SESSION[MOBILE_WEIXIN_OPENID]) && !empty($_SESSION[MOBILE_SESSION_ACCOUNT]) && !empty($_SESSION[MOBILE_SESSION_ACCOUNT]['openid'])) { $weixinfans = mysqld_select("SELECT * FROM " . table('weixin_wxfans') . " WHERE weixin_openid=:weixin_openid ", array(':weixin_openid' => $_SESSION[MOBILE_SESSION_ACCOUNT]['openid'])); if (empty($weixinfans['weixin_openid']) || $_SESSION[MOBILE_WEIXIN_OPENID] != $_SESSION[MOBILE_SESSION_ACCOUNT]['openid']) { unset($_SESSION[MOBILE_WEIXIN_OPENID]); unset($_SESSION[MOBILE_SESSION_ACCOUNT]); } } if (empty($_SESSION[MOBILE_WEIXIN_OPENID]) || empty($_SESSION[MOBILE_SESSION_ACCOUNT]) || empty($_SESSION[MOBILE_SESSION_ACCOUNT]['openid'])) { $from_user = xoauth(); $_SESSION[MOBILE_WEIXIN_OPENID] = $from_user; $sessionAccount = array('openid' => $from_user); $_SESSION[MOBILE_SESSION_ACCOUNT] = $sessionAccount; return $from_user; exit; } else { return $_SESSION[MOBILE_WEIXIN_OPENID]; } }