Интеграция за 48 часов
- 1.1 Введение.
- 1.2 Логика подключения пакетов и переходов с пакета на пакет.
- 1.3 Регистрация пользователя.
- 1.4 Изменение информации о пользователе.
- 1.5 Получение списка зарегистрированных пользователей.
- 1.6 Поиск пользователя среди зарегистрированных.
- 1.7 Получение списка пакетов.
- 1.8 Запрос иерархичного списка пакетов.
- 1.9 Запрос плоского списка пакетов.
- 1.10 Подключение пакета.
- 1.11 Отключение пакета.
- 1.12 Получение списка подписок на пакеты пользователя.
- 1.13 Персонализация пакета для пользователя.
- 1.14 Постановка на паузу подписки пользователя.
- 1.15 Постановка всех подписок пользователя на паузу.
- 1.16 Снятие с паузы.
- 1.17 Снятие с паузы всех подписок.
- 1.18 Отображения баланса из биллинговой системы в приложении 24ТВ.
- 2 Методы формируемые платформой в сторону интеграции оператора (биллинга).
- 2.1 Запрос к провайдеру AUTH (сопоставление с лицевым счетом в биллинге).
- 2.2 Запрос к провайдеру PACKET (желание подключить пакет пользователем из приложения).
- 2.3 Запрос к провайдеру DELETE_SUBSCRIPTION (желание отключить пакет пользователем из приложения).
- 2.4 Запрос к провайдеру BALANCE (отображение баланса в приложении).
- 2.5 Расторжение договора.
- 2.6 Логи.
- 2.7 Тестирование схемы интеграции.
Введение.
Для доступа к описанию и получения API-токена необходимо авторизоваться в админ-панели (логин / пароль запросить у менеджера).
Бизнесы-процессы и методология тестирования изложены последнем разделе “Тестирование схемы интеграции”.
В рамках интеграции провайдеру необходимо реализовать:
Регистрация пользователя.
Управление подписками:
подключение базового и/или доп. пакета
переход на более дорогой базовый пакет
переход на более дешевый базовый пакет
постановка пакета на паузу и снятие с неё
отключение пакета
Отображение баланса лицевого счёта в Приложении 24ТВ.
Ответы на запросы запросы AUTH и PACKET (обратная интеграция - управление пакетами со стороны приложения )
Расторжение договора (обеспечение возможностью платить в 24ТВ напрямую).
Службе поддержки Tech Support 24ТВ необходимо предоставить интеграционный URL (API URL), на который платформа будет отправлять запросы, и PROXY URL.
Логика подключения пакетов и переходов с пакета на пакет.
Пакеты бывают 2-х типов: базовые (взаимоисключающие друг друга) и дополнительные. Каждый базовый пакет имеет свой набор дополнительных пакетов для подключения (могут быть базовые пакеты и без дополнительных, например, на пакет “Все включено”, где весть контент уже включен, нет необходимости включать доп. пакеты). С 2023 г. разрешено включение доп. пакетов без базовых. Провайдер самостоятельно решает можно ли подключить доп. пакет без базового. Рекомендуем убрать ограничения и проверки, на условие, что доп. пакет нельзя купить без базового. См. также файл “Схема обратной интеграции”.
Подключение пакета производится на календарный месяц, если не указаны дата "с" и/или дата "по". Пример:
Дата начала | Дата окончания |
---|---|
20 января | 20 февраля |
31 января | 03 марта |
После окончания срока действия любого пакета происходит его автоматическое автопродление (если не снят флаг автопродления у этого пакета). При этом по схеме интеграции "48 часов" в отличии от “24 часа” Интеграция за 24 часа , при автопродлении подписки, запрос к провайдеру PACKET не отправляется! Под продлением подразумевается завершение продлеваемой подписки и подключение новой подписки с новым ID.
Переход на более дорогой базовый пакет (докупка) должен быть возможен в любой момент времени действия этого пакета. При таком переходе провайдером высчитывается стоимость недосмотренного времени по более дешевому пакету и стоимость более дорогого пакета уменьшается на эту сумму.
Переход с более дорогого базового пакета на более дешевый должен быть возможен только после окончания действия более дорогого, при этом более дешевый пакет должен быть запланирован в биллинговой системе провайдера на подключение после окончания дорогого пакета, также необходимо отключить автопродление у этого пакета. Пользователь до окончания срока действия более дорогого пакета может изменить запланированный пакет на любой другой, это должно быть учтено в биллинговой системе провайдера.
При переходе с базового пакета на другой базовый пакет дополнительные пакеты автоматически не отключаются, этим также должен управлять биллинговая система провайдера.
Регистрация пользователя.
Для регистрации пользователя в платформе 24ТВ необходимо использовать вызов API:
Тип запроса: POST
https://provapi.24h.tv/v2/users?token=<TOKEN>
Передаваемые параметры:
{
"username": "<username>",
"first_name": "<Имя пользователя>",
"last_name": "<Фамилия пользователя>",
"email": "email пользователя",
"phone": "<телефон пользователя>",
"provider_uid": "<id в биллинговой системе провайдера>",
"is_active": <Активность пользователя (false - заблокирован, true - активен)>
}
Обязательные к заполнению:
{
"username": "<username>",
"phone": "<телефон пользователя>"
}
В ответ будет возвращены данные в json формате. В ответе получите идентификатор пользователя в платформе (ID), его необходимо сохранить и использовать для дальнейшей идентификации:
Response Code - 200
{
"id": <идентификатор пользователя в платформе 24часаТВ, его необходимо сохранить и использовать для дальнейшей идентификации>,
"username": "<username пользователя>",
"first_name": "<Имя пользователя>",
"last_name": "<Фамилия пользователя>",
"phone": "<Телефон>",
"email": "<email пользователя>",
"timezone": null,
"provider": {
"id": <ID провайдера в платформе 24часаТВ>,
"name": "<Название провайдера>",
"proxy": "",
"landing": {
"shortname": "<Короткое название провайдера>",
"logo": null,
"url": "",
"support": {
"url": "<URL провайдера>",
"phone": "<Телефон провайдера>"
},
"login": {
"title": "",
"description": "<Сообщение при регистрации пользователя>"
}
}
},
"provider_uid": "<id в биллинговой системе провайдера>"
}
В случае неверных данных будет возвращена ошибка с описанием в json формате, например, если попытаться создать такого же пользователя:
Response Code - 400
Поле email не является обязательным. Чтобы не было ошибки при передаче email пустым, это поле можно в параметрах не указывать.
Изменение информации о пользователе.
Метод позволяет изменить часть пользовательских данных и возвращает измененные данные пользователя.
Тип запроса: PATCH
User_ID - полученный при создании пользователя:
https://provapi.24h.tv/v2/users/<User_ID>?token=<TOKEN>
Передаваемые параметры:
В ответ будет возвращены данные в json формате. В ответе получите идентификатор пользователя в платформе (ID), его необходимо сохранить и использовать для дальнейшей идентификации:
В случае неверных данных будет возвращена ошибка с описанием в json.
В случае блокировки пользователя, установкой флага is_active=false, данный пользователь не сможет войти в приложение 24ТВ. При этом подписки на пакеты не отключаются! Если вам необходимо блокировать пользователя, то перед этим остановите все его активные подписки!
Получение списка зарегистрированных пользователей.
Метод получать список всех зарегистрированных пользователей провайдера.
Тип запроса: GET
https://provapi.24h.tv/v2/users?token=<TOKEN>
В ответ будет возвращены данные в json формате со списком всех пользователей провайдера:
При выводе большого списка используется постраничный вывод, поэтому, для получения полного списка пользователей необходимо в запрос добавлять параметры &limit= и &offset=.
Поиск пользователя среди зарегистрированных.
Поиск пользователей возможен по:
id пользователя в платформе 24ТВ
По номеру телефона или по id в биллинговой системе провайдера.
Поиск по id пользователя:
Тип запроса: GET
https://provapi.24h.tv/v2/users/<ID пользователя в платформе 24часаТВ>?token=<TOKEN>
В ответ будет возвращены данные в json формате о пользователе провайдера:
В случае неудачного поиск будет возвращена ошибка:
Response Code - 404
По номеру телефона или по id в биллинговой системе провайдера:
Тип запроса: GET
по номеру телефона:
https://provapi.24h.tv/v2/users?phone=<Номер телефона абонента>&token=<TOKEN>
по ID в биллинговой системе провайдера:
https://provapi.24h.tv/v2/users?provider_uid=<ID пользователя из биллинговой системы провайдера>&token=<TOKEN>
В ответ будет возвращены данные в json формате о пользователе провайдера:
В случае неудачного поиска будет возвращен пустой ответ:
Получение списка пакетов.
В платформе 24ТВ пакеты разделены на два типа: Базовые пакеты (в ответе "base": true) и Дополнительные пакеты (в ответе "base": false).
Некоторые базовые пакеты уже включают в себя некоторые дополнительные (максимальный тариф “Всё включено” содержит в себе все дополнительные тарифы).
Запрос иерархичного списка пакетов.
https://provapi.24h.tv/v2/packets?token=<TOKEN>&includes=<availables,includes,videos,channels>
Будут выведены все пакеты провайдера, в том числе неопубликованные. Пакеты с флагом
is_public=false
не будут показываться абоненту в приложении.На первом уровне списка — базовые пакеты. Чтобы увидеть дополнительные пакеты в виде дерева, добавьте аргумент
includes=availables
. Дополнительные пакеты будут в ключе «availables» каждого пакетаВозможные значения параметра
includes
:availables
— получение возможных пакетов для подключенияincludes
— получение включенных дополнительных пакетов в базовыеvideos
— включение в ответ информации о видеоисточниках, включенных в пакетchannels
— каналы в данном пакете
Значения
includes
можно комбинировать через запятую:includes=availables,videos
В ответ будет возвращены данные в json формате о пакетах провайдера:
Без параметра includes
будет возвращен список базовых тарифов.
https://provapi.24h.tv/v2/packets?token=<TOKEN>
В ответ будет возвращены данные в json формате о пакетах провайдера:
Запрос плоского списка пакетов.
https://provapi.24h.tv/v2/?token=<TOKEN>
При запросе с указанием провайдерского токена
token
будут выведены все пакеты провайдера, в том числе неопубликованныеПри запросе с указанием пользовательского токена
access_token
будут выведены только пакеты, видимые этому пользователюЕсли нужны только базовые пакеты, добавьте аргумент фильтра
is_base=true
. Если только дополнительные, добавьтеis_base=false
Подключение пакета.
Тип запроса: POST
https://provapi.24h.tv/v2/users/<ID пользователя в платформе 24часаТВ>/subscriptions?token=<TOKEN>
Передаваемые параметры:
Обязательные параметры:
В ответ будет возвращен json с информацией о подписке:
Response Code - 200
В случае ошибки:
Response Code - 400
Отключение пакета.
Тип запроса: DELETE
https://provapi.24h.tv/v2/users/<ID пользователя в платформе 24часаТВ>/subscriptions/<ID подписки>?token=<TOKEN>
В ответ будет возвращен json с информацией о приостановленной подписке:
Response Code - 200
В случае ошибки:
Response Code - 400