www.gusucode.com > Destoon B2B仿淘宝电子商务网站 UTF8 v6.0源码程序 > destoon/mobile/weixin.php

    <?php
require '../common.inc.php';
if(strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') === false) exit('Not IN WeiXin');
function is_openid($openid) {
	return preg_match("/^[0-9a-zA-Z_]{10,}$/", $openid);
}
if($action == 'login') {
	$openid = get_cookie('weixin_openid');
	if($openid) $openid = decrypt($openid);
	if(is_openid($openid)) {
		$r = $db->get_one("SELECT username FROM {$DT_PRE}weixin_user WHERE openid='$openid'");
		if($r && $r['username']) {
			include load('member.lang');
			$MOD = cache_read('module-2.php');
			include DT_ROOT.'/include/module.func.php';
			include DT_ROOT.'/module/member/member.class.php';
			$do = new member;
			$user = $do->login($r['username'], '', 0, true);
			set_cookie('weixin_openid', '');
		}
		$url = get_cookie('weixin_url');
		dheader($url ? $url : 'my.php');
	}
} else if($action == 'bind') {
	$openid = get_cookie('weixin_openid');
	if($openid) $openid = decrypt($openid);
	if($_userid && is_openid($openid)) {
		$r = $db->get_one("SELECT itemid FROM {$DT_PRE}weixin_user WHERE username='$_username'");
		if(!$r) {
			$r = $db->get_one("SELECT username FROM {$DT_PRE}weixin_user WHERE openid='$openid'");
			if($r && !$r['username']) {
				$db->query("UPDATE {$DT_PRE}weixin_user SET username='$_username' WHERE openid='$openid'");
				set_cookie('weixin_openid', '');
			}
		}
	}
	$url = get_cookie('weixin_url');
	dheader($url ? $url : 'my.php');
} else if($action == 'member') {
	isset($auth) or $auth = '';
	if($auth) {
		$openid = decrypt($auth);
		if(is_openid($openid)) {
			set_cookie('weixin_openid', $auth);
			set_cookie('weixin_url', 'my.php');
			dheader('weixin.php?action=login&wx='.$DT_TIME);
		}
	}
} else if($action == 'callback') {
	if($code) {
		include DT_ROOT.'/api/weixin/config.inc.php';
		$url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.WX_APPID.'&secret='.WX_APPSECRET.'&code='.$code.'&grant_type=authorization_code';
		$rec = dcurl($url);
		$arr = json_decode($rec, true);
		if($arr['openid']) {
			$openid = $arr['openid'];
			set_cookie('weixin_openid', encrypt($openid));
			dheader('weixin.php?action=login&wx='.$DT_TIME);
		}
	}
} else {
	isset($url) or $url = 'index.php';
	if($moduleid == 2 || $moduleid > 3) $url = mobileurl($moduleid);
	if($_userid) dheader($url);
	set_cookie('weixin_url', $url);
	if(get_cookie('weixin_openid')) dheader('weixin.php?action=login&wx='.$DT_TIME);
	include DT_ROOT.'/api/weixin/config.inc.php';
	dheader('https://open.weixin.qq.com/connect/oauth2/authorize?appid='.WX_APPID.'&redirect_uri='.urlencode($EXT['mobile_url'].'weixin.php?action=callback').'&response_type=code&scope=snsapi_base&state=1#wechat_redirect');
}
dheader('index.php?wx='.$DT_TIME);
?>