Example #1
0
 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];
     }
 }
Example #2
0
 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];
     }
 }