Схема интеграции 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# Сумма в рублях на счету провайдера

}