Для доступа к описанию необходимо авторизоваться в кабинете оператора https://24htv.platform24.tv/admin/login .
...
Для доступа к API необходимо зарегистрироваться в 24ТВ, через менеджера получить доступ к личному кабинету провайдера и сгенерировать там TOKEN https://24htv.platform24.tv/admin/settings/tokens/
Логи запросов от 24ТВ к партнёру по ссылке https://24htv.platform24.tv/admin/api-requests/
...
{ "error": { "message": "{'email': ['User with this email already exists.'], 'phone': ['User with this phone already exists.'], 'username': ['User with this username already exists.']}" }, "status_code": 400, "detail": { "email": [ "User with this email already exists." ], "phone": [ "User with this phone already exists." ], "username": [ "User with this username already exists." ] } }
Поле email не является обязательным. Чтобы не было ошибки при передаче email пустым, это поле можно в параметрах не указывать.
Изменение информации о пользователе.
...
В случае неверных данных будет возвращена ошибка с описанием в json формате.
В случае блокировки пользователя, установкой флага is_active=false, данный пользователь не сможет войти в приложение 24ТВ. При этом подписки на пакеты не отключаются! Если вам необходимо блокировать пользователя, то перед этим остановите все его активные подписки!
Получение списка зарегистрированных пользователей.
...
Описание - https://api.24h.tv/v2/doc/provider#!/Packets/post_users_user_id_packets
Тип запроса: POST
<http или https>://api.24h.tv/v2/users/<ID пользователя в платформе 24часаТВ>/packets?token=<TOKEN>
Передаваемые параметры:
{
"name": "<Название пакета для абонента>",
"price": "<Отображаемая стоимость для абонента>",
"description": "<Отображаемое описание пакета для абонента>",
"packet_id": <ID пакета для персонализации>
}
...
<http или https>://api.24h.tv/v2/users/<ID пользователя в платформе 24часаТВ>/provider/account?token=<TOKEN>
Параметры:
id - id лицевого счета в биллинговой системе провайдера
amount - значение отображаемого баланса в рублях
...
{ "status_code": 404, "error": { "message": "Не найдено." }, "detail": "Не найдено." }
Есть возможность отображать баланс напрямую из биллинга интеграционным запросом BALANCE. Данный запрос будет отправлен в сторону провайдера при входе абонента в личный кабинет или настройки в тв приложении. Запрос BALANCE описан ниже в следующем разделе.
Методы формируемые платформой в сторону интеграции оператора (биллинга).
...
На указанный провайдером интеграционный URL 24ТВ отправляет POST-запрос (параметры передаются в строке запроса):
<http или https>://<url для интеграции>:<порт>/auth?ip=<ip_address>&phone=<phone>&mbr_id=<user_id>&provider_id=<provider_id>
где:
url для интеграции: порт - url и порт указанный провайдером. Должен заканчиваться на "/" так как далее к этому URL добавляется "auth?ip=..." или "packet?user_id=..." или "cont?user_id=..."
ip_address - ip адрес абонента.
phone - номер мобильного телефона, с которого зарегистрировался абонент.
mbr_id (user_id) - id учетной записи в 24ТВ.
provider_id - id провайдера (админки) в 24ТВ.
...
Если у абонента уже подключен базовый пакет с большей стоимостью - необходимо отменить его автопродление (установкой флага renew=false) и подключить новый пакет с даты окончания текущего.
Если у абонента подключен базовый пакет с меньшей стоимостью - необходимо подключить новый с текущего времени. Для этого необходимо сначала остановить старый базовый пакет путем отправки запроса DELETE /users/{user-id}/subscriptions, после этого отправить запрос в 24часаТВ на подключение нового пакета.
Тип запроса: POST
Запрос: <http или https>://<Интергационный урл>/packet?user_id=<Provider_user_id>&trf_id=<ID платного пакета в платформе 24часаТВ>
В теле запроса будет json такого типа:
...
{"status":-1,"errmsg":"Недостаточно средств на счету"}
Важно! В случае нехватки денежных средств, запрос PACKET всегда должен возвращать status = -1
В случае других причин используйте любые другие коды с отрицательным значением (-2, -3 и т.п.)
...
Обращаем внимание, что в сервисе 24часаТВ по агентской схеме пакеты подключаются на срок не менее месяца. Поэтому биллинговая система при запросе пользователя на отключение должен снять автопродление пакета в собственной базе и проинформировать об этом сервис установкой флага renew=false в соответствующей подписке.
Тип запроса: POST
Запрос: <http или https>://<Интергационный урл>/delete_subscription?user_id=<Provider_user_id>&sub_id=<ID подписки в платформе 24часаТВ>
В теле запроса будет json такого типа:
...
Данный запрос отправляется в биллинг провайдера при входе абонента в личный кабинет 24ТВ или настройки приложения. Для включения данного запроса в сторону провайдера необходимо о этом сообщить службе поддержки 24ТВ.
Запрос: <http или https>://<Интергационный урл>/balance?user_id=<Provider_user_id>
В теле запроса будет json такого типа:
...
Тестирование схемы интеграции.
№ | Тест (бизнес-процесс) | Действие | Результат | Замечания |
Действия через тв-приложение | ||||
1 | Саморегистрация абонента через тв-приложение (реальный ip адрес) | Появление в биллинге договора/учетки/услуги на тв, привязанной к интернет-договору абонента с этим ip адресом и общим балансом. Проставление provider_uid в системе 24ТВ | ||
2 | Саморегистрация абонента через тв-приложение (серый ip адрес) | Появление в биллинге договора/учетки/услуги на тв, привязанной к интернет-договору абонента с этим ip адресом и общим балансом. Проставление provider_uid в системе 24ТВ | ||
3 | Саморегистрация абонента через тв-приложение (динамический ip адрес) | Появление в биллинге договора/учетки/услуги на тв, привязанной к интернет-договору абонента, которому выдан данный динамический-ip адрес в текущий момент, и общим балансом. Проставление provider_uid в системе 24ТВ | ||
4 | Подключение через тв-приложение базового пакета | В биллинге должно произойти списание денежных средств с договора/учетки/услуги и подключен этот пакет в биллинге и в 24ТВ | ||
5 | Подключение через тв-приложение дополнительного пакета | В биллинге должно произойти списание денежных средств с договора/учетки/услуги и подключен этот пакет в биллинге и в 24ТВ | ||
6 | Переход через тв-приложение на более дорогой пакет | В биллинге должно произойти списание денежных средств и подключен этот пакет в биллинге и в 24ТВ (см. также действия через биллинг п. 12) | ||
7 | Переход через тв-приложение на дешевый пакет | В биллинге должно произойти планирование перехода на более дешевый пакет после окончания более дорогого (см. действия через биллинг п. 13, 14) | ||
8 | Отключение подписки через тв-приложение | Отключения флага автопродления в системе 24ТВ и биллинге провайдера | ||
Действия через биллинг | ||||
9 | Создание тв договора/учетки/услуги через биллинг | Абонент должен появиться в системе 24ТВ с корректным номером телефона и provider_uid | ||
10 | Подключение базового пакета через биллинг | В системе 24ТВ должна появиться подписка на данный пакет | ||
11 | Подключение дополнительного пакета через биллинг | В системе 24ТВ должна появиться подписка на данный пакет | ||
12 | Переход на более дорогой базовый пакет | В системе 24ТВ должна появиться подписка на данный пакет, предыдущий дешевый должна быть отключен. Если у абонента вместе с дешевым был включен доп. пакет, который входит в запрошенный дорогой (см. также запрос иерархичного списка пакетов, includes=availables и получение списка подписок на пакеты пользователя), то его также необходимо отключить. | ||
13 | Переход на более дешевый базовый пакет | В билинге должна быть запланирована подписка на более дешевый пакет после окончания более дорогого. Пример: с Премиум (999 ₽) на Оптимум+ (399 ₽). | ||
14 | Переход на другой более дешевый базовый пакет | В билинге должна быть запланирована подписка на новый более дешевый пакет после окончания более дорогого. Пример: с Премиум (999 ₽) на Оптимум+ (399 ₽) и не дожидаясь его включения, на Лайт+(199 ₽). | ||
15 | Постановка подписки на паузу через биллинг | В системе 24ТВ подписка должна быть приостановлена | ||
16 | Снятие подписки с паузы через биллинг | В системе 24ТВ подписка должна быть возобновлена | ||
17 | Остановка/закрытие подписки через биллинг | Подписка в системе 24ТВ должна быть остановлена | ||
18 | Проверка корректного отображения баланса из биллинга в тв-приложении | Должен отображаться правильный баланс из билинга в тв-приложении |
...