Marketing crm pro

REST API

документация для интеграции сайтов и приложений
Введение

Выполнение запросов к API осуществляется по следующим принципам:

  1. Запрос делается на адрес BaseUrl + название метода

  2. BaseUrl будет https://marketingcrm.online/userapi/

  3. Во всех методах будет передаваться приватный ключ заведения. Имя параметра resto_key.

  4. Во всех методах для конкретного пользователя требуется указать в URL параметр access_token, который получается в результате вызова метода userauth

  5. Время жизни сессии – 2 недели бездействия. При любом действии с использованием access_token ее время жизни продлевается на следующие 2 недели.

  6. Параметры запросов передаются через GET, а данные через POST
То есть для получения списка транзакций у текущего пользователя нужно вызвать:

https://marketingcrm.online/userapi/gettransactionlist?resto_key=........&access_token=.......&page_number=1&page_count=50


Идентификатор сессии
Чтобы использовать аналитику посещения сайта нужно установить счетчик.
Код для установки счетчика
Значение reg_key нужно получить у администратора MCRM
<script src="https://marketingcrm.online/js/scriptx.js" type="text/javascript"></script>
<script type="text/javascript">
getregKey('reg_key');
</script>

Также после установки счетчика становится доступной переменная идентификатор сессии.
Для доступа нужно взять из coockie значение переменной mcrm_sid. Везде, где требуется переменная sid - требуется это значение из coockie
Пример запроса на авторизацию на PHP
//Готовим данные POST для авторизации
$request = array(
    'login' => 'test',
    'password' => '123',
	'sid' => $_COOKIE["mcrm_sid"]
);
        
//Готовим CURL для запроса авторизации
$curlHandle = curl_init('https://marketingcrm.online/userapi/userauth?resto_key=333');

curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $request);

$execResult = curl_exec($curlHandle);

$resultOrder = json_decode($execResult, true);            
print_r($resultOrder);

Результат выполнения будет следующим (для неверных логина и пароля):
Array
(
    [error] => ERROR
    [system_message] => 
    [user_message] => Пользователь не существует
    [access_token] => 
)

Результат успешной авторизации:
Array
(
    [error] => OK
    [system_message] => 
    [user_message] => 
    [access_token] => a51df5f3a17d1ac45220d8b45fbd8a8d
)
register
регистрация пользователя

Переменные ожидаются в POST (см.таблицу ниже)

Важно: в процессе заполнения анкеты нужно вызвать метод API verify, чтобы на указанный телефон была отправлена СМС с кодом, который он добавит в code

Выход:

  • register_status – OK или ERROR
  • access_token – токен после успешной регистрации. Пользователь сразу становится авторизованным.
  • field_status – статус для каждого поля OK или ERROR, чтобы визуально пометить ошибочные поля.
  • error_list – список ошибок для вывода пользователю.
Успешный запрос
{
	"register_status" : "OK",
	"access_token" : "123",
	"field_status" : {
		"session_id" : "OK",
		"card" : "OK",
		"firstname" : "OK",
		"lastname" : "OK",
		"phone" : "OK",
		"email" : "OK",
		"district_home" : "OK",
		"district_work" : "OK",
		"gender" : "OK",
		"birthdate" : "OK",
		"code" : "OK",
	},
	"error_list" : {}	
}

Ошибочный запрос
{
	"register_status" : "ERROR",
	"access_token" : "",
	"field_status" : {
		"session_id" : "OK",
		"card" : "OK",
		"firstname" : "OK",
		"lastname" : "OK",
		"phone" : "ERROR",
		"email" : "OK",
		"district_home" : "OK",
		"district_work" : "ERROR",
		"gender" : "OK",
		"birthdate" : "ERROR",
		"code" : "OK",
	},
	"error_list" : {
		"email" : "E-mail обязателен для заполнения",
		"phone" : "Введите мобильный телефон в любом формате",
		"district_work" : "Район работы обязателен для заполнения",
		"birthdate" : "Поле день рождение обязательно для заполнения",
	}
}
userauth
авторизация зарегистрированного пользователя

Вход:

  • login (POST) – номер телефона в любом формате
  • password (POST) – пароль
  • sid (POST) – идентификатор сессии
Выход:

  • error – OK, если все хорошо, либо ERROR в случае ошибки.
  • system_message – системное описание ошибки, для логирования на стороне клиента
  • user_message – сообщение об ошибке для отображения пользователю.
  • access_token – токен доступа для всех пользовательских данных.
Важно: после получения access_token он должен быть записан в coockies под именем mcrm_access_token.
Успешный запрос
{
	"error" : "OK",
	"system_message" : "",
	"user_message" : "",
	"access_token" : "123"
}

Ошибочный запрос
{
	"error" : "ERROR",
	"system_message" : "",
	"user_message" : "Ваш номер телефона не зарегистрирован",
	"access_token" : ""
}
recover
восстановление пароля

После вызова пользователю будет отправлена СМС с паролем для входа.

Вход:

  • login (POST) – номер телефона или номер карты.
Выход:

  • error – OK, если все хорошо, либо ERROR в случае ошибки.
  • system_message – системное описание ошибки, для логирования на стороне клиента
  • user_message – сообщение об ошибке для отображения пользователю.
Пример ответа
{
	"error" : "OK",
	"system_message" : "",
	"user_message" : "Ваш пароль отправлен по СМС"
}
verify
запрос СМС с кодом проверки

Вход:

  • phone (POST) – номер телефона
Выход:

  • error – OK, если все хорошо, либо ERROR в случае ошибки.
  • system_message – системное описание ошибки, для логирования на стороне клиента.
  • user_message – сообщение об ошибке для отображения пользователю.
Пример ответа
{
	"error" : "OK",
	"system_message" : "",
	"user_message" : "На Ваш номер отправлен код"
}
getbalance
получить баланс карты

Вход:

  • sid (POST) – идентификатор сессии (не обязательно)

Выход:

  • error – OK, если все хорошо, либо ERROR в случае ошибки.
  • summ – сумма на карте в рублях
  • system_message – системное описание ошибки.
Пример ответа
Ошибка
{
	"error" : "ERROR",
	"summ" : -1,
	"system_message" : "Не найдет пользователь по access_token"
}

Успех
{
	"error" : "OK",
	"summ" : 156,
	"system_message" : ""
}
payorder
оплата бонусами

Вызывается, когда пользователь делает оплату бонусами на сайте.

Вход:

  • sale_number (POST) – номер заказа на сайте
  • summ (POST) – сумма списания
  • promo (POST) – промокод (не обязательно)
  • sid (POST) – идентификатор сессии (не обязательно)

Выход:

  • error – OK, если все хорошо, либо ERROR в случае ошибки.
  • system_message – системное описание ошибки
  • user_message – описание ошибки для вывода пользователю
Ошибка
{
	"error" : "ERROR",
	"system_message" : "",
	"user_message" : "Сумма не может быть больше баланса"
}

Успех
{
	"error" : "OK",
	"system_message" : "",
	"user_message" : ""
}
getuserdata
получить пользовательскую анкету

Возвращает пользовательскую анкету в формате JSON

Вход: sid (POST) – идентификатор сессии (не обязательно)
userupdate
обновление анкеты пользователя

Функция аналогична register, кроме следующих различий:

Требуется access_token в GET; Не требуется code; Не требуется change; sid (POST) – идентификатор сессии (не обязательно)

Требуется access_token в GET;
Не требуется code;
Не требуется change;
gettransactioncount
Узнать количество транзакций для постраничного вывода

Вход: пусто
Выход:
count – количество транзакций, на основе которого будет сделана пагинация.
Пример ответа:
{
"count" : 122
}
gettransactionlist
получить список транзакций пользователя

Вход:

  • page_number (GET) – номер страницы с транзакциями. Если не указано, то 1.

  • page_count (GET) – количество транзакций на страницу. Если не указано, то 50.

Выход:

  • JSON массив транзакций
Пример ответа: 

{[ 

{ 

"date" : "2018-04-05 14:53", 

"order_summ" : 1056 

"bonus_summ" : 10.56 

}, 

{ 

"date" : "2018-04-05 14:53", 

"order_summ" : 0 

"bonus_summ" : -67 

} 

]} 
getdistrict
получить список районов

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

Вход: Ничего

Выход:

  • error – OK, если все хорошо, либо ERROR в случае ошибки.
  • system_message – системное описание ошибки, для логирования на стороне клиента.
  • user_message – сообщение об ошибке для отображения пользователю.
  • data – массив районов.

error – OK, если все хорошо, либо ERROR в случае ошибки.

system_message – системное описание ошибки, для логирования на стороне клиента.

user_message – сообщение об ошибке для отображения пользователю.

data – массив районов.
Пример ответа:
{
"error": "OK",
"system_message" : "",
	"user_message" : "",
data: [
{
"id" : "1",
	"name": "Район 1"
},{
	"id" : "2",
"name": "Район 2"
}]
}
getpopup
получить всплывающее окно (pop-up)

Получает сообщение для отображения во всплывающем окне.

Вход:

  • Пусто

Выход:

Либо пустой массив (если окон на отображение нету), либо текст окна в формате JSON:

  • id - идентификатор popup сообщения

  • subject - заголовок popup сообщения

  • message - текст popup сообщения
Сообщение будет выдаваться каждый раз, пока не будет помечено как прочитанное, или не истечет срок показа popup сообщения.


setpopupread
отметить pop-up как прочитанный

Вход:

  • popupid (POST) - идентификатор popup сообщения, полученный при getpopup

Выход:

  • error – OK, если все хорошо, либо ERROR в случае ошибки.

  • system_message – системное описание ошибки.

  • user_message – описание ошибки для вывода пользователю

getspecial
получить сообщения "Специально для Вас"

Вход:

  • Пусто


Выход:

Либо пустой массив (если окон на отображение нету), либо текст окна в формате JSON:

  • subject - заголовок сообщения

  • short_text - краткий текст сообщения

  • full_text - полный текст сообщения
Made on
Tilda