MyLivePage Affiliate Application Programming Interface
Партнёрский программный интерфейс MyLivePage
Общие сведения
Программный интерфейс позволяет осуществлять информационный обмен между продавцом и сервером регистрации продаж социальной сети MyLivePage.
Основные термины:
Продавец
Продавцом считается рекламодатель социальной сети MyLivePage, зарегистрировавший свой интернет-магазин по партнёрской программе.
Партнёрская программа
Партнёрской программой называется один из видов делового сотрудничества между рекламодателями и социальной сетью MyLivePage, при котором социальная сеть MyLivePage получает вознаграждение за продажи в интернет-магазине партнёра в виде процента от суммы продажи посетителем, пришедшим в интернет-магазин с одного из сайтов социальной сети MyLivePage.
Интернет-магазин
Интернет-магазин — это сайт, принимающий заказы на материальные или электронные товары и услуги от посетителей в режиме он-лайн.
Сервер регистрации продаж
Сервер регистрации продаж — это сайт, принадлежащий социальной сети MyLivePage, на котором регистрируются и обрабатываются операции, совершённые в интернет-магазинах партнёров.
Владелец сайта
Владельцем сайта считается зарегистрировавшийся в социальной сети MyLivePage пользователь.
Описание процесса

Ссылка на интернет-магазин партнёра, размещаемая на страницах владельца сайта, содержит идентификатор этого владельца. Пример ссылки на интернет-магазин:
http://internet-shop.ru/?mlp_user=NNNN,
где NNNN — это идентификатор владельца сайта (целое число).
Интернет-магазин обязан сохранить переданный идентификатор владельца сайта для последующих запросов о продаже. Вариант сохранения может быть выбран магазином самостоятельно. Возможные варианты хренения:
- Хранить идентификатор в базе данных в профиле пользователя
- Хранить в cookies браузера пользователя
Обязательное требование: при хранении идентификатора в cookies браузера требуется устанавливать время жизни не менее 1 года!
Примечение: Если посетитель попадает в Интернет-магазин повторно с другого сайта социальной сети MyLivePage, то рекомендуется обновлять идентификатор владельца сайта в cookies или базе данных, но это не является обязательным требованием.
Для осуществления обработки операций интернет-магазин должен сформировать ссылку определённого формата и с её помощью послать запрос на сервер регистрации продаж.
Поддерживаемые операции:
Б. Отмена продажи, зарегистрированной ранее
В. Запрос результата обработки ранее обработанной операции
А. Операция «Регистрация факта продажи» Операция «Регистрация факта продажи» состоит из двух фаз: инициирующий запрос из интернет-магазина на сервер регистрации продаж и подтверждающий запрос с сервера продаж в интернет-магазин.

| Имя параметра | Значение |
|---|---|
| action | Строка
Значение для этой операции : "Sell". |
| id | Целое число
Порядковый номер интернет-магазина, выдаваемый после регистрации его в качестве партнёрской программы. Номер можно узнать в панели «Partnership with MLP NV» (http://partners.mylivepage.net/) |
| mlp_user | Целое число
Порядковый номер владельца сайта в социальной сети MyLivePage, с которого пришёл посетитель, осуществивший покупку в Интернет-магазине |
| sum | Число с плавающей запятой
Сумма покупки в долларах США. Целая часть от дробной должна отделяться точкой |
| orderid | Целое число
Номер операции. Не должен повторяться |
Иллюстрация: Номер программы для подстановки в поле «id»
Интернет-магазин должен отправить запрос с этими параметрами по протоколу HTTP методом GET или POST по адресу http://partners.mylivepage.net/affiliate_click.
Пример ссылки: http://partners.mylivepage.net/affiliate_click?act...
| Текст ответа | Значение ответа |
|---|---|
| CREATE ORDER
PROCESSED SUCCESSFULLY | Запрос успешно обработан. |
| CREATE ORDER
ALLREADY PROCESSED | Запрос с такими параметрами уже был обработан ранее, повторная обработка невозможна. |
| CREATE ORDER
NOT CONFIRMED | Запрос не обработан по причине того, что Интернет-магазин не ответил на подтверждающий запрос или формата ответа неверный. Необходимо выяснить, отвечает ли Интернет-магазин на запросы о подтверждении и корректный ли формат ответа. |
| CREATE ORDER
NOT PROCESSED | Запрос не обработан по другим причинам. Необходимо повторить запрос с теми же параметрами позже. |
| CREATE ORDER
INCORRECT PARAMETER : fields' list | Запрос не обработан по причине некорректных значений параметров. В списке полей через запятую будут перечислены параметры, которые не указаны или указаны в неверном формате. Необходимо скорректировать параметры и повторить запрос. |
При получении этого запроса сервер регистрации продаж выполнит запрос на подтверждение операции продажи по протоколу HTTP методом GET.
Фаза 2. Формат запроса на подтверждение операции «Регистрация факта продажи»
Запрос будет выслан на адреса сайта интернет-магазина, зарегистрированный в партнёрской программе.
Формат параметров запроса на подтверждение операции
| Имя параметра | Значение |
|---|---|
| mlp_user | Строка
|
| orderid | Целое число
|
Пример: 1. Если Интернет-магазин выслал запрос вида
http://partners.mylivepage.net/affiliate_click?act...
2. Сервер регистрации продаж вышлет запрос вида
http://internet-shop.ru/?mlp_user=check&orderid=3
3. Интернет магазин должен ответить текстом следующего вида
Б. Отмена продажи, зарегистрированной ранее
Можно отменить ранее совершённую продажу, даже если комиссия уже выплачена партнёром. Операция полностью не реализована.
В. Запрос результата обработки ранее обработанной операции
Можно узнать результат ранее обработанной операции.
Библиотека функций для интеграции онлайн-магазинов с социальной сетью MyLivePage
Описание библиотеки функций для интеграции онлайн-магазинов с социальной сетью MyLivePage согласно MyLivePage Affiliate API Библиотека предназначена для проектов, написаных на языке программирования PHP.
Порядок установки:
1. Скачайте ZIP-архив с файлами библиотеки mlp_affiliate_api.zip (текущая версия : v.1.0.2)
2. Распакуйте архив и установите его на веб-сервере Вашего онлайн-магазина В архиве имеется папка "mlp", в которой находится файл "mlp_affiliate_api.php"
3. Настройте программное обеспечение онлайн-магазина
3.1. Определите глобальную константу _MLP_PROGRAMID - её значением должен стать идентификатор магазина.
Quote:
define('_MLP_PROGRAMID',####); |
Идентификатор магазина #### можно узнать в partners.mylivepage.net после добавления магазина в разделе "Партнёрство".
3.2. Подключите файл mlp_affiliate_api.php к Вашему онлайн-магазину, создайте объект *) для работы с платёжным сервером
Quote:
require_once('mlp/mlp_affiliate_api.php'); // правильно укажите путь к подключаемой библиотеке mlp_affiliate_api.php
$mlp_affliate_obj = new MLP_Affiliate(); // создать объкт для работы с платёжным сервером
// метод "process" сохранит в куки идентификатор mlp_user, если это новый посетитель с сайта MyLivePage,
// и автоматически отработает ответ платёжному серверу MyLivePage при запросе подтверждения операции "SELL" (продажа)
$mlp_affliate_obj->process(); |
Если объект создаётся в неинтерективном процессе (например, в cron скрипте, то выполнять метод "process" не нужно). Обычно определение константы _MLP_PROGRAMID и подключение билиотеки выполняется в индексном файле онлайн-магазина, скорее всего это файл index.php в той директории, где расположено программное обеспечение Вашего онлайн-магазина. Для корректной обработки ответа платёжному серверу MyLivePage на запрос подтверждения операции "SELL", необходимо вызывать метод process до начала вывода в поток ответа из других частей онлайн-магазина. Если сервер MyLivePage обнаружит ответ, не совпадающий с форматом, описанным в MLP Affiliate API, подтверждение не будет считаться корректным.
Примечание:
- ) При создании объекта можно передать ему в качестве параметра ассоциативный массив (хэш) опций, которые влияют на работу. Не обязательно указывать все возможные опции, значения по умолчанию подбираются достаточно корректно.
Quote:
$options = array( 'testmode' => false, 'request_type' => 'file_get_contents', 'timeout' => 6, 'query_parameter' => 'mlp_user', 'cookie_parameter' => 'mlp_user', 'host' => '', 'verbose' => false, 'debug' => false ) $mlp_affliate_obj = new MLP_Affiliate($options); |
Описание опций:
- 'testmode' - при значении TRUE включается режим тестовых команд. Платежи в этом режиме будут обработаны и показаны в статистике как обычные, но по ним не будет начислена комиссия. По умолчанию режим выключен.
- 'request_type' - способ соединений с сервером MyLivePage, варианты : 'file_get_contents', 'curl' или 'socket'. По умолчанию режим подбирается автоматически, исходя из возможностей веб-сервера.
- 'timeout' - время ожидания ответа от сервера MyLivePage, если выбранный способ соединений поддерживает этот параметр. По умолчанию 10 секунд.
- 'query_parameter' - имя параметра в URL, в котором задаётся идентификатор владельца сайта социальной сети MyLivePage, с которого пришёл посетитель. По умолчанию параметр имеет имя "mlp_user".
- 'cookie_parameter' - имя параметра в cookies браузера, под которым сохранится идентификатор владельца сайта социальной сети MyLivePage. По умолчанию параметр имеет имя "mlp_user".
- 'host' - имя хоста, для которого в cookies будет сохранен идентификатор владельца сайта социальной сети MyLivePage. По умолчанию автоматически подбирается имя домена из текущего URL без приставки www, если такая обнаружена. Примеры ниже:
Адрес онлайн-магазина Автоматически определяемый хост http://example.com/
или
http://www.example.com/example.com http://ru.example.com/ ru.example.com http://ru.example.com/shop/ ru.example.com http://ru.example.com/?module=shop ru.example.com - 'verbose' - при значении TRUE включается вывод оповещений об ошибках работы в стандартный поток ввода/вывода. По умолчанию режим выключен.
- 'debug' - при значении TRUE включается вывод отладочных сообщений. При выводе отладочных сообщений подтверждения операции "SELL" работать не будет, потому что в ответ серверу MyLivePage попадёт и текст отладочных сообщений. По умолчанию режим выключен.
3.3. Создайте *) функцию "get_order", которая могла бы вернуть информацию о заказе, с деланном в Вашем онлайн-магазине, в виде ассоциативного массива.
Quote:
/** Эта функция будет использована для доступа к базе данных с совершёнными заказами для получения информации об одном заказе.
* Вы должны изменить эту функцию в соответствии с архитектурой базы данных и логикой программного обеспечения онлайн-магазина
*
* Возможно, потребуется соединение с базой данных
*
** Входные параметры
* $orderid - целое число, идентификатор заказа. Число должно быть уникальным для Вашего онлайн магазина
*
** Результат
* ассоциативный массив, в котором определены следующие обязательные узлы (ключи)
* 'error' - логическое значение - TRUE, если произошла какая-либо ошибка
* 'mlp_user' - целочисленное значение - Идентификатор владельца сайта социальной сети MyLivePage, с которого к Вам пришёл покупатель
* 'sum' - значение в виде числа с плавающей запятой - Сумма заказа
**/
function get_order($orderid)
{
//необходимо получить данные о заказе по идентификатору заказа $orderid
/* здесь предполагаются какие-нибудь запросы к базе данных ... */
// установите переменные $error, $mlp_user, $sum
$error = false; // установите TRUE, если заказа не найден, не относится к заказам через MLP или не готов к обработке
$mlp_user = -1; // замените на найденное в параметрах заказа или покупателя значение
$sum = 0; // замените на найденное в параметрах заказа значение
return array('error'=>$error,'mlp_user'=>$mlp_user,'sum'=>$sum); // оставьте так
} |
Примечание:
- ) Согласно логике работы PHP, функция "get_order" должна быть определена раньше, чем она используется, поэтому необходимо, чтобы она была определена до строки $mlp_affliate_obj->process();
3.4. Найдите в программном обеспечении онлайн-магазина место, в котором сохраняется заказ, оформленный посетителем сайта. В этой функции необходимо в параметры заказа или покупателя записать идентификатор владельца сайта социальной сети MyLivePage, с которого пришёл покупатель, если конечно он пришёл именно оттуда. Ниже приведён пример модификации такой функции:
Quote:
// Эта функция в программном обеспечении Вашего онлайн-магазина может называться как угодно.
// Нам название этой функции неизвестно, пожалуйста найдите её сами
function some_function_to_store_ORDER( ... )
{
// ...
global $mlp_affliate_obj; // это объект для работы с платёжным сервером
$mlp_userid = $mlp_affliate_obj->mlp_user_get(); // эта функция берёт идентификатор из cookies браузера пользователя
if (false!==$mlp_userid) // этот код должен сработать только если идентификатор был найден в cookies
{
/* вот тут надо сохранить значение переменной $mlp_userid в параметрах заказа или покупателя в базу данных */
/* возможно, надо выполнить какие-нибудь запросы в базу данных ... */
}
// ...
} |
3.5. Найдите в программном обеспечении онлайн-магазина место, в котором оформленному заказу ставится признак "Оплачен". В этой функции необходимо уведомить сервер MyLivePage о совершённой продаже.
Quote:
// Когда заказ становится ОПЛАЧЕННЫМ (автоматически при использовании электронных денег
// или электронных рассчётных карт или вручную при использовании почтовых переводов или банковских переводов), необходимо уведомить об этом MyLivePage
// Эта функция в программном обеспечении Вашего онлайн-магазина может называться как угодно.
// Нам название этой функции неизвестно, пожалуйста найдите её сами
function some_function_to_make_ORDER_PAID( ... )
{
// ...
//допустим, что переменная $orderid хранит значение заказа
global $mlp_affliate_obj; // это объект для работы с платёжным сервером
$response = $mlp_affliate_obj->sell_request($orderid); // выполнить запрос на платёжный сервер
// переменная $response будет установлена в TRUE если запрос обработан успешно иначе надо повторить запрос позже
/* возможно, надо выполнить какие-нибудь запросы в базу данных ... */
// ...
} |
4. После произведённых изменений можно протестировать работу онлайн-магазина совместно с сетью MyLivePage. Режим тестирования включается опцией 'testmode' при создании объекта для связи с платёжным сервером MyLivePage следующим образом
Quote:
| $mlp_affliate_obj = new MLP_Affiliate(array('testmode'=>true)); |
Примерный порядок тестирования будет изложен чуть позже. После окончания тестирования не забудьте выключить режим тестирования.



