} else { $url = $api->get_authorization_url(); } header('Location: ' . $url); exit; //return from the Envato authorization page } elseif (isset($_GET['code'])) { @session_start(); $response = $api->get_authentication($_GET['code']); if (isset($response['error'])) { $url = buildquery($_SESSION['returnto'], array('mymail_error' => urlencode($response['error_description']), 'mymail_nonce' => $_SESSION['auth'])); } else { if (isset($response['refresh_token']) && isset($response['access_token'])) { $api->set_personal_token($response['access_token']); $params = buildquery(array('item_id' => (int) $_SESSION['item_id'], 'shorten_url' => 'true')); $response = $api->get('v3/market/buyer/download' . $params, false, false); $item_id = (int) $_SESSION['item_id']; $slug = $_SESSION['slug']; if (isset($response['error'])) { $error_description = $response['description']; $url = buildquery($_SESSION['returnto'], array('mymail_error' => urlencode($error_description), 'mymail_slug' => $slug, 'mymail_nonce' => $_SESSION['auth'])); } else { if (isset($response['download_url'])) { $download_url = $response['download_url']; if (isset($items[$item_id]['file_path']) && file_exists($items[$item_id]['file_path'])) { //expire every 30 minutes $time = floor(time() / 86400 * (2 * 24)); $download_url = buildquery($redirect_uri, array('item_id' => $item_id, 'download' => md5(SEED . $item_id . $time))); } $url = buildquery($_SESSION['returnto'], array('mymail_download_url' => urlencode($download_url), 'mymail_slug' => $slug, 'mymail_nonce' => $_SESSION['auth'])); }