... h4. Бандлы Бандлы - это тарифы, объединяющие услуги интернет и телевидения, обычно предоставляющиеся со "скидкой": приобрести услуги бандлом выгодней, чем отдельно. Как использовать бандлы Интернет+24часаТВ: * Договоритесь с 24часаТВ о льготных условиях при использовании бандлов * 24часаТВ со своей стороны отметит данные пакеты для использования в бандлах * Настройте тарифы интернет+ТВ в биллинге * Абоненты в приложении не смогут переключать пакеты, входящие в бандлы - им потребуется делать это через личный кабинет провайдера. h4. Как настроить # Путь к обработчику передайте специалистам 24часаТВ, обратите внимание на необходимость указания внешнего адреса биллинга, а так же перенаправления используемого порта в случае если биллинг находится за NAT # Запросите у 24часаТВ IP-адреса с которых они планируют обращаться в биллинг и добавьте в список разрешенных по статье "[CarbonBilling:Настройка сети для платежных систем]" h4. Запрос AUTH Поиск абонента происходит по IP. Если в биллинге несколько абонентов с одинаковым IP-адресом, то происходит уточнённый поиск по номеру телефона. В ответ сервису биллинг отправляет ID абонента. {note}При запросе AUTH, учётная запись в биллинге не создаётся! Она будет создана автоматический когда абонент подключит первый пакет ТВ,{note} h4. Запрос PACKET В сервисе 24часаТВ бывают два вида пакетов: базовые (основной) и дополнительные. Каждый базовый пакет имеет свой набор дополнительных пакетов для подключения (могут быть базовые пакеты и без дополнительных). При переключении базовых пакетов, может возникнуть ситуация когда был подключен дополнительный пакет, и он входит в состав нового базового пакета. В таком случае мы отключаем дополнительный пакет автоматический. Например, если у абонента был тариф "Базовый" и подключена дополнительная услуга "Амедиатека", при смене на тариф "Максимальный", доп. услуга отключится автоматически, так как она входит в состав более дорого тарифа. При успешном выполнении запроса, в ответе сервису возвращается параметр "status=1" h4. Запрос CONT При успешном выполнении запроса, в ответе сервису возвращаются параметры "status=1" и "id=ID подключенного пакета в биллинге" h3. Отладка Отладить передачу данных со стороны сервиса телевидения к биллингу Вы можете по следующим файлам журналов: {code}/app/asr_fiscal/var/log/httpd/error_log /app/asr_fiscal/var/log/rest_api_v2.log /app/asr_fiscal/var/log/IntegrationIptv24htv.log /app/asr_billing/var/log/django/api_v2.log {code} Из биллинга к сервису по этому логу: {code}/app/asr_billing/var/log/nas_event_daemon/iptv24tv.log /app/asr_billing/var/log/nas_event_daemon/24hTV_1.1.1.1.log /app/asr_billing/var/log/oss.log{code} {note}1.1.1.1 - это IP с которым NAS добавлен в биллинг.{note} В [аудите|Аудит] при подключении или отключении пакета ТВ по запросу из 24ТВ будет пометка *Примечание=IPTV 24htv API*: {code} 1234123 Системные события 2020-01-01 10:10 ---- Добавлена запись №3926: таблица Услуги ... [Примечание=IPTV 24htv API] {code} h4. Как делать отладку? Анализируйте сообщения лога, обычно они довольно говорящие и описывают совершаемое действие, например "Создаю учетную запись" или "Подключаю пакет телевидения". Если возникает ошибка, как правило, в тексте сообщения будет что-то вроде "ERROR" или "CRITICAL" и само сообщение ошибки. Поняв текст сообщения об ошибке можно сделать вывод, следует ли обратиться к документации, техподдержке Carbon Soft или техподдержке сервиса. {info}События происходящие с абонентом удобно смотреть в реальном времени. # Запустите монитор логов, например: {code}tail -f /app/asr_billing/var/log/nas_event_daemon/iptv24tv.log /app/asr_fiscal/var/log/httpd/error_log{code} # Сделайте какие=либо действия с абонентом - создайте учетную запись, подключите пакет ТВ и тд # Посмотрите что происходит и не возникает ли ошибка # По тексту ошибки попробуйте понять что случилось{info} h4. Как проверить, что "Интеграция за 48 часов" работает? Самый надёжный способ - попробуйте управлять подписками через приложения для мобильного телефона или приставки. Если такой возможности нет, можно отправить какой-либо запрос к платформе 24часаТВ с помощью CURL. Например, такой запрос должен подключить подписку в ID=6 учётной записи ID=70142, это внутренний ID в системе 24часаТВ. {code}curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '[{ "packet_id": 6, "renew": true }]' 'https://api.24h.tv/v2/users/70142/subscriptions?token=gf809gu890fsjiogjkosf89u90u890gfsjkjkgfs' | jq .{code} {note}В примере URL - *api.24h.tv*, а токен *gf809gu890fsjiogjkosf89u90u890gfsjkjkgfs*. Это примеры, для Ваших запросов возьмите URL и токен те, что указали в *main.ini*{note} {note}Команда *jq* может быть не установлена на Вашем сервере. Установите её командой {code}yum install -y jq{code}{note} h4. Ошибка "User with this phone already exists" {code:title=grep "User with this phone already exists" /app/asr_billing/var/log/nas_event_daemon/24hTV_*.log} ValueError: Ошибка запроса к 24h.tv! message={'phone': [ErrorDetail(string='User with this phone already exists.', code='invalid')]{code} Пользователь ранее регистрировался с этим номером телефона на сервисе 24часаТВ. Обратитесь в поддержку сервиса, попросите удалить абонента с других договоров. После исправления ситуации на сервисе, удалите в биллинге услугу создания учетной записи и учетную запись. Подключите услугу заново. h4. Подключаю услуги на приставке или в приложении - ничего не происходит # Посмотрите в [администраторской панели 24h.tv|https://24h.tv/admin/utils_externals_logs_list/] логи отправленных команд к биллингу. Если там не отражены запросы на подключение услуги или регистрацию - обратитесь в поддержуц 24h,tv # Если запросы есть и сервис отправлял команды на биллинг, их можно посмотреть в логе */app/asr_fiscal/var/log/IntegrationIptv24htv.log*, если там пусто - возможно адресов сервиса нет [в списке разрешенных|CarbonBilling:Настройка сети для платежных систем]. В любом случае, нужно проверить доходят ли запросы до биллинга: {code}tcpdump -nni any port 1444 or port 1443 or port 2443{code} Запустите мониторинг трафика по портам платежных систем в биллинге и попробуйте переключить услуги в приложении или на приставке, убедитесь что 24h.tv отправил запросы к биллингу по их администраторской панели и посмотрите будет ли это в снифере. Если запросы есть, но логи пусты, еще раз проверьте корректно ли указаны адреса в списке разрешенных. {info}На время теста в список разрешенных адресов можно добавить 0.0.0.0/0, то есть разрешить обращения со всех адресов, тем самым исключить возможные сетевые проблемы{info} h4. Ошибка "Метод "create user account" не разрешен." {code:title=/app/asr_billing//var/log/oss.log} 2020-05-22 19:12:35,796 - worker - iptv24tv_sync - ERROR - Произошла ошибка: Ошибка запроса к 24h.tv! message=Метод "create user account" не разрешен.; detail=Метод "create user account" не разрешен. ValueError: Ошибка запроса к 24h.tv! message=Метод "create user account" не разрешен.; detail=Метод "create user account" не разрешен. {code} В случае фиксирования ошибки в логе /app/asr_billing//var/log/oss.log, необходимо проверить, указан ли в настройках NAS, в файле main.ini, идентификатор balance_source_id. h4. Ошибка "Billing have many packets with id=6" {code} 2021-08-11 08:26:01 Request="/integration_iptv24htv.php/packet?user_id=1384&trf_id=6" from IP=1.1.1.1 2021-08-11 08:26:01 Input={"user_id":"1234","trf_id":"6"} 2021-08-11 08:26:01 Method=packet 2021-08-11 08:26:01 WARNING Billing have many services for package! packet_id=6 2021-08-11 08:26:01 Response={"status":-3,"errmsg":"Billing have many packets with id=6"} {code} Эту ошибку можно увидеть в логе "Интеграции за 48 часов" /app/asr_fiscal/var/log/integrations/IntegrationIptv24htv.log и в панели управления 24часаТВ, в разделе "Внешние логи" (http://ISP_SITE.platform24.tv/admin/utils_externals_logs_list/) Она просходит, если в биллинге есть есть несколько услуг с одинаковым ID пакета для 24часаТВ. В услуге этот параметр задаётся в поле "*Строка с дополнительными параметрами по активации*" Для решения проблемы, оставьте только одну такую услугу. h4. Ошибка "Произошла ошибка: Ошибка запроса к 24h.tv! message=Не найдено.; detail=Не найдено." {code:title=Пример №1} 2021-09-23 10:13:10,154 - worker - commands - INFO - Проверяем подписку на портале id=6440xxxxxx, packet_id=18, renew=True, end_at=2021-09-30T23:00:00Z, 2021-09-23 10:13:10,161 - worker - v1 - INFO - Request type: GET, request url: https://api.24h.tv/v2/packets/18?token=86c3ee7xxxxxxxxxxx, request data: null, request headers: {} 2021-09-23 10:13:10,233 - worker - iptv24tv_sync - ERROR - Произошла ошибка: Ошибка запроса к 24h.tv! message=Не найдено.; detail=Не найдено. Traceback (most recent call last): .......... File "/mnt/var/oss/core/24TV/lib/iptv24tv_package/commands.py", line 404, in get_portal_packet_info return self.send_request(url=url.format(packet_id=packet_id), method='GET', expected_codes=[200]) File "/mnt/var/oss/core/24TV/lib/iptv24tv_package/commands.py", line 54, in send_request result['error']['message'], result['detail'])) ValueError: Ошибка запроса к 24h.tv! message=Не найдено.; detail=Не найдено. {code} --- {code:title=Пример №2} 2021-11-01 09:36:08,235 - worker - commands - INFO - Найден в биллинге ABONENT_ID=2764, USER_ID=8413 2021-11-01 09:36:08,243 - worker - commands - INFO - Найден пользователь на портале по portal_id=200xxx id=200xxx, provider_uid=2764, username=5e763a4c-bf74-4a72-xxx-xxxxxxx, phone=792xxxxxx, email=None 2021-11-01 09:36:08,244 - worker - commands - INFO - Активируем услугу пользователя 2764: 190 2021-11-01 09:36:08,270 - worker - v1 - INFO - Request type: GET, request url: https://api.24h.tv/v2/packets/190?token=b4e76a6bcxxxxxx2, request data: null, request headers: {} 2021-11-01 09:36:08,385 - worker - iptv24tv_sync - ERROR - Произошла ошибка: Ошибка запроса к 24h.tv! message=Не найдено.; detail=Не найдено. {code} Причина возникновения ошибки - это отсутствие соответствующего пакета каналов на портале IPTV. Такая ситуация может возникнуть, когда сервис сделал пакет архивным или отключил его. В таком случае, если абонент продолжает пользоваться услугой архивного пакета, то эту услуг необходимо скорректировать, убрав из настроек привязку к NAS IPTV и подключить ее заново, но дальнейший контроль за ее отключением или приостановкой ложится на администратора биллинга. ||Изначально ||После корректировки|| | !NAS_before.png|border=0,width=400! | !NAS_after.png|border=0,width=400! | h4. Ошибка "field user_id is unsupported" {code:title=grep 'field user_id is unsupported' -B3 /app/asr_fiscal/var/log/integrations/IntegrationIptv24htv.log} 2021-10-04 01:30:54 Request="/integration_iptv24htv.php/auth?ip=10.0.10.121&phone=79121111111&mbr_id=222222" from IP=10.90.1.185 2021-10-04 01:30:54 Input={"ip":"10.0.10.121","phone":"79121111111","mbr_id":"222222"} 2021-10-04 01:30:54 Method=auth 2021-10-04 01:30:54 Response={"status":-3,"err":-9,"errmsg":"field user_id is unsupported"} {code} Ошибка произошла потому, что в биллинге нет действующего абонента с IP 10.0.10.121 (IP указывается в [учётной записи|CarbonBilling:Учетная запись. Создание и изменение.]) или номером SMS-оповещений 79121111111 (номер указывается [в карточке абонента|CarbonBilling:Создание абонента. Заведение абонента. Работа с абонентами. Редактирование абонентов#fill_sms_email_fields]), а поиск абонента по "user_id" пока не реализован. h4. Ошибка "Not found services for create IPTV user" в логах /app/asr_fiscal/var/log/integrations/IntegrationIptv24htv.log Ошибка происходит из - за того, что в биллинг не заведена услуга *Создание учетной записи IPTV*,в которой есть опция *Создавать учетную запись* и выбран NAS *24htv* Чтобы решить проблему, заведите в биллинге абонента с номером телефона или IP, по которым он должен авторизоваться. {info}Запрос *auth* только связывает абонентов 24часаТВ и биллинга, создавать их он не может: абоненты уже должны быть заведены в обеих системах с тем реквизитом, по которому Вы хотите его авторизовать, IP или номер SMS.{info} {include:CarbonBilling:Настройка услуг IPTV}
|