Azy programmirovaniya-obrabotka ssylok ot servisa Ket-Kat

Подключение обработчика ссылок.

Генерация ссылки


URL перехода: http://ccl.su/go.php
Или вместо домена ccl.su можете использовать собственный домен из раздела "Мои домены" или любой наш домен из раздела коротких ссылок.

GET параметры перехода:
h_i – (обязательный) ID вашего обработчика, число, которое стоит после символов #H в панели управления обработчиком на CatCut (например, для обработчика #H123 необходимо отправлять 123);
h_u – (обязательный) кодированная в Base64 ссылка, по которой должен быть совершён переход;
h_a – (не обязательный) уникальный ID перехода для генерации подписи (смотрите раздел "Переход с подписью"). 40 - 60 символов, разрешено использовать только заглавные и строчные буквы латинского алфавита, цифры и нижнее подчёркивание "_".
s – (не обязательный) если установлено значение "1", будет скрываться источник перехода (HTTP реферер), в том числе и сам ccl.su. Работает только, если ссылка из параметра h_u на HTTP протоколе.

Пример
Обычная ссылка на главную страницу Google
https://google.com
Ссылка на главную страницу Google с просмотром рекламы через обработчик #H7
http://ccl.su/go.php?h_i=7&h_u=aHR0cHM6Ly9nb29nbGUuY29t

Переход с подписью


Вы можете проверять уникальность каждого прехода по обработанным ссылкам. Это может потребоваться для того, чтобы проверять, что переход был совершен по обработанной ссылке, а не напрямую, без просмотра рекламы. Для этого генерируйте уникальный ID перехода для каждого перехода по ссылке и передавайте его в параметре h_a.

Пример генерации уникального ID перехода (GET параметра h_a)
Можно взять порядковый номер перехода и дополнить его через нижнее подчёркивание ("_") 40 случайными символами латинского алфавита. Для каждого перехода использовать новый ID и новые случайные символы. К примеру, порядковый номер перехода 712532. Таким образом, уникальный ID перехода будет
712532_GBYHqazWSXEDCrfvTGByhnUJMikOLpQAZwsxRFVt

Подпись ссылки
Если параметр h_a передается, то к вашей ссылке, на которую будет совершён переход после просмотра рекламы, будет добавлена подпись в виде дополнительного GET параметра ccviewsign. GET параметр ccviewsign состоит из уникального ID перехода (значение параметра h_a) и через дефис SHA-1 хеша уникального ID перехода и секретного кода обработчика. Проверьте на стороне сервера хеш и был ли ранее совершён переход с таким ID. Если хеш верный и ранее переходов с таким ID не было, можно предоставлять доступ к странице.

Чтобы проверить хеш, возьмите уникальный ID перехода (часть до дефиса параметра ccviewsign) и секретный код обработчика из панели упрвления обработчиком на CatCut. Склейте ID и секретный код один к одному и получите SHA-1 хеш этой строки. Полученный хеш сверьте с тем, который пришел (часть после дефиса параметра ccviewsign), они должны быть одинаковые.

Пример работы подписи ссылки (GET параметра ccviewsign)
Если вы обработаете ссылку http://my-site.com/secret-file с GET параметром h_a, то после просмотра рекламы переход будет совершён на http://my-site.com/secret-file?ccviewsign=UNIC_ID-HASH. То есть ваша ссылка будет дополнена параметром ccviewsign со значением UNIC_ID-HASH. Где UNIC_ID равен GET параметру h_a, дальше дефис, дальше HASH равен SHA-1 хеш UNIC_ID и секретного кода обработчика.

Генерируем ссылки на PHP


Простая PHP функция для генерации ссылок cc_url_handler

Параметры функции
id - ID обработчика;
url - ссылка для перехода;
ask - уникальный ID перехода, по-умолчанию false;
s - флаг скрытия HTTP реферрера, true или false, по-умолчанию false.
==========================
<?php
function cc_url_handler ($id, $url, $ask = false, $s = false) {
    $result = "http://ccl.su/go.php?h_i=$id";
    $url = base64_encode($url);
    $result .= "&h_u=$url";
    if($ask){
        $result .= "&h_a=$ask";
    }
    if($s){
        $result .= "&s=1";
    }
    return $result;
}
?>
==========================
Пример использования
Генерируем ссылку без подписи на google.com, для обработчика #H7 (заменить своим).
<?php $cc_link = cc_url_handler(7, "https://google.com"); ?>

Проверяем подпись на PHP


Простая PHP функция для проверки подписи cc_view_sign_verif. Возвращает true, если подпись верная или false, если подпись неверная. ВАЖНО: кроме проверки подписи, необходимо проверять, что переход с таким ID ранее никем не совершался.

Параметры функции
sign - подпись ссылки (параметр ccviewsign)
secret - секретный код обработчика.

<?php

function cc_view_sign_verif ($sign, $secret) {
    $ex = explode("-", $sign);
    $hash = sha1($ex[0].$secret);
    if($hash == $ex[1]){
        return true;
    } else {
        return false;
    }
}

?>

Пример использования
Секретный код нужно заменить своим из панели управления обработчиком CatCut.
<?php
$cc_secret = "YOURSECRETCODE1234567890";
$cc_sign_ck = cc_view_sign_verif($_GET['ccviewsign'], $cc_secret);
?>

Генерируем ссылки на JS


Подключите скрипт на страницу и используйте функцию ccUrlHandler для обработки нужных вам ссылок или генерации ссылок при определённых событиях.

Параметры функции
id - ID обработчика;
url - ссылка для перехода;
ask - уникальный ID перехода, по-умолчанию false;
s - флаг скрытия HTTP реферрера, true или false, по-умолчанию false.

Подключение скрипта ccUrlHandler
<script src="//catcut.net/adv/urlHandler.js"></script>

Примеры использования
Генерируем ссылку без подписи на google.com, для обработчика #H7 (заменить своим).

<script>
var cc_link = ccUrlHandler(7, "https://google.com");
</script>


С помощью селекторов вы можете настроить обработку для всех ссылок на сайте или для конкретного меню, кнопок, разделов, сайтов. В этом примере обрабатываем на странице все ссылки тега <a> с классом cclink, для обработчика #H7 (заменить своим). Код вставляем внизу страницы.

<script>
 var x = document.querySelectorAll("a.cclink");
 var i;
 for (i = 0; i < x.length; i++) {
  x[i].href = ccUrlHandler(7, x[i].href);
 }
</script>


Вот пример, как можно изменить ссылки только для определённых доменов. Домены drive.google.com, yadi.sk можно дополнить или заменить своими. Обработчик #H7 заменить своим.

<script>
 var hdomains = ["drive.google.com", "yadi.sk"];
 var elements = document.getElementsByTagName("a");
 for (var i=0; i < elements.length; i++)
 {
  var ckdomain = elements[i].href.replace('http://','').replace('https://','').replace('www.','').split(/[/?#]/)[0];
  if(hdomains.indexOf(ckdomain) != -1){
   elements[i].href = ccUrlHandler(7, elements[i].href);
  }
 }
</script>


Можно отслеживать события, и совершать принудительный редирект на показ рекламы. Например, при клике на Play в плеере, увеличении картинки и т.д. В этом примере при клике на элемент elem, производим переход на просмотр рекламы для обработчика #H7 (заменить своим).

<script>
 elem.onclick = function() {
  document.location.href = ccUrlHandler(7, "http://my-site.com/very-spacial-page");
 };
</script>


А вот пример, в котором принудительный редирект на показ рекламы происходит на 60 секунде просмотра страницы. После просмотра рекламы, человек возвращается обратно на страницу. Обработчик #H7 заменить своим.

<script>
 setTimeout(function() {
  document.location.href = ccUrlHandler(7, document.location.href);
 }, 60000);
</script>


Используйте эти примеры по своему усмотрению, со своими корректировками, или подключите обработчик по-своему.



Комментариев нет:

Отправить комментарий