ВОЙТИ

restAPI

Последние изменения: 28.11.2018
добавить в избранные

Настройка:
предварительно настройте использование restAPI в настройках модуля

ВНИМАНИЕ: обязательно  указывайте данные для авторизации


bonusaccount
адрес сайта/rest/v1/bonusaccount/getlist
user_id - ID пользователя в битриксе
account - ID бонусной платежной системы

/rest/v1/bonusaccount/getuserfromid
user_id - ID пользователя в битриксе
xmlid - внешинй код пользователя 

/rest/v1/bonusaccount/getuserfromemail
email   - email пользователя
  
/rest/v1/bonusaccount/getuserfromphone
phone   - номер телефона пользователя
  
/rest/v1/bonusaccount/add
user_id - ID пользователя в битриксе
xmlid - внешинй код пользователя 
phone - номер телефона пользователя
email - email пользователя
account - ID бонусной платежной системы 
amount - количество бонусов (добавятся сразу на счет - без транзакции)
  
/rest/v1/bonusaccount/delete
  user_id - ID пользователя в битриксе
xmlid   - внешний код пользователя
phone   - номер телефона пользователя
email   - email пользователя
account - ID бонусной платежной системы 
id        - id бонусного счета
  
/rest/v1/bonusaccount/addbonus (добавить/списать бонусы пользователя)
 
user_id - ID пользователя в битриксе
xmlid   - внешний код пользователя
phone   - номер телефона пользователя
email   - email пользователя
account - ID бонусной платежной системы 
amount  - количество бонусов (с минусом если списать)
message - сообщение для транзакции
prof_id  - id профиля лояльности 
prof_code - код профиля лояльности

ПРИМЕР КОДА:

 
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;
    }
}


нет комментариев