You've already forked qlg.tsgz.moe
							
							
		
			
				
	
	
		
			122 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
<?php
 | 
						|
use think\Db;
 | 
						|
use wstmart\wechat\model\Users;
 | 
						|
/**
 | 
						|
 * ============================================================================
 | 
						|
 */
 | 
						|
/**
 | 
						|
 * 建立文件夹
 | 
						|
 * @param string $aimUrl
 | 
						|
 * @return viod
 | 
						|
 */
 | 
						|
function WSTCreateDir($aimUrl) {
 | 
						|
	$aimUrl = str_replace('', '/', $aimUrl);
 | 
						|
	$aimDir = '';
 | 
						|
	$arr = explode('/', $aimUrl);
 | 
						|
	$result = true;
 | 
						|
	foreach ($arr as $str) {
 | 
						|
		$aimDir .= $str . '/';
 | 
						|
		if (!file_exists($aimDir)) {
 | 
						|
			$result = mkdir($aimDir,0777);
 | 
						|
		}
 | 
						|
	}
 | 
						|
	return $result;
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * 下载网络文件到本地服务器
 | 
						|
 */
 | 
						|
function WSTDownFile($url,$folde='./Upload/image/'){
 | 
						|
	set_time_limit (24 * 60 * 60);
 | 
						|
	WSTCreateDir(WSTRootPath().$folde);
 | 
						|
	$postfix = '';
 | 
						|
	$newfname = $folde . time().rand(10,100).".".($postfix!=''?$postfix:"jpg");
 | 
						|
	$file = fopen ($url, "rb");
 | 
						|
	if ($file) {
 | 
						|
		$newf = fopen ($newfname, "wb");
 | 
						|
		if ($newf){
 | 
						|
			while(!feof($file)) {
 | 
						|
				fwrite($newf, fread($file, 1024 * 8 ), 1024 * 8 );
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
	if ($file) {
 | 
						|
		fclose($file);
 | 
						|
	}
 | 
						|
	if ($newf) {
 | 
						|
		fclose($newf);
 | 
						|
	}
 | 
						|
	return $newfname;
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * 微信配置
 | 
						|
 */
 | 
						|
function WSTWechat(){
 | 
						|
	$wechat = new \wechat\WSTWechat(WSTConf('CONF.wxAppId'),WSTConf('CONF.wxAppKey'));
 | 
						|
	return $wechat;
 | 
						|
}
 | 
						|
function WSTBindWeixin($type=1){
 | 
						|
	$USER = session('WST_USER');
 | 
						|
	$we = WSTWechat();
 | 
						|
	if($USER['userId']=='' || $USER['wxOpenId']==''){
 | 
						|
		$wdata = $we->getUserInfo(input('param.code'));//获取openid和access_token
 | 
						|
		$userinfo = session('WST_WX_USERINFO');
 | 
						|
		if(empty($userinfo['openid'])){
 | 
						|
			$userinfo = $we->UserInfo($wdata);
 | 
						|
			session('WST_WX_USERINFO',$userinfo);
 | 
						|
		}
 | 
						|
		WSTSigninfo($userinfo,$USER);
 | 
						|
		$users = new Users();
 | 
						|
		if($userinfo['openid']!=''){
 | 
						|
		session('WST_WX_OPENID',$userinfo['openid']);
 | 
						|
		$rs = Db::name('users')->where(['wxOpenId'=>$userinfo['openid'],'dataFlag'=>1])->field('wxOpenId')->select();
 | 
						|
		if(count($rs)==0 && session('WST_WX_OPENID')!=''){
 | 
						|
			if($type==1){
 | 
						|
				header("location:".url('wechat/users/login'));
 | 
						|
				exit;
 | 
						|
			}
 | 
						|
		}else{
 | 
						|
			$users->accordLogin();
 | 
						|
			$url = session('WST_WX_WlADDRESS');
 | 
						|
			if($url){
 | 
						|
				header("location:".$url);
 | 
						|
				exit;
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
	}
 | 
						|
	WSTSigninfo(0,$USER);
 | 
						|
}
 | 
						|
//获取subscribe(是否关注公众号)
 | 
						|
function WSTSigninfo($info,$user){
 | 
						|
	if(!empty($info['openid'])){
 | 
						|
		$we = WSTWechat();
 | 
						|
		$openid = ($user['wxOpenId'])?$user['wxOpenId']:$info['openid'];
 | 
						|
		$signinfo = $we->wxUserInfo($openid);
 | 
						|
		session('WST_WX_SIGNINFO',$signinfo);
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
function WSTIsWeixin(){
 | 
						|
	if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false) {
 | 
						|
		return true;
 | 
						|
	}
 | 
						|
	$isLimit = false;
 | 
						|
	$limitArr[] = array("controller"=>"Payments","action"=>"notify");
 | 
						|
	for($i=0;$i<count($limitArr);$i++){
 | 
						|
		$obj = $limitArr[$i];
 | 
						|
		if(request()->controller()==$obj["controller"] && request()->action()==$obj["action"]){
 | 
						|
			$isLimit = true;
 | 
						|
			break;
 | 
						|
		}
 | 
						|
	}
 | 
						|
	if($isLimit){
 | 
						|
		return true;
 | 
						|
	}
 | 
						|
	$url=urlencode($_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]);
 | 
						|
	$url='https://open.weixin.qq.com/connect/oauth2/authorize?appid='.WSTConf('CONF.wxAppId').'&redirect_uri=http%3a%2f%2f'.$url.'&response_type=code&scope=snsapi_userinfo&state='.WSTConf('CONF.wxAppCode').'#wechat_redirect';
 | 
						|
	header("location:".$url);
 | 
						|
	exit;
 | 
						|
	return false;
 | 
						|
} |