<?php 
	//Crear toquen por primera vez, iniciar sesion.
	$consulta= "
		UPDATE wc_token SET 		
		estado = 2
		WHERE id = 1;";
	$mysqli->query($consulta);
		
	date_default_timezone_set('America/Costa_Rica');
	require ('conexion.php');
	require ('fe_consultasbd.php');
	$mostrarLog =  true;	
	$url = $parametros['uriToken'];
// echo $parametros['client_id'];
//echo $parametros['usuarioApi'];
 // echo $parametros['claveUsuariApi'];
  
	$data = array(
		'client_id' =>$parametros['client_id'], 
		'client_secret' => "",
		'grant_type' => "password",
	//	'grant_type' => "resource owner password credential",
		'username' => $parametros['usuarioApi'], 
		'password' => $parametros['claveUsuariApi'], 
	//	'scope' =>""     
	);
	$options = array(
		'http' => array(
			'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
			'method'  => 'POST',
			'content' => http_build_query($data)
		 )			 
	);
	
	

	
	
	$context  = stream_context_create($options);
	$resultadoToken = file_get_contents($url, false, $context);
	$token = json_decode($resultadoToken);
    var_dump($resultadoToken);
	$refresh_token_limit   = strtotime(date('Y-m-d H:i:s')) + $token->expires_in;
	$refresh_session_limit = strtotime(date('Y-m-d H:i:s')) + $token->refresh_expires_in;
	$eltoken = $token->refresh_token;

	
	if (empty($eltoken)){// si obtiene un token vacio		
		setLog('IS: Error al obtener el token desde hacienda',true);
		$sel = "UPDATE wc_token SET estado=0"; //// PREPRA PARA EL TOKEN
		$mysqli->query($sel);
	} else {	
		$consulta= "
		UPDATE wc_token SET 
		access_token = '{$token->access_token}',
		expires_in = '{$token->expires_in}',
		refresh_expires_in = '{$token->refresh_expires_in}',
		refresh_token = '{$token->refresh_token}',
		refresh_token_limit = '$refresh_token_limit', 
		refresh_session_limit = '$refresh_session_limit', 
		token_type = '{$token->token_type}',
		id_token = '{$token->id_token}',
		session_state = '{$token->session_state}',
		estado = 1,
		estado_refresh = 1
		WHERE id = 1;";
		if($mysqli->query($consulta)){		
			$eltoken = $token->access_token;
			setLog('IS: Nuevo token generado correctamente',true);
		}
	}  

	//Manejo de erorores
	//Parametros incorrectos.
	//Error al ejecuar el url de hacienda.
	//Al modifiar la base de datos.