Не нашли ответы на свои вопросы в наших публикациях? Задайте вопрос в службу техподдержки!
Вы можете ознакомиться с Видео и ниже с описанием
Настройка:
предварительно настройте использование 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; } }
Назад в раздел