Продаж окремого відео¶
Нижче описано, як продати користувачеві окреме відео — в оренду на обмежений час (TVOD) або назавжди, без обмеження в часі (DTO). Відео ви продаєте у своїй системі, а MEGOGO реєструє купівлю.
Перед початком роботи¶
Переконайтеся, що:
- для ваших ключів увімкнено TVOD або DTO (це можна уточнити у вашого менеджера MEGOGO);
- MEGOGO додав IP-адреси ваших серверів до списку для вашого ID партнера (див. Облікові дані);
- користувач уже є в білінгу MEGOGO і має токен доступу (див. Авторизація користувача).
Крок 1. Отримайте пропозиції для відео¶
Коли користувач відкриває сторінку відео, надішліть /video/info з його
access_token:
GET https://api.megogo.net/v1/video/info?id={video_id}&lang=en&access_token={access_token}&sign={sign}
Пропозиції оренди містяться в purchase_info.tvod, а купівлі без
обмеження в часі — у purchase_info.dto; структура в них однакова.
Очікувана відповідь для оренди (скорочено):
{
"data": {
"id": 12345,
"is_available": false,
"delivery_rules": ["tvod"],
"purchase_info": {
"tvod": {
"subscriptions": [
{
"subscription_id": 7181,
"title": "Partner TVOD hd only",
"currency_code": "uah",
"is_bought": false,
"tariffs": [
{
"tariff_id": 7211,
"price": 59,
"period": 7,
"quality": { "group": "HD", "title": "Full HD", "bitrate": 1080 },
"is_bought": false
},
{
"tariff_id": 63835,
"price": 39,
"period": 7,
"quality": { "group": "SD", "title": "SD", "bitrate": 576 },
"is_bought": false
}
]
}
]
}
}
}
}
Кожен елемент tariffs показуйте як окрему пропозицію:
| Поле | Призначення |
|---|---|
price, currency_code |
Ціна |
period |
Період доступу в днях. Для DTO значення велике (наприклад, 3 650) — показуйте його як «назавжди» |
quality.title |
Максимальна якість у межах пропозиції |
is_bought |
true: користувач уже придбав цю пропозицію |
tariff_id |
ID, за яким реєструють купівлю (крок 3) |
ОБЕРЕЖНО
Ціни й tariff_id беріть лише з /video/info. Ціни та ID в XML-фіді —
це тарифи MEGOGO, їх не використовуйте.
Крок 2. Користувач оплачує¶
Користувач оплачує у вашій системі одну з пропозицій, отриманих на кроці 1.
Крок 3. Зареєструйте купівлю¶
Надішліть зі свого сервера такий запит:
GET https://billing.megogo.net/partners/{partner_id}/buyMovie?userId={user_id}&videoId={video_id}&serviceId={tariff_id}
| Параметр | Опис |
|---|---|
userId |
Ідентифікатор користувача у вашій системі |
videoId |
ID відео |
serviceId |
tariff_id пропозиції з кроку 1 (не subscription_id) |
ОБЕРЕЖНО
Billing API не перевіряє, чи доступний цей тариф для вашого ключа.
Передавайте лише той tariff_id, який /video/info повернув саме для
цього відео й цього користувача.
Очікувана відповідь:
{"successful": true}
Списуйте оплату з користувача лише після відповіді "successful": true.
Крок 4. Відкрийте користувачеві перегляд¶
Відтворіть відео з токеном доступу користувача (див. Відтворення відео).
Якість потоку обмежена якістю пропозиції. Наприклад, якщо куплено
пропозицію SD, у bitrates будуть лише якості до 480.
УВАГА
Період оренди відлічується не з моменту купівлі, а з початку перегляду
— з першої відповіді /stream, що містить src. Тому надсилайте
/stream лише тоді, коли користувач запускає відтворення.
Перевірка купівель користувача¶
GET https://billing.megogo.net/partners/{partner_id}/user/subscriptions?identifier={user_id}
Очікувана відповідь (скорочено):
{
"identifier": "user-0001",
"svod": [],
"tvod": [
{
"serviceId": "7211",
"serviceName": "Partner TVOD hd only",
"objectId": 12345,
"status": "started",
"dateFinish": 1793958553,
"dateFinishString": "2026-11-06 09:49:13"
}
]
}
status |
Значення |
|---|---|
unwatched |
Користувач ще не почав дивитися, тож період оренди не почався. dateFinish відсутнє |
started |
Період оренди почався. dateFinish — дата його завершення |
Купівлі DTO повертаються в окремому масиві dto. Його елементи містять
serviceId, serviceName і objectId, але не мають полів status і
dateFinish:
"dto": [
{ "serviceId": "27561", "serviceName": "EST Disney UA 6-9", "objectId": 584181 }
]
Якщо купівель певного типу в користувача немає, ключа tvod або dto у
відповіді не буде.
Помилки¶
| Відповідь | Причина | Що робити |
|---|---|---|
| Код 400 | Користувач уже купив це відео (TVOD або DTO) | Нічого робити не потрібно: користувач може дивитися |
| Код 40416 | serviceId не є ID тарифу для вашого ID партнера — наприклад, передано subscription_id або ID з XML-фіду |
Передавайте tariff_id з /video/info |
| Код 2015, 2029 | Для відео немає пропозиції на продаж | Не показуйте пропозицію |
| Код 2031 | Такої якості в пропозиції немає | Передавайте tariff_id з /video/info саме цього відео |
HTTP 401, звичайний текст Partner … not found |
IP-адреси вашого сервера немає в списку | Див. Облікові дані |
| Тайм-аут, HTTP 5xx | Тимчасова проблема | Перш ніж повторити запит, перевірте купівлі користувача. Між спробами чекайте 1 хвилину, спроб — не більше 6 |
Повний перелік кодів наведено в довіднику Billing API.
Що далі¶
Версія посібника 1.4.1, 2026-10-31 · Повідомити про проблему на цій сторінці