Интеграция c смс агрегатором SMS Dostup
SMS Dostup |
![]() |
Скрипт партнерской программы легко интегрируется с смс биллингами.
Для примера возьмём стандартный СМС-замок от SMS Dostup. Его можно скачать по этой ссылке http://www.smsdostup.ru/_scripts/private_zone.zip.
Для описанного ниже способа интеграции использовался эта версия скрипта, вы можете сравнить контрольную сумму, чтобы узнать, изменился ли скрипт, предоставляемый смс-доступом.
Используя оригинальные файлы и патч, можно получить изменённую версию одной командой “patch -p 1 <../private_zone.patch” Не забудьте изменить пути к скриптам на свои собственные.
Пошаговое описание интеграции
1. Зарегистрируйтесь на сервисе http://www.smsdostup.ru и настройте скрипт “смс-замок”.
2. Добавьте на все страницы, куда предполагается направлять посетителей, стандартный скрипт учета кликов (лучше всего добавить в футер шаблона страниц)
<script id="pap_x2s6df8d" src="http://site.ru/[путь_к_скрипту_партнерки]/scripts/clickjs.php" type="text/javascript"></script> <script type="text/javascript">papTrack();</script>
3. При получении смс мы собираем нужную информацию о ней (доход, короткий номер и всё остальное, что передадим в партнёрку) и записываем в файл _codes/[password].sms_info, где [password] - пароль сгенерированный для пользователя и отправленный в ответной смс. К обработчику обращается сервер СМС-Доступа, информации об отправителе смс у нас
нет. Редактируйте файл smsd-billing.php, добавив после 37-й строки следующее:
// Нам пришло уведомление от СМС-Доступа о смске. Соберём нужную информацию и запишем в файл. Воспользуемся ею позже, // когда пользователь введёт пароль на сайте. Сейчас мы ещё не можем связать пользователя (и его рефера) и смс. $sms_info = array(); // Пересчитываем из рублей в доллары. $sms_info['income'] = $_POST['_sms_price'] / $_POST['_sms_exchrate']; $sms_info['order_id'] = $_POST['_sms_id']; $sms_info['product_id'] = $_POST['_sms_message']; $sms_info['short_number'] = $_POST['_sms_number']; $sms_info['operator'] = $_POST['_sms_operator']; $sms_info['abonent_number'] = $_POST['_sms_phone']; file_put_contents($config_global['_system_config']['codes_folder'] . '/' . $code . '.sms_info', serialize($sms_info));
4. Когда вводится пароль, мы проверяем его, если правильный, то ищем файл
_codes/[password].sms_info. Если такой есть, значит, пароль введён
впервые, и нам нужно зарегистрировать смс (после регистрации файл
будет удалён). Получим ID партнёра, который привёл посетителя:
В файле smsd-verification.php после
# Код найден
else {
добавляем
$sms_info_filename = $config_global['_system_config']['codes_folder'] . '/' . $_POST['form_code'] . '.sms_info';
// После регистрации смс файл .sms_info удаляется.
if (file_exists($sms_info_filename))
{
$sms_info = unserialize(file_get_contents($sms_info_filename));
require_once '../[путь_к_скрипту_партнерки]/api/PapApi.class.php';
$session = new Gpf_Api_Session('http://site.ru/[путь_к_скрипту_партнерки]/scripts/server.php');
$click_tracker = new Pap_Api_ClickTracker($session);
// Если рефера нет, то всё равно зарегистрируем смс, используя %NOBODY% как ID партнёра.
// PostAffiliatePro позволяет подхватывать и учитывать ничейные лиды (см. Конфигурация -> Настройки отслеживания).
$partner_id = '%NOBODY%';
if ($click_tracker->getAffiliate() != NULL)
{
$partner_id = $click_tracker->getAffiliate()->getValue('refid');
}
//Отправляем информацию в PostAffiliatePro:
$sale_tracker = new Pap_Api_SaleTracker('http://site.ru/[путь_к_скрипту_партнерки]/scripts/sale.php');
$sale = $sale_tracker->createSale();
$sale->setTotalCost($sms_info['income']);// Не стоимость для пользователя, но чистый доход.
$sale->setProductID($sms_info['product_id']);// Текст смски.
$sale->setOrderID($sms_info['order_id']);// Внутренний номер смс в СМС-Доступе.
$sale->setAffiliateID($partner_id);
$sale->setData1($sms_info['short_number']);
$sale->setData2($sms_info['operator']);
$sale->setData3($sms_info['abonent_number']);
$sale_tracker->register();
// удаляем файл .sms_info
unlink($sms_info_filename);
}
Или Вы можете просто скачать модифицированные файлы и заменить ими файлы на сервере. Не забудьте изменить пути к скриптам на свои собственные.
5. Добавить текст смски в соответствующую кампанию.
Мы регистрируем как product_id текст смски, а Post Affiliate Pro выбирает кампанию, для которой назначен этот ID (см. Кампании -> Работа с кампаниями -> Редактировать -> Редактировать информацию -> Совпадение ID товара).
Обратите внимание, что комиссия начисляется только после ввода пароля на сайте.
Вы можете тестировать работу скрипта без отправки смс в личном кабинете на smsdostup.ru (SMS-услуги -> Список проектов -> Проверить скрипт-обработчик проекта). При тестировании СМС Доступ передает дополнительный параметр _is_debug == 1 и предлагает не учитывать в статистике такие запросы. В данном случае, чтобы иметь удобный способ тестирования интеграции этот параметр игнорируется. Учтите это при анализе статистики.
Для того, чтобы статистика отображала все продажи, а не только партнерские, нужно активировать в настройках (Конфигурация -> Настройки отслеживания) сохранение продаж без рефера. Таким образом будет видно откуда приходят все пользователи, какова доля партнерских продаж в общих продажах сайта и другая статистика.




