Общая информация
Необходимый провайдеру функционал:
- регистрация пользователя со стороны провайдера
- возможность выбора подписок в клиентских приложениях
- возможность управления подписками со стороны биллинга провайдера
- пользователь видит в клиентских приложениях лицевой счет и его состояние
Информация по API клиентских приложений : https://api.24h.tv/v2/
Информация по API для провайдера : https://api.24h.tv/v2/doc/provider
Регистрация пользователя.
Для регистрации пользователя в платформе 24часаТВ необходимо использовать вызов API: https://api.24h.tv/v2/doc/provider#!/Users/post_users
В ответ вы получите идентификатор пользователя в платформе. Его можно сохранить и использовать для дальнейшей идентификации.
POST /users
Параметры запроса
- username - имя пользователя для авторизации в клиентских приложениях
- password - пароль пользователя
- first_name - имя пользователя
- last_name - фамилия пользователя
- email - e-mail пользователя
- phone - телефон пользователя
- provider_uid - идентификатор в системе провайдера
- is_provider_free - признак того, что пользователь может заходить не из сети провайдера
Параметры ответа:
id - идентификатор пользователя на платформе
username, first_name, last_name, email, phone - переданные параметры
Авторизация подписки.
При выборе пакета пользователем платформа может отправлять авторизацию (запрос на разрешение подписки) в биллинг провайдера. Для этого используется HTTP(S) POST запрос на предоставленный провайдером URL.
Пример запроса:
POST {provider_auth_uri}
{
"user_id": 6806,
"provider_uid": 83466,
"packet_id": 8,
"packet_name": "VIP"
}
Необходимо вернуть разрешение или код ошибки + сообщение об ошибке.
200 OK
{
"status": "ok"
}
402 Payment Required
{
"status": "error",
"code": 32,
"message": "Недостаточно средств на лицевом счете"
}
Подписка пользователя
При создании подписки на пакет со стороны провайдера необходимо использовать метод API: https://api.24h.tv/v2/doc/provider#!/Users/post_users_user_id_subscriptions
POST /users/{user-id}/subscriptions
Параметры запроса:
[{
"id": 8, # Идентификатор пакета
"renew": true # Обновлять ли подписку при окончании}]
200 OK
[{
"id": "68061362047157199", # Идентификатор подписки
"renew": true, # Автообновление подписки
"is_paused": false, # Стоит ли подписка на паузе
"packet": {
"id": 87, # Идентификатор пакета
"name": "VIP", # Название пакета
"price": "1000.00" # Цена пакета
},
"start_at": "2017-09-04T20:15:30.065Z", # Время начала подписки
"end_at": "2017-10-04T20:15:30.065Z" # Время окончания подписки
}]