restAPI

restAPI

IT-Round

Поможем автоматизировать бизнес
Внедрим программы лояльности
Внедрим CRM
CRM + сайт + ...
Настройка:
предварительно настройте использование 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;
    }
}


Уважаемые клиенты сайт находится в стадии наполнения контентом и увеличения функционала. Если Вы не нашли необходимой информации - напишите нам!
×