<script src="https://***.marketingcrm.online/frame/metric" type="text/javascript"></script>
<script type="text/javascript">
getregKey('js_key');
</script>
Пример запроса на авторизацию на 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_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" : "Поле день рождение обязательно для заполнения",
}
}
Успешный запрос
{
"error" : "OK",
"system_message" : "",
"user_message" : "",
"access_token" : "123"
}
Ошибочный запрос
{
"error" : "ERROR",
"system_message" : "",
"user_message" : "Ваш номер телефона не зарегистрирован",
"access_token" : ""
}
Пример обработки полученного токена:
function saveToken() {
$request = json_decode(file_get_contents('php://input'));
$userToken = $request->token;
$userLogin = $request->login;
$sign = $request->sign;
$signKey = 'sign_key';//Получается в MCRM
if($sign == hash_hmac('sha256', $userToken, $signKey)) {
//Сохраняем себе $userToken для $userLogin и используем в дальнейших запросах
}
}
Пример ответа
{
"error" : "OK",
"system_message" : "",
"user_message" : "Ваш пароль отправлен по СМС"
}
Пример ответа
{
"error" : "OK",
"system_message" : "",
}
Пример ответа
{
"error" : "OK",
"system_message" : "",
"user_message" : "На Ваш номер отправлен код"
}
Пример ответа
Ошибка
{
"error" : "ERROR",
"summ" : -1,
"system_message" : "Не найдет пользователь по access_token"
}
Успех
{
"error" : "OK",
"summ" : 156,
"system_message" : ""
}
Ошибка
{
"error" : "ERROR",
"system_message" : "",
"user_message" : "Сумма не может быть больше баланса"
}
Успех
{
"error" : "OK",
"system_message" : "",
"user_message" : ""
}
Пример ответа:
{
"session_id": null,
"card": "1240240",
"firstname": "Иванов",
"lastname": "Иван",
"phone": "9029901813",
"email": "zhnik@akrk.info",
"city": "Москва",
"district_home": "20",
"district_work": "21",
"gender": "male",
"birthdate": "1983-08-27",
"user_id": "666",
"code": null,
"change": null,
"vipCoefficient": "1.5",
"params": [{
"parameter": "Name 1",
"value": "Value 1"
}, {
"parameter": "Name 2",
"value": null
}
],
"segments": [
"Виртуальный служебный сегмент",
"Карты 10%"
]
}
Пример ответа:
{
"count" : 122
}
Пример ответа:
[
{
"id": 123,
"request": "",
"trans_type": 1,
"resto_id": 1,
"date": "2018-04-05 14:53",
"order_summ": 1056,
"bonus_summ": 10.56,
"text_comment": "Комментарий к транзакции",
"account": -1,
"account_name": "Основной счёт"
},
{
"request": "",
"id": 124,
"request": 32167,
"trans_type": 2,
"resto_id": 2,
"date": "2018-04-05 14:53",
"order_summ": 0,
"bonus_summ": -67,
"text_comment": "Комментарий к транзакции",
"account": 1,
"account_name": "Акционный счёт"
}
]
Пример ответа:
[
{
"category" : "Роллы",
"position_name" : "Ролл Дракон",
"position_article" : "757800",
"price" : 250,
"sum" : 500,
"quantity" : 2,
"coefficient" : 1
}
]
Пример ответа:
{
1: "Транзакция.Место",
2: "Бонус.Акция",
3: "Бонус.Админ"
}
Пример ответа:
[
{"id" : 1, "name" : "Ресторан"},
{"id" : 2, "name" : "Ресторан 2"},
]
Пример ответа:
{
"error": "OK",
"system_message" : "",
"user_message" : "",
data: [
{
"id" : "1",
"name": "Район 1"
},{
"id" : "2",
"name": "Район 2"
}]
}
$curl_opts = array(
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CONNECTTIMEOUT => 2,
CURLOPT_TIMEOUT => 60,
CURLOPT_HEADER => 0,
CURLOPT_VERBOSE => 0,
CURLOPT_RETURNTRANSFER => true, // return result instead of echoing
CURLOPT_CUSTOMREQUEST => 'GET'
);
$curl = curl_init($url);
$headers[] = 'Accept: */*';
$headers[] = 'Content-Type: application/json; charset=utf-8';
$curl_opts[CURLOPT_HTTPHEADER] = $headers;
foreach ($curl_opts as $curl_opt => $val)
curl_setopt($curl, $curl_opt, $val);
$response = curl_exec($curl);
$meta = curl_getinfo($curl);
$err = curl_error($curl);
curl_close($curl);
if ($meta['http_code'] >= 400)
throw new Exception($response);
if ($err) {
throw new Exception($err);
}
return $response;