<?php
/**
*宜配车型库
*/
class wxAction extends baseAction
{

	/**
	  * @method 获取公众号TOKEN		  
	  * @author soul
	  * @copyright 2018/3/5
	  * @return 
	  {"status":true,"data": url}
	  {"status":false,"data":'失败原因',"code":''}
	  */
	public function getToken()
	{
		$MainWeiXin = new MainWeiXin();
		$res = $MainWeiXin->getGzhToken();
		echo json_encode($res);
	}


	/**
	  * @method 生成获取微信用户信息的链接[登录、绑定.....]
	  * @http	get
	  * @param  token              string [必填] 调用接口凭证 (post|get)
	  * @param  app                enum   [必填] 应用标识 gzh_app || ....
	  * @param  backUrl            string [必填] http://xxx/login/check 获取成功后需要跳转的URL
	  * @param  scope              string [可填] 微信公众平台（微信内使用）：snsapi_base、 snsapi_userinfo   微信开放平台：snsapi_login
												snsapi_base（不弹出授权页面，直接跳转，只能获取用户openid）
												snsapi_userinfo（弹出授权页面，可通过openid拿到昵称、性别、所在地。并且， 即使在未关注的情况下，只要用户授权，也能获取其信息 ）
												  
	  * @author soul
	  * @copyright 2018/3/5
	  * @return 
	  {"status":true,"data": url}
	  {"status":false,"data":'失败原因',"code":''}
	  */
	public function getWxUserUrl()
	{
		$Params = mvc::$URL_PARAMS;
		if(isset($Params['app']) && !empty(mvc::$cfg['WX'][$Params['app']]) && !empty($Params['backUrl']))
		{
			$cof = mvc::$cfg['WX'][$Params['app']];
			$redirect_uri = urlencode($cof['redirect_url'].'&backurl='.base64_encode($Params['backUrl']));
			if($cof['type'] == 'gzh')
			{
				if(empty($Params['scope'])) $Params['scope'] = 'snsapi_userinfo';
				$url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$cof['appid'].'&redirect_uri='.$redirect_uri.'&response_type=code&scope='.$Params['scope'].'&state=STATE#wechat_redirect';
			}
			else
			{
				if(empty($Params['scope'])) $Params['scope'] = 'snsapi_login';
				$url = 'https://open.weixin.qq.com/connect/qrconnect?appid='.$cof['appid'].'&redirect_uri='.$redirect_uri.'&response_type=code&scope='.$Params['scope'];
			}
			LibFc::ReturnJson(true, $url);
		}
		else
		{
			LibFc::ReturnJson(false, 'getWxUserUrl 提供的参数不正确！');
		}
	}


	/**
	  * @method 获取微信用户信息
	  * @http	get
	  * @param  token              string [必填] 调用接口凭证 (post|get)
	  * @param  app                string [必填] 应用标识 gzh_app || app_pjl....
	  * @param  code			   string [必填] 微信授权后返回的标识										  
	  * @author soul
	  * @copyright 2018/9/20
	  * @return 
	  {"status":true,"data": {"openid":"obxt6Ozc5loizbHou6VDQ","nickname":"\u6768\u660e\u6c60","sex":1,"language":"zh_CN","city":"","province":"Jiangxi","country":"CN","headimgurl":"http:\/\/wx.qlogo.cn\/mmopen\/AhLk989Zrl251oJp9fvSianldwYCsVqRmhrVwM2XpYvXggHVVP6RaOd2a3U14Kz95lmPEzH4iazhGHPwKqBPeXew\/0","privilege":[],"unionid":"ok4Ppv9yvlaNZkL_aSLvU"}}
	  {"status":false,"data":'失败原因',"code":''}
	  */
	public function getWxUserByCode()
	{
		$Params = mvc::$URL_PARAMS;
		if(isset($Params['app']) && !empty(mvc::$cfg['WX'][$Params['app']]) && !empty($Params['code']))
		{
			$MainWeiXin = new MainWeiXin();
			$res = $MainWeiXin->getUserByCode($Params['app'], $Params['code']);
			echo json_encode($res);
		}
		else
		{
			LibFc::ReturnJson(false, 'getWxUserByCode 提供的参数不正确！');
		}
	}


	/**
	  * @method 微信回调后再由API调整到对应的链接  不需要token
	  * @http	get
	  * @param  token             string [必填] 调用接口凭证 (post|get)
	  * @param  unionid           string   [必填] gzh下的唯一编码
	  * @author soul
	  * @copyright 2018/3/5
	  * @return 
	  {"status":true,"data": ['gu_oppenid'=>'', 'gu_subscribe'=>0|1是否已关注],"code":""}
	  {"status":false,"data":'失败原因',"code":''}
	  */
	public function getGzhByUnionid()
	{
		$Params = mvc::$URL_PARAMS;
		$arr = [];
		if(!empty($Params['unionid']))
		{
			$YpwBase = new YpwBase();
			$res = $YpwBase->Get('wx_gzh_user', ['gu_oppenid', 'gu_subscribe'], sprintf(" and gu_unionid='%s'", LibFc::Escape($Params['unionid'])), true);
			$arr = $res['data'];
		}
		LibFc::ReturnJson(true, $arr);
	}
}