function member_login_weixin($weixin_openid) { global $_GP, $_CMS; if (!empty($weixin_openid)) { $weixin_wxfans = mysqld_select("SELECT * FROM " . table('weixin_wxfans') . " WHERE weixin_openid=:weixin_openid ", array(':weixin_openid' => $weixin_openid)); if (!empty($weixin_wxfans['weixin_openid'])) { $member = mysqld_select("SELECT * FROM " . table('member') . " where weixin_openid=:weixin_openid or openid=:openid limit 1", array(':openid' => $weixin_wxfans['openid'], ':weixin_openid' => $weixin_openid)); if (!empty($member['openid'])) { $_SESSION[MOBILE_ACCOUNT] = $member; } else { $settings = globaSetting(); if (!empty($settings['weixin_autoreg'])) { $openid = date("YmdH", time()) . rand(100, 999); $hasaccount = true; while ($hasaccount) { $hasmember = mysqld_select("SELECT * FROM " . table('member') . " WHERE openid = :openid ", array(':openid' => $openid)); if (!empty($hasmember['openid'])) { $openid = date("YmdH", time()) . rand(100, 999); } else { $hasaccount = false; } } $shareinfo = $_GP['shareid']; if ($shareinfo != $openid && !empty($shareinfo) && (!empty($_SESSION[MOBILE_WEIXIN_OPENID]) || !empty($_SESSION[MOBILE_ALIPAY_OPENID]))) { $share_member = mysqld_select("SELECT * FROM " . table('member') . " WHERE openid = :openid", array(':openid' => $shareinfo)); if (!empty($share_member['openid'])) { if ($_CMS['addons_bj_tbk']) { bj_tbk_base_shareinfo($openid, $shareinfo); } } } $data = array('realname' => $weixin_wxfans['nickname'], 'mobile' => '', 'pwd' => '', 'createtime' => time(), 'status' => 1, 'weixin_openid' => $weixin_openid, 'istemplate' => 0, 'experience' => 0, 'openid' => $openid); mysqld_insert('member', $data); mysqld_update('weixin_wxfans', array('openid' => $openid), array('weixin_openid' => $weixin_openid)); if ($_CMS['addons_bj_tbk']) { bj_tbk_reg_member($openid); } member_login_weixin($weixin_openid); } } } } }
$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]; } } $weixin_openid = get_weixin_openid(); if (!empty($weixin_openid)) { member_login_weixin($weixin_openid); } } }