コード例 #1
0
ファイル: init.php プロジェクト: jaydom/weishang
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);
                }
            }
        }
    }
}
コード例 #2
0
ファイル: lib_weixin.php プロジェクト: jasonhzy/bjcms2.3
                        $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);
        }
    }
}