Действия

Документация

Материал из CPA Trafa Red

Версия от 13:21, 26 июня 2017; Root (обсуждение | вклад) (III. Получение информации о заказах)

Отправка лидов
I. Установка на лендинге спец. кода
II. Пример использования спец. кода
Postback ссылка
Работа с API
I. Общая информация
II. Получение списка доступных Офферов
III. Получение информации о заказах
IV. Пример ответа
V. Отправка заказов Парковка доменов

III. Получение информации о заказах


Метод для получения информации о заказах: getOrdersInfo.
Реализовано несколько фильтров для получения информации (поле filter_by)

  • date - Для фильтрации по дате
  • date_range - Для фильтрации по диапазону дат
  • ids - Для фильтрации по списку ID заказов
  • campaign - Для фильтрации по имени кампании


Для фильтрации по дате нужно дополнительно передать аттрибут date в формате Y-m-d.
Для фильтрации по диапазону дат указать date_from и date_to в формате Y-m-d.
Для фильтрации по ID нужно дополнительно передать аттрибут ids ids с массивом натуральных чисел больше нуля.
Для фильтрации по имени кампании нужно дополнительно передать аттрибут campaign с именем кампании.


Фильтрация по дате:

$uid = ""; // Ваш UID
$key = ""; // Ваш ключь

$post = array(
    "filter_by" => "date",
    "date" => "2017-06-23"
);

$url = str_replace(array("{method}", "{uid}", "{key}"), array("getOrdersInfo", $uid, $key), "http://cpa.trafa.red/Api/{method}?uid={uid}&key={key}");

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Pragma: no-cache'));
$result = curl_exec($ch);
curl_close($ch);

var_dump(json_decode($result, true));

Фильтрация по диапазону дат:

$uid = ""; // Ваш UID
$key = ""; // Ваш ключь

$post = array(
    "filter_by" => "date_range",
    "date_from" => "2017-06-16",
    "date_to" => "2017-06-23"
);

$url = str_replace(array("{method}", "{uid}", "{key}"), array("getOrdersInfo", $uid, $key), "http://cpa.trafa.red/Api/{method}?uid={uid}&key={key}");

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Pragma: no-cache'));
$result = curl_exec($ch);
curl_close($ch);

var_dump(json_decode($result, true));

Фильтрация по ID

$uid = ""; // Ваш UID
$key = ""; // Ваш ключь

$post = array(
    "filter_by" => "ids",
    "ids" => array(1, 2, 3, 4)
);

$url = str_replace(array("{method}", "{uid}", "{key}"), array("getOrdersInfo", $uid, $key), "http://cpa.trafa.red/Api/{method}?uid={uid}&key={key}");

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Pragma: no-cache'));
$result = curl_exec($ch);
curl_close($ch);

var_dump(json_decode($result, true));

Фильтрация по имени кампании:

$uid = ""; // Ваш UID
$key = ""; // Ваш ключь

$post = array(
    "filter_by" => "campaign",
    "campaign" => "esH9fgrp"
);

$url = str_replace(array("{method}", "{uid}", "{key}"), array("getOrdersInfo", $uid, $key), "http://cpa.trafa.red/Api/{method}?uid={uid}&key={key}");

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Pragma: no-cache'));
$result = curl_exec($ch);
curl_close($ch);

var_dump(json_decode($result, true));

Дополнительно в POST можно передать атрибут limit для ограничения количества возвращаемых результатов. Допустимое значение от 1 до 1000.
Внимание! Во измбежание нагрузки, системой ограничено максимальное количество возвращаемых результатов! Количество результатов всегда будет не больше 1000.

IV. Пример ответа


Пример ответа об ошибке:

Array (
    [success] => FALSE
    [msg] => The filter_by field must be one of: date,date_range,ids,campaign.
)

Пример ответа с пустым результатом:

Array (
    [success] => TRUE
    [msg] => No results found
    [data] => Array (
        )
)

Пример ответа об успешном выполнении запроса:

Array (
    [success] => TRUE
    [msg] => OK
    [data] => Array (
            [100009] => Array (
                    [order_id] => 100009
                    [client_country] => ua
                    [client_fio] => Test Order 1
                    [client_phone] => 12345*7
                    [client_address] => 
                    [order_offer] => medical_braslet
                    [order_count] => 
                    [landing_url] => http://medical.landos.info/?utm_campaign=jWC6fN1h&utm_source=test&utm_content=test&sub_id=1
                    [system_status] => -1
                    [send_status] => 1
                    [payment_status] => 0
                    [payment_status_msg] => Не выплачено
                    [description] => Incorrect phone number 1234567
                    [campaign] => jWC6fN1h
                    [system_status_msg] => Ошибка
                    [send_status_msg] => ---
                )
            [100010] => Array (
                    [order_id] => 100010
                    [client_country] => ua
                    [client_fio] => Test Order 2
                    [client_phone] => 12345*7
                    [client_address] => 
                    [order_offer] => medical_braslet
                    [order_count] => 
                    [landing_url] => http://medical.landos.info/?utm_campaign=jWC6fN1h&utm_source=test&utm_content=test&sub_id=2
                    [system_status] => -1
                    [send_status] => 1
                    [payment_status] => 0
                    [payment_status_msg] => Не выплачено
                    [description] => Incorrect phone number 1234567
                    [campaign] => jWC6fN1h
                    [system_status_msg] => Ошибка
                    [send_status_msg] => ---
                )
            [100011] => Array (
                    [order_id] => 100011
                    [client_country] => ua
                    [client_fio] => Test Order 3
                    [client_phone] => 12345*7
                    [client_address] => 
                    [order_offer] => medical_braslet
                    [order_count] => 
                    [landing_url] => http://medical.landos.info/?utm_campaign=jWC6fN1h&utm_source=test&utm_content=test&sub_id=3
                    [system_status] => -1
                    [send_status] => 1
                    [payment_status] => 0
                    [payment_status_msg] => Не выплачено
                    [description] => Incorrect phone number 1234567
                    [campaign] => jWC6fN1h
                    [system_status_msg] => Ошибка
                    [send_status_msg] => ---
                )
        )
)

V. Отправка заказов


URL = http://cpa.trafa.red/api/setOrder?uid=YYYY&key=XXXXXX
где uid и key можно найти у себя в профайле, после регистрации на cpa.trafa.red

На указаный адрес отправлять запросы методом POST. Все ответы будут в формате json.

Можно отправлять от 1 до 100 заказов за один раз. Если больше, - они просто не будут отрабатыватся.

Поля закаказа:

  • country - Страна в формате Alpha-2 ISO 3166-1 в нижнем регистре (*обязательное)
  • fio - ФИО (*)
  • phone - Номер телефона (*)
  • offer - Техническое название оффера. Например: brown_liquid. Список доступных офферов можно взять отсюда /Api/getOffers (*)
  • campaign - Название кампании, генерируется на стороне трафареда (*)
  • address - Адрес
  • price - Цена
  • count - Количество
  • offer_attribute - Свойство оффера "аттрибут"
  • offer_color - Свойство оффера "цвет"
  • offer_size - Свойство оффера "размер"
  • offer_type - Свойство оффера "тип"
  • offer_vendor - Свойство оффера "бренд"
  • utm_campaign - Метка utm_campaign
  • utm_content - Метка utm_content
  • utm_source - Метка utm_source
  • utm_medium - Метка utm_medium
  • utm_term - Метка utm_term
  • sub_id - Метка sub_id
  • landing_url - Полный URL страницы заказа
  • time - Время оформления заказа. Формат: Y-m-d H:i:s
  • ip - IP клиента

Масивы с даными заказа оберывается в глобальный масив orders.



Пример запроса на php :

$post = array(
	'orders' => array(
		array(
			'country'           => "ua",
			'fio'               => "FIO 1",
			'phone'             => "0941234567",
			'offer'             => "free_fuel_econom",
			'campaign'          => "6RZd82qsF",
			'utm_campaign'      => "",
			'utm_content'       => "",
			'utm_source'        => "",
			'utm_medium'        => "",
			'utm_term'          => "",
			'sub_id'            => "",
			'landing_url'       => "",
			'time'              => "",
			'ip'                => "",
			'offer_vendor'      => "",
			'offer_type'        => "",
			'offer_size'        => "",
			'offer_color'       => "",
			'offer_attribute'   => "",
			'count'             => "",
			'price'             => "",
			'address'           => "",
		),
		array(
			'country'           => "kg",
			'fio'               => "FIO 2",
			'phone'             => "0941234567",
			'offer'             => "free_fuel_econom",
			'campaign'          => "6RZd82qsF",
			'address'           => "",
			'price'             => "",
			'count'             => "",
			'offer_attribute'   => "",
			'offer_color'       => "",
			'offer_size'        => "",
			'offer_type'        => "",
			'offer_vendor'      => "",
			'utm_campaign'      => "",
			'utm_content'       => "",
			'utm_source'        => "",
			'utm_medium'        => "",
			'utm_term'          => "",
			'sub_id'            => "",
			'landing_url'       => "",
			'time'              => "",
			'ip'                => "",
		),
	)
);

$postFields = http_build_query($post);
$curl = curl_init();
curl_setopt_array($curl, array(
	CURLOPT_RETURNTRANSFER => 1,
	CURLOPT_URL => 'http://cpa.trafa.red/api/setOrder?uid=YYYY&key=XXXXXXX',
	CURLOPT_POST => 1,
	CURLOPT_POSTFIELDS => $postFields
));
$resp = curl_exec($curl);
curl_close($curl);


Варианты ответа
Если всё прошло гладко:
[{"success":true,"id":191776,"msg":1},{"success":true,"id":191777,"msg":1}]
Если есть ошибка:
[{"success":false,"id":false,"msg":"Wrong Offer name. Must be > 3 chars AND must exist"},{"success":false,"id":false,"msg":"Unknown country code"}
Идёт проверка по каждому обязательному полю.