<?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;
}