... Бандлы - это тарифы, объединяющие услуги интернет и телевидения, обычно предоставляющиеся со "скидкой": приобрести услуги бандлом выгодней, чем отдельно. Как использовать бандлы Интернет+24часаТВ: * Договоритесь с 24часаТВ о льготных условиях при использовании бандлов * 24часаТВ со своей стороны отметит данные пакеты для использования в бандлах * Настройте тарифы интернет+ТВ в биллинге * Абоненты в приложении не смогут переключать пакеты, входящие в бандлы - им потребуется делать это через личный кабинет провайдера. h4. Как настроить # Путь к обработчику передайте специалистам 24часаТВ, обратите внимание на необходимость указания внешнего адреса биллинга, а так же перенаправления используемого порта в случае если биллинг находится за NAT # Запросите у 24часаТВ IP-адреса с которых они планируют обращаться в биллинг и добавьте в список разрешенных по статье "[CarbonBilling:Настройка сети для платежных систем]" h4. Запрос AUTH Поиск абонента происходит по IP. Если в биллинге несколько абонентов с одинаковым IP-адресом, то происходит уточнённый поиск по номеру телефона. В ответ сервису биллинг отправляет ID абонента. Дальнейшее взаимодействие с 24часаТВ и биллинга будет происходить по "provider_uid" - id абонента из биллинговой системы. {note}При запросе AUTH, учётная запись в биллинге не создаётся! Она будет создана автоматически, когда абонент подключит первый пакет ТВ,{note} h4. Запрос PACKET В сервисе 24часаТВ бывают два вида пакетов: базовые (основной) и дополнительные. Каждый базовый пакет имеет свой набор дополнительных пакетов для подключения (могут быть базовые пакеты и без дополнительных). При переключении базовых пакетов, может возникнуть ситуация когда был подключен дополнительный пакет, и он входит в состав нового базового пакета. В таком случае мы отключаем дополнительный пакет автоматический. Например, если у абонента был тариф "Базовый" и подключена дополнительная услуга "Амедиатека", при смене на тариф "Максимальный", доп. услуга отключится автоматически, так как она входит в состав более дорого тарифа. При успешном выполнении запроса, в ответе сервису возвращается параметр "status=1" h4. Запрос CONT При успешном выполнении запроса, в ответе сервису возвращаются параметры "status=1" и "id=ID подключенного пакета в биллинге" h3. Отладка
|
... 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} {code:title=grep "Пользователь с этим телефоном уже существует" /app/asr_billing/var/log/nas_event_daemon/24hTV_*.log} ValueError: Ошибка запроса к 24h.tv! message={'phone': [ErrorDetail(string='Пользователь с этим телефоном уже существует.', code='invalid')], 'email': [ErrorDetail(string='Пользователь с таким адресом электронной почты уже существует.', code='invalid')]}; {code} Возможна ситуация, когда абонент зарегистрировался в ОТТ и его надо перенести в провайдера в ручном режиме. ОТТ - это абоненты не принадлежащие провайдерам, например - купившие подписку у 24ТВ напрямую. После обращения к провайдеру, биллинг пытается создать учётную запись по телефону зарегистрированному в 24ТВ - это вызывает ошибку. Провайдеру надо обратиться в техническую поддержку 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}
|