Не нашли ответы на свои вопросы в наших публикациях? Задайте вопрос в службу техподдержки!
Вы можете ознакомиться с Видео и ниже с описанием
Настройка:
предварительно настройте использование restAPI в настройках модуля
ВНИМАНИЕ: обязательно указывайте данные для авторизации
Авторизация
Авторизация проходит в соответствии с настройками restAPI, установленными в настройках модуля.
Авторизация по логину и паролю
Авторизация по ключу
Также можно указать авторизацию по логину паролю и ключу одновременно!
Передача данных авторизации производится передачей соответствующих заголовков
Authorization-Token – ключ
Authorization-Login - логин
Authorization-Password - пароль
Получить список бонусных счетов пользователей
Без передачи параметров – получить список всех счетов,
При передаче параметров – фильтр по параметрам!
/rest/v1/bonusaccount/getlist
Параметры:
user_id - ID пользователя в системе 1С-Битрикс
account – ID бонусного счета модуля
запрос:
/rest/v1/bonusaccount/getlist?user_id=1&account=3
Ответ
{
"status": 200, - статус ответа
"result": [ - массив результата
{
"ID": "7", - ID бонусного счета пользователя
"USER_ID": "1", - ID пользователя
"TIMESTAMP_X": {},
"CURRENT_BUDGET": "1401.0000", - баланс счета пользователя
"CURRENCY": "RUB", - валюта счета пользователя
"NOTES": null,
"BONUSACCOUNTSID": "3" – ID бонусного счета модуля
},
]
}
Получить пользователя по ID или xml_id
/rest/v1/bonusaccount/getuserfromid
Параметры
user_id – ID пользователя в системе 1С-Битрикс
xmlid – внешний код пользователя в системе 1С-Битрикс
запрос:
/rest/v1/bonusaccount/getuserfromid?user_id=1
Ответ
{
"status": 200, -статус ответа
"result": { - массив результата
"USER": { - данные пользователя
"ID": "1", - ID пользователя
"NAME": "sasdasda", - имя пользователя
"LAST_NAME": "sdasd", - фамилия пользователя
"SECOND_NAME": "", - отчество пользователя
"PERSONAL_PHONE": "+7(999)123-456-55", - телефон пользователя
"EMAIL": "vasya@gmail.com", - email пользователя
"XML_ID": "", - внешний код пользователя
"LOGIN": "admin" - логин пользователя
},
"BONUS": [ - данные по бонусному счету пользователя
{
"ID": "7", - ID бонусного счета
"USER_ID": "1", - ID пользователя
"TIMESTAMP_X": {},
"CURRENT_BUDGET": "1401.0000", - баланс счета пользователя
"CURRENCY": "RUB", - валюта счета
"NOTES": null,
"BONUSACCOUNTSID": "3" – ID бонусного счета модуля
}
],
"CARD": { - информация по бонусным картам
"ID": "1", - ID бонусной карты
"TIMESTAMP_X": {},
"LID": "s1", - привязка к сайту
"ACTIVE": "Y", -активность карты
"USERID": "1", - ID пользователя
"DEFAULTBONUS": "0.0000", - активация бонусов по умолчанию
"BONUSACCOUNTS": "2", - ID бонусного счета модуля
"NUM": "N3eq4211" – номер бонусной карты
}
}
}
Получить данные пользователя по email
/rest/v1/bonusaccount/getuserfromemail?email=
Параметры
email – email пользователя
запрос:
/rest/v1/bonusaccount/getuserfromemail?email=vasya@gmail.com
{
"status": 200,
"result": {
"USER": {
"ID": "1",
"NAME": "sasdasda",
"LAST_NAME": "sdasd",
"SECOND_NAME": "",
"PERSONAL_PHONE": "+7(999)123-456-55",
"EMAIL": "vasya@gmail.com",
"XML_ID": "",
"LOGIN": "admin"
},
"BONUS": [
{
"ID": "7",
"USER_ID": "1",
"TIMESTAMP_X": {},
"CURRENT_BUDGET": "1401.0000",
"CURRENCY": "RUB",
"NOTES": null,
"BONUSACCOUNTSID": "3"
}
],
"CARD": {
"ID": "1",
"TIMESTAMP_X": {},
"LID": "s1",
"ACTIVE": "Y",
"USERID": "1",
"DEFAULTBONUS": "0.0000",
"BONUSACCOUNTS": "2",
"NUM": "N3eq4211"
}
}
}
Получить информацию о пользователе по номеру бонусной карты
/rest/v1/bonusaccount/getuserfrombonuscard
Параметры
bonuscard – номер бонусной карты
запрос
/rest/v1/bonusaccount/getuserfrombonuscard?bonuscard=N3eq4211
Ответ
{
"status": 200,
"result": {
"USER": {
"ID": "1",
"NAME": "sasdasda",
"LAST_NAME": "sdasd",
"SECOND_NAME": "",
"PERSONAL_PHONE": "+7(999)123-456-55",
"EMAIL": "vasya@gmail.com",
"XML_ID": "",
"LOGIN": "admin"
},
"BONUS": [
{
"ID": "7",
"USER_ID": "1",
"TIMESTAMP_X": {},
"CURRENT_BUDGET": "1401.0000",
"CURRENCY": "RUB",
"NOTES": null,
"BONUSACCOUNTSID": "3"
}
],
"CARD": {
"ID": "1",
"TIMESTAMP_X": {},
"LID": "s1",
"ACTIVE": "Y",
"USERID": "1",
"DEFAULTBONUS": "0.0000",
"BONUSACCOUNTS": "2",
"NUM": "N3eq4211"
}
}
}
Получить информацию о пользователе по номеру телефона
/rest/v1/bonusaccount/getuserfromphone
Параметры
phone - номер телефона пользователя (в системе 1С-Битрикс номер телефона из поля PERSONAL_PHONE)
Запрос
/rest/v1/bonusaccount/getuserfromphone?phone=+7(999)123-456-55
Ответ
{
"status": 200,
"result": {
"USER": {
"ID": "1",
"NAME": "sasdasda",
"LAST_NAME": "sdasd",
"SECOND_NAME": "",
"PERSONAL_PHONE": "+7(999)123-456-55",
"EMAIL": "vasya@gmail.com",
"XML_ID": "",
"LOGIN": "admin"
},
"BONUS": [
{
"ID": "7",
"USER_ID": "1",
"TIMESTAMP_X": {},
"CURRENT_BUDGET": "1401.0000",
"CURRENCY": "RUB",
"NOTES": null,
"BONUSACCOUNTSID": "3"
}
],
"CARD": {
"ID": "1",
"TIMESTAMP_X": {},
"LID": "s1",
"ACTIVE": "Y",
"USERID": "1",
"DEFAULTBONUS": "0.0000",
"BONUSACCOUNTS": "2",
"NUM": "N3eq4211"
}
}
}
Удалить бонусный счет пользователя
/rest/v1/bonusaccount/delete
Параметры
user_id ID пользователя в системе 1С-Битрикс
xmlid – XML_ID пользователя
phone – номер телефона пользователя
email – EMAIL пользователя
account – ID бонусного счета модуля (используется для выборки нужного счета пользователя – если у пользователя несколько бонусных счетов)
id – ID бонусного счета пользователя
Запрос:
/rest/v1/bonusaccount/delete?user_id=8
Ответ
{
"status": 200,
"result": [
{
"9": "delete" - ID бонусного счета пользователя – статус delete - удален
}
]
}
Добавить бонусный счет пользователю
/rest/v1/bonusaccount/add
Параметры
user_id ID пользователя в системе 1С-Битрикс
xmlid – XML_ID пользователя
phone – номер телефона пользователя
email – EMAIL пользователя
account – ID бонусного счета модуля (используется для выборки нужного счета пользователя – если у пользователя несколько бонусных счетов)
amount – количество бонусов для зачисления
Запрос
/rest/v1/bonusaccount/add?user_id=8&account=3&amount=50
Ответ
{
"status": 200,
"result": {
"USER": {
"ID": "8",
"NAME": "dsdfwefefe",
"LAST_NAME": "fasfasfasfasf",
"SECOND_NAME": "",
"PERSONAL_PHONE": "+8(666)444-666-55",
"EMAIL": "fgdffg@sfas.ru",
"XML_ID": "",
"LOGIN": "asfasfasfasfasfasf"
},
"BONUS": {
"TIMESTAMP_X": {},
"USER_ID": "8",
"CURRENT_BUDGET": "50",
"CURRENCY": "бонус",
"NOTES": "",
"BONUSACCOUNTSID": "3",
"ID": 40
}
}
}
Добавить / Удалить бонусы пользователя
/rest/v1/bonusaccount/addbonus
Параметры
user_id ID пользователя в системе 1С-Битрикс
xmlid – XML_ID пользователя
phone – номер телефона пользователя
email – EMAIL пользователя
account – ID бонусного счета модуля (используется для выборки нужного счета пользователя – если у пользователя несколько бонусных счетов)
amount – количество бонусов для зачисления
message – описание транзакции
prof_id - ID профиля лояльности (для получения настроек конфигурации бонуса)
prof_code - Тип профиля лояльности (для получения настроек конфигурации бонуса)
Запрос
/rest/v1/bonusaccount/addbonus?user_id=17&amount=50&message=зачисление&prof_id=12
Ответ
{
"status": 200,
"result": {
"USER": {
"ID": "17",
"NAME": "weqweqweqw",
"LAST_NAME": null,
"SECOND_NAME": null,
"PERSONAL_PHONE": "9993332211",
"EMAIL": "test2@eqweq.ru",
"XML_ID": null,
"LOGIN": "test2"
},
"BONUS": [
{
"ID": "41",
"USER_ID": "17",
"TIMESTAMP_X": {},
"CURRENT_BUDGET": "444.0000",
"CURRENCY": "RUB",
"NOTES": "",
"BONUSACCOUNTSID": "3"
}
],
"CARD": false
}
}
ПРИМЕР КОДА:
use \Bitrix\Main\Web\Uri,
\Bitrix\Main\Web\HttpClient;
$url = 'http://demo.asys-log.ru/rest/v1/bonusaccount/addbonus';
$param =[
'email'=>'support@asys-log.ru',
'amount'=>'-123',
'message'=>'списание бонусов из внешней системы',
];
ITRBonusApi::Request($url,$param);
class ITRBonusApi
{
const accessToken = '';
const login = '';
const password = '';
function Request($url,$parameters=[])
{
$options = array(
"redirect" => true, // true, если нужно выполнять редиректы
"redirectMax" => 5, // Максимальное количество редиректов
"waitResponse" => true, // true - ждать ответа, false - отключаться после запроса
"socketTimeout" => 30, // Таймаут соединения, сек
"streamTimeout" => 60, // Таймаут чтения ответа, сек, 0 - без таймаута
"version" => HttpClient::HTTP_1_1, // версия HTTP (HttpClient::HTTP_1_0 или HttpClient::HTTP_1_1)
"proxyHost" => "", // адрес
"proxyPort" => "", // порт
"proxyUser" => "", // имя
"proxyPassword" => "", // пароль
"compress" => false, // true - принимать gzip (Accept-Encoding: gzip)
"charset" => "utf-8", // Кодировка тела для POST и PUT
"disableSslVerification" => true, // true - отключить проверку ssl (с 15.5.9)
);
$httpClient = new HttpClient($options);
if(self::accessToken)
$httpClient->setHeader('Authorization-Token', self::accessToken);
if(self::login)
$httpClient->setHeader('Authorization-Login', self::login);
if(self::password)
$httpClient->setHeader('Authorization-Password', self::password);
$uri = new Uri($url);
$httpClient->post($uri->getUri(), $parameters);
unset($uri);
$result = $httpClient->getResult(); // текст ответа
$status = $httpClient->getStatus(); // код статуса ответа
// $type1=$httpClient->getContentType(); // Content-Type ответа
// $url=$httpClient->getEffectiveUrl(); // реальный url ответа, т.е. после редиректов
// $cookie=$httpClient->getCookies(); // объект Bitrix\Main\Web\HttpCookies
// $header=$httpClient->getHeaders(); // объект Bitrix\Main\Web\HttpHeaders
$error = $httpClient->getError(); // массив ошибок
if ($status == 200)
return json_decode($result, true);
else return false;
}
}Назад в раздел
