Отправка заявок по API в CPAgetti

Привет! Очередная статья по отправке заявок в cpa сервисы, сегодня это будет партнерка cpagetti.com. Подробно разберем что куда и как отправлять и напишем обработчик для правильной отправки лидов по API в CPAgetti, для справки CPAgetti — партнерская программа, работающая с вертикалями: Nutra / Gambling / Crypto / Dating.

Итак, переходим непосредственно к основному вопросу нашей статьи, к настройке отправки лидов по API в CPA сеть CPAgetti. Готовых лендингов с настроенным апи я у них к сожалению не нахожу, видимо нет такой опции (если вдруг все-таки есть пишите в комментах). Но при этом все необходимые данные что и куда отправлять на сайте есть. Для этого нажимаем пункт меню Инструменты и там выбираем вкладку API.

Отправка лидов по api в cpagetti

Как можно увидеть здесь расписаны все обязательные и не обязательные поля для отправки, ниже расписаны коды ошибок, которые отправит сервер в ответ на наш запрос если лид принят не будет. Ну и в третьем блоке приводится полный код отправки заявки через cURL, который мы приведем в нужный вид чтобы в итоге получить готовые обработчик.

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

<form action="" method="POST">
	<select name="country">
		<option value="ru">Россия</option>
	</select>
	<input type="text" name="name" placeholder="Ваше имя">
	<input type="tel" name="phone" placeholder="Ваш телефон">
	<input type="submit" value="Отправить">
	
	<input type="hidden" name="offer_id" value="1644">
	<input type="hidden" name="lang" value="RU">
	<input type="hidden" name="stream_code" value="r07w">
</form>

Как видим, дополнительно кроме имени и телефона мы будем передавать в обработчик (я его назвал тут send.php) такие параметры как страну, язык, id оффера в системе, ну и дополнительно код потока. Опционально сюда можно также добавить и дополнительные поля субаккаунтов если нужно.

Половина дела сделана, далее создаем файл обработчик send.php и просто копируем в него код из примера, который дает нам цпа сетка.

   $uri = 'http://api.cpagetti.com/order/register';
$order = [
'api_key' => '04eca20e867a74e9', //берем у нашего менеджера в CPAgetti
'name' => $_POST['name'],
'phone' => $_POST['phone'],
'offer_id' => $_POST['offer_id'],
'country' => $_POST['country'],
'lang' => $_POST['lang'],
'ip' => (!empty($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : null), // ip пользователя СЕРВЕР ОПРЕДЕЛИТ САМОСТОЯТЕЛЬНО
'sub1' => '',
'sub2' => '',
'sub3' => '',
'sub4' => '',
'sub5' => '',
];
$headers = [
"Host" => $uri,
"User-Agent" => (!empty($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : null),
"Accept" => (!empty($_SERVER['HTTP_ACCEPT']) ? $_SERVER['HTTP_ACCEPT'] : null),
"Accept-Language" => (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? $_SERVER['HTTP_ACCEPT_LANGUAGE'] : null),
"Keep-Alive" => '15',
"Connection" => "keep-alive",
"Referer" => (!empty($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null),
];
/**
* @see http://php.net/manual/ru/book.curl.php
*/
$curl = curl_init();
/**
* @see http://php.net/manual/ru/function.curl-setopt.php
*/
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_URL, $uri);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $order);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
/**
* @see http://php.net/manual/ru/language.exceptions.php
*/
try {
$responseBody = curl_exec($curl);
// тело оказалось пустым
if (empty($responseBody)) {
throw new Exception(date('Y.m.d H:i:s') . 'Error: Empty response for order. ' .
var_export($order, true));
}
/**
* @var StdClass $response
*/
$response = json_decode($responseBody);
// возможно пришел некорректный формат
if (empty($response)) {
throw new Exception('Error: Broken json format for order. ' . PHP_EOL .
var_export($order, true));
}
// заказ не принят API
if (!$response->success) {
throw new Exception('Invalid: Order processing error. ' .
PHP_EOL . var_export($order, true));
}
/**
* логируем данные об обработке заказа         * @see http://php.net/manual/ru/function.file-put-contents.php
*/
file_put_contents(
__DIR__ . '/order.success.log',
date('Y.m.d H:i:s') .' '. $responseBody,
FILE_APPEND
);
curl_close($curl);
header('Location: order.html'); //тут прописываем название нашей страницы спасибо, на которую пользователь попадет после отправки заявки
} catch (Exception $e) {
/**
* логируем ошибку        * @see http://php.net/manual/ru/function.file-put-contents.php
*/
file_put_contents(
__DIR__ . '/order.error.log',
date('Y.m.d H:i:s') .' '. $e->getMessage() . PHP_EOL . $e->getTraceAsString(),
FILE_APPEND
);
}

Как видите, все данные мы принимаем из массива POST и отправляем их cURL-ом на сервер CPAgetti, после чего либо принимаем и записываем в лог ошибку если вдруг заявка не принята, или же перенаправляем пользователя на нашу страницу спасибо и пишем в лог данные об успешной обработке заказа. Перенаправление на страницу спасибо выглядит так header(‘Location: order.html’), в коде я эту строку прокомментировал, она под номером 71. Обращаю ваше внимание на то что api-ключ нужно запрашивать у вашего менеджера. На этом все по отправке заявок по api в CPAgetti, если будут вопросы или замечания обязательно пишите в комментариях.

Перейдя по кнопке ниже, вы сможете ввести необходимые данные и скачать готовый обработчик, полностью настроенный для передачи заявок по api в CPAgetti.

О программе Макс (админ)

Смотрите также

api everad

Отправка заявок по API в Everad

Продолжаю серию статей по отправке заявок по api в различные партнерские сети. Сегодня у нас речь пойдет об апи everad, куда мы настроим отправку сразу двумя способами.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.