Схема интеграции c платформой 24часаТВ
Общая информация
Необходимый провайдеру функционал:
- регистрация пользователя со стороны провайдера
- возможность выбора подписок в клиентских приложениях
- возможность управления подписками со стороны биллинга провайдера
- пользователь видит в клиентских приложениях лицевой счет и его состояние
Информация по 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": "superuser148", #имя пользователя для авторизации в клиентских приложениях
"password": "supersecret", #пароль пользователя
"first_name": "Имя", #имя пользователя
"last_name": "Фамилия", #фамилия пользователя
"phone": "70241234567", #телефон пользователя
"email": "vasya@pupkin.ru", #e-mail пользователя
"provider_uid": "324234", #идентификатор в системе провайдера
"is_provider_free": true #признак того, что пользователь может заходить не из сети провайдера
}
Параметры ответа:
{
"id": 25265, #идентификатор пользователя на платформе
"username": "superuser148",
"first_name": "Имя",
"last_name": "Фамилия",
"phone": "70241234567",
"email": "vasya@pupkin.ru",
"timezone": "Europe/Moscow", #часовой пояс пользователя (при создании выставляется по провайдеру)
"provider": {
"id": 5, #идентификатор провайдера
"name": "Super-Provider" #имя провайдера
},
"provider_uid": "324234"
}
Авторизация подписки.
При выборе пакета пользователем платформа может отправлять авторизацию (запрос на разрешение подписки) в биллинг провайдера. Для этого используется 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 # Обновлять ли подписку при окончании}]
user-id : #идентификатор пользователя на платформе
Ответ API:
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" # Время окончания подписки
}]
Обновление лицевого счета
Платформа может хранить состояния лицевых счетов пользователя у провайдера
Для обновления информации по лицевому счету можно использовать метод API: https://api.24h.tv/v2/doc/provider#!/Users/post_users_user_id_provider_account
POST /users/{user-id}/provider/account
Параметры запроса:
{
"id": 347446, # Номер лицевого счета пользователя у провайдера
"amount": "567.03" # Сумма в рублях на счету провайдера
}
Ответ API:
200 OK
{
"id": 347446, # Номер лицевого счета пользователя у провайдера
"source": {
"id": 5, # Идентификатор платежной системы
"name": "Super-provider billing" # Имя платежной системы
},
"amount": "567.03" # Сумма в рублях на счету провайдера
}