Интеграция с LifeStream (Смотрёшка, Смотрешка)

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (13)

просмотр истории страницы

{info}
Т.к. на стороне биллинга указывается только url без логина и пароля, необходимо добавить ip адрес биллинга в список разрешенных ip адресов на стороне Lifestream.
Для этого обратитесь в техподдержку Lifestream и сообщите им ip адрес биллинга с которого будут приходить запросы на Lifestream
{info}
{note}

h2. Передавать параметр региона (для подключения абонентов с разным часовы поясом)

При регистрации пользователя на портале Lifestream можно передавать параметр region, соответствующий одному из операторов, данный функционал используется для установки конкретного часового пояса для учетной записи абонента.

Для этого в main.ini (Оборудование > IPTV > Выбрать нужный NAS > Управление > Настройка > main.ini) соответсвтующего NAS нужно добавить строку:
{code}
region={"1": "ru.far-east.primorsky-krai.vladivostok"}
(Если необходимо указать несколько передаваемых регионов, то указываем через запятую region={"1": "Регион оператора с id=1", "2": "Регион оператора с id=2"} )
{code}
Где "1" - это id оператора связи, "ru.far-east.primorsky-krai.vladivostok" - значение параметра region.
!lvstr3.png|border=1,width=1100pxpx!

После этого необходимо перезапустить service oss:
{code}
chroot /app/asr_billing
service oss restart
{code}

После сохранения настроек при регистрации всех абонентов, обслуживаемых оператором с id 1, на портале Lifestream будет отправлен дополнительный параметр "region": "ru.far-east.primorsky-krai.vladivostok".

h2. Врем списания услуги

Списание услуги Lifestream происходит в 23:30 предыдущего дня. Если у абонента недостаточно средств, услуги необходимо отключить до 00:00. Это нужно, чтобы не возникла переплата за день следующий за отключением у оператора связи. Если команды на отключение уйдут после 00:00, оператор связи не спишет средства с абонента, а Lifestream спишет с оператора. Для списания в 23:30 у услуги пакет каналов должен быть выбран [НАС|Услуги#Вкладка "Дополнительно"].

h2. Lifestream v2

Актуальная версия Актуальной версией для настройки взаимодействия биллинга и сервиса IPTV является схема Lifestream v2. По ней проводятся доработки и, в случае необходимости, могут быть добавлены исправления.
{note}
При работе схемы Lifestream v2 управление пакетами услуг абонентов со стороны биллинга осуществляется только по username.
{note}
На текущий момент переход на вторую версию схемы взаимодействия необходимо выполнять по следующему алгоритму:
5) Выполнить шаг 3, шаг 4, шаг 5 [инструкции,|https://docs.carbonsoft.ru/pages/viewpage.action?pageId=53313591#ИнтеграциясLifeStream(Смотрёшка%2CСмотрешка)-Заведениеоборудования] (данные для заполнения файла main.ini возьмите из файла, сохраненного в пункте 2)

h2. Обратная интеграция с сервисом IPTV Lifestream - Smotreshka
{info}
Перед тем, как приступить к обратной интеграции с сервисом, обязательно проверьте, что при ручном включении/отключении пакетов на биллинге, команды уходят на портал lifestream и корректно обрабатываются.
{info}
h3. Принцип работы

Взаимодействие между биллингом и IPTV сервисом выполняется с использованием запросов от сервера IPTV к биллингу на обработчик _integration_lifestream.php_

Для работы в таком режиме требуется выполнить следующие действия:

1) Указать в разделе *"Платежные системы"* - *"Настройка сети"* ip-адреса IPTV-портала для добавления в "белый"("разрешенный") список. [Пример заполнения.|CarbonBilling:Настройка сети для платежных систем]
2) Предоставить адрес расположения обработчика технической службе портала lifestream.


{code:title=Для http:}http://ip сервера биллинга:1444/integration_lifestream.php{code}

{code:title=Для https:}
https://ip сервера биллинга:1443/integration_lifestream.php
https://ip сервера биллинга:2443/integration_lifestream.php{code}

{code:title=Дополнение:}
Базовый URL это http://ip сервера биллинга:1444/integration_lifestream.php
Для методов необходимо использовать:
http://ip сервера биллинга:1444/integration_lifestream.php/upsale/v1/ или http://ip сервера биллинга:1444/integration_lifestream.php/upsale/v2/
Для защищенного протокола https по 1443 или 2443 порту необходимо аналогично явно указывать адрес метода.
{code}
3) В настройках пакетных услуг IPTV в биллинге необходимо поставить опцию *Базовый пакет* у тех услуг, которые на портале lifestream значатся как *Базовые*. Для этого необходимо перейти на вкладку "Тарификация - услуги/бонусы - IP телевидение" и выбрать нужную услугу. Сама опция находится в услуге в разделе *"Дополнительно"*


Подробное описание работы опций *"Базовый пакет"* представлено [здесь |https://docs.carbonsoft.ru/pages/viewpage.action?pageId=50660430]
----
h3. Описание методов взаимодействия

Для обработчика integration_lifestream.php доступно 2 метода:

1) _integration_lifestream.php/upsale/v1/_

* Биллинг по параметру *offerId* из POST запроса, пришедшего на биллинг, ищет услугу в биллинге, которая привязана к NAS lifestream и имеет в поле *"Дополнительный параметр активации"* значение, которое равно *offerId*
* Биллинг по параметру *login* из POST запроса, пришедшего на биллинг, ищет абонента, у которого создана учетная запись с таким же логином
* Биллинг проверяет, подключена ли такая услуга уже абоненту. Если услуга уже подключена - новую биллинг не подключает.
* Если услуга для подключения является базовым пакетом, а у абонента уже есть подключенный базовый пакет - биллинг сможет подключить новую услугу и отключить старую только в том случае, если новый(подключаемый) базовый пакет стоит дороже уже текущего. Метод используется только для upsale. Подключение обычных (не базовых) пакетов проводится без этой проверки.
* Биллинг проверяет, хватит ли средств на подключение новой услуги. Если средств не хватит - услуга не будет подключена.
* Если все условия удовлетворены - подключается услуга абоненту с примечанием "IPTV Lifestream API"

2) _integration_lifestream.php/upsale/v2/_

* Для данного метода логика работа аналогична, но при этом доступно подключение услуги с триальным периодом в том случае, если в POST запросе придет следующий параметр:
{code}"trialDuration":
{
"days": 14,
"hours": 0,
"minutes": 0
}{code}
* Для триального периода логика будет следующей: Биллинг подключит абоненту услугу со 100% скидкой и примечанием "IPTV Lifestream API TRIAL", так же будет создана запланированная задача у абонента, которая будет выполнена через указанное количество дней, часов, минут. Данная задача сменит подключенную услугу со 100% скидкой на такую же услугу но уже без скидки.

h3. Отладка

Информация по поступившым запросам на обработчик ведется в логе:

{{/app/asr_fiscal/var/log/integrations/IntegrationIptvLifestream.log}}


h2. Решение проблем

h3. Проверка взаимодействия со Смотрёшкой по логину учётной записи

Для того, чтобы проверить работает ли сейчас взаимодействие с Lifestream по логину, Вы можете выполнить следующие действия на стороне Carbon BIlling 5, где *XXXX.proxy.lfstrm.tv* - \- Ваш url а *login_test* - \- логин одного из абонентов на стороне Lifestream :
{code}
chroot /app/asr_billing/

h6. Ошибка в конфигурационном файле

Текст ошибки из лога отправки команд по учётной записи абонента:
{code}
Для решения данной проблемы, рекомендуем выполнить смену схемы взаимодействия биллинга и портала на [версию v2|https://docs.carbonsoft.ru/pages/viewpage.action?pageId=53313591#ИнтеграциясLifeStream(Смотрёшка%2CСмотрешка)-Lifestreamv2]
И выполнить повторную синхронизацию.
h6. Ошибка при создании учетной записи в биллинге по API со стороны IPTV-сервиса.
{code}2021-11-02 17:17:35,571 - worker - commands - ERROR - На портале нет пользователя с login=ddd571 error=HTTP 404: Not Found
2021-11-02 17:17:35,571 - worker - commands - INFO - Command sending — user_add
2021-11-02 17:17:35,802 - worker - commands - INFO - Запрос не принят сервером:
Результат отправки запроса:
...
result.request.body={"username": "ddd571", "password": "test", "email": null}
result.status_code=400
result.content={"error": "None is not of type 'string'"}{code}
Ошибка возникла из-за незаполненного поля email в картоке абонента "Контактная информация". Требуется указать корректный email в биллинге и на портале IPTV.

Возможны другие варианты описания ошибки, в зависимости от ситуации:

||Условие||Ошибка||
|Если не передавать email| \{"error": "'email' is a required property"\}|
|Если передавать email null| \{"error": "None is not of type 'string'"\}|
|Если передавать email пустая строка|\{"error": "'' is not a 'email'"\}|


h2. Тюнинг схемы Lifestream

В зависимости от настроек указанных в *main.ini* в API-запросы отправляемые на портал по конкретной учетной записи могут подставляться (Для версии v1) *ID* или *username* (для версии v2) \- - в первом случае это может не работать если на стороне Смотрешки включена работа с API по username, во втором могут возникать определённые ошибки если логин в Lifestream и биллинге отличаются. Для того чтобы исключить какие-либо проблемы синхронизации, можно попробовать использовать следующие настройки:

* *use_login_as_api_id* \- отправка команд по *login* (биллинг): логины в биллинге и на Lifestream должны совпадать, иначе не будет происходить актуализация данных абонента на портале, а так же не будут управляться подписки ТВ.